Can somebody help me with a coroutines question. I...
# announcements
m
Can somebody help me with a coroutines question. I was playing with something like shown in this gist: https://gist.github.com/mvucenovic/65359381a578e37558370cdf4e03ed9e. While running this on i7 with 8 cores, compiled to jvm 1.8 as target, coroutine code defined inside 'async' block was ~10x faster then calling any function doing the same thing inside async block (~700ms vs 8000ms). I know measuring performance with main method is terrible idea, but the difference in execution time is enormous in this gist Can somebody explain to me why is that happening?
v
misko: #coroutines
x
Results on my machine: Time with coro plain: 1027 ms Time with coro calling inline function: Time with coro calling suspend function: 35986 ms Time with coro calling normal function: 34813 ms Looks like first loop is replaced by compiler while in all other cases it doesn't. Also consider use JMH to get better results.
m
I've written some basic JMH benchmark to confirm it. I am not well versed in JMH benchmarks so I may have did something wrong, but it produced the same results (I too got as big as X35 differential without JMH, but JMH produced consistently ~X8 times slower results for non plain calls). I'll try to look at the byte code later.. It is strange to me. Tnx for trying it