Skip to content

2.0.3

Compare
Choose a tag to compare
@adamgfraser adamgfraser released this 01 Nov 13:51
· 862 commits to series/2.x since this release
68eda06

This release contains a variety of optimizations and bug fixes. In particular asynchronous operations in the runtime are significantly faster based on work by @jdegoes. As always, thanks for using ZIO and we're so excited to see everything that you are building with ZIO!

Performance Improvements

The performance of many core operations, including interruptible async operations and joining fibers, have been greatly improved, by a combination of micro-optimization and interning. A new "gen 3" optimization allows the ZIO 2 runtime system to avoid stack unwinding for fast asynchronous operations, and work stealing enables one run loop suspended by an async operation to steal a bit of work on behalf of another fiber. The weak concurrent bag for root fibers has been completely re-written with massive performance improvements in forkDaemon-heavy scenarios. Overall, these performance improvements make the ZIO 2 runtime system faster than it's ever been.

Future areas of improvement include additional micro-optimizations in the runtime system, lower overhead for the fiber actor machinery, and intelligent auto-tuning for JVM stack or reified stack run modes.