softwaremill / jox

Fast and Scalable Channels in Java
Apache License 2.0
226 stars 5 forks source link

Remove autocloseable #36

Closed adamw closed 7 months ago

adamw commented 7 months ago

It doesn't fit the target model of using channels (using structured concurrency)

github-actions[bot] commented 7 months ago
Benchmark results ``` Java: (capacity) (chainLength) Mode Cnt Score Error Units BufferedBenchmark.arrayBlockingQueue 1 N/A avgt 5 1024.774 ± 230.051 ns/op BufferedBenchmark.arrayBlockingQueue 10 N/A avgt 5 205.085 ± 51.391 ns/op BufferedBenchmark.arrayBlockingQueue 100 N/A avgt 5 116.687 ± 6.060 ns/op BufferedBenchmark.channel 1 N/A avgt 5 195.626 ± 63.195 ns/op BufferedBenchmark.channel 10 N/A avgt 5 182.713 ± 34.363 ns/op BufferedBenchmark.channel 100 N/A avgt 5 162.553 ± 35.327 ns/op ChainedBenchmark.channelChain 0 100 avgt 5 1004.753 ± 42.145 ns/op ChainedBenchmark.channelChain 0 1000 avgt 5 1008.403 ± 41.094 ns/op ChainedBenchmark.channelChain 0 10000 avgt 5 1019.976 ± 12.634 ns/op ChainedBenchmark.channelChain 100 100 avgt 5 30.303 ± 1.493 ns/op ChainedBenchmark.channelChain 100 1000 avgt 5 29.230 ± 0.477 ns/op ChainedBenchmark.channelChain 100 10000 avgt 5 32.268 ± 1.535 ns/op ChainedBenchmark.queueChain 0 100 avgt 5 125.318 ± 7.472 ns/op ChainedBenchmark.queueChain 0 1000 avgt 5 129.302 ± 18.812 ns/op ChainedBenchmark.queueChain 0 10000 avgt 5 116.184 ± 36.591 ns/op ChainedBenchmark.queueChain 100 100 avgt 5 11.098 ± 0.433 ns/op ChainedBenchmark.queueChain 100 1000 avgt 5 10.792 ± 0.219 ns/op ChainedBenchmark.queueChain 100 10000 avgt 5 9.796 ± 0.300 ns/op RendezvousBenchmark.channel N/A N/A avgt 5 171.495 ± 19.818 ns/op RendezvousBenchmark.exchanger N/A N/A avgt 5 85.528 ± 22.032 ns/op RendezvousBenchmark.synchronousQueue N/A N/A avgt 5 543.813 ± 169.788 ns/op SelectBenchmark.selectWithSingleClause N/A N/A avgt 5 208.310 ± 28.619 ns/op SelectBenchmark.selectWithTwoClauses N/A N/A avgt 5 202.961 ± 9.915 ns/op Kotlin: (capacity) (chainLength) Mode Cnt Score Error Units BufferedKotlinBenchmark.channel_defaultDispatcher 1 N/A avgt 5 115.284 ± 1.550 ns/op BufferedKotlinBenchmark.channel_defaultDispatcher 10 N/A avgt 5 49.283 ± 1.997 ns/op BufferedKotlinBenchmark.channel_defaultDispatcher 100 N/A avgt 5 31.569 ± 3.184 ns/op ChainedKotlinBenchmark.channelChain_defaultDispatcher 0 100 avgt 5 71.041 ± 3.205 ns/op ChainedKotlinBenchmark.channelChain_defaultDispatcher 0 1000 avgt 5 60.435 ± 3.081 ns/op ChainedKotlinBenchmark.channelChain_defaultDispatcher 0 10000 avgt 5 64.595 ± 6.661 ns/op ChainedKotlinBenchmark.channelChain_defaultDispatcher 100 100 avgt 5 13.758 ± 0.336 ns/op ChainedKotlinBenchmark.channelChain_defaultDispatcher 100 1000 avgt 5 13.529 ± 1.388 ns/op ChainedKotlinBenchmark.channelChain_defaultDispatcher 100 10000 avgt 5 14.437 ± 0.265 ns/op ChainedKotlinBenchmark.channelChain_eventLoop 0 100 avgt 5 92.730 ± 1.799 ns/op ChainedKotlinBenchmark.channelChain_eventLoop 0 1000 avgt 5 135.285 ± 20.317 ns/op ChainedKotlinBenchmark.channelChain_eventLoop 0 10000 avgt 5 91.308 ± 3.179 ns/op ChainedKotlinBenchmark.channelChain_eventLoop 100 100 avgt 5 29.696 ± 1.180 ns/op ChainedKotlinBenchmark.channelChain_eventLoop 100 1000 avgt 5 30.362 ± 0.744 ns/op ChainedKotlinBenchmark.channelChain_eventLoop 100 10000 avgt 5 30.147 ± 1.211 ns/op RendezvousKotlinBenchmark.channel_defaultDispatcher N/A N/A avgt 5 141.215 ± 4.180 ns/op SelectKotlinBenchmark.selectWithSingleClause_defaultDispatcher N/A N/A avgt 5 235.515 ± 6.788 ns/op SelectKotlinBenchmark.selectWithTwoClauses_defaultDispatcher N/A N/A avgt 5 359.929 ± 5.060 ns/op ```