Some benchmarking by @lbialy (https://github.com/lbialy/ce-jvm-vs-sn) shows a CE application in Scala Native 0.5.8 with a single-producer/single-consumer queue use much worse performance than the JVM:
---------------------------------
mode lto gc ms
---------------------------------
release-full full immix 4846
jvm n/a n/a 283
This performance difference is erased if the queue capacity is set such that CE uses the concurrent queue implementation instead:
---------------------------------
mode lto gc ms
---------------------------------
release-full full immix 457
jvm n/a n/a 514
Profiling on MacOS shows significant time being spent on exception handling in the async queue's notifyOne implementation.
Some benchmarking by @lbialy (https://github.com/lbialy/ce-jvm-vs-sn) shows a CE application in Scala Native 0.5.8 with a single-producer/single-consumer queue use much worse performance than the JVM:
This performance difference is erased if the queue capacity is set such that CE uses the concurrent queue implementation instead:
Profiling on MacOS shows significant time being spent on exception handling in the async queue's
notifyOneimplementation.