In software terms, performance efficiency can be explained simply by how fast operations can be done with less resources.
In most cases:
Faster processing may imply more memory usage.
Memory is limited.
CPU cores are limited, which limits the number of active concurrent threads → what is actually running in parallel, and not giving the illusion of concurrent processing.
Kotlin's coroutines⇗ are not bound to any particular thread, but still will compete to get one when resuming execution⇗.
To be updated.