我已经运行了这个由 编写的DisruptovsFJAleskey Shipilev
Mirco-Benchmarks ,其中比较了 ForkJoin 和 Disruptor 库的性能。
我在 Linux 平台 i5 上使用 JDK1.8.40 的结果:
Benchmark Score, Score Error (99.9%),Unit,Param: slicesK,
Disruptor.run, 939.801405, 20.741961,ms/op, 50000,0,10
ForkJoin.run, 1175.263451, 0.595711, ms/op, 50000,0,10
ForkJoinRecursive.run 771.854028, 26.022542,ms/op, 50000,0,10
ForkJoinRecursiveDeep.run, 1356.697011, 28.666325,ms/op, 50000,0,10
ForkJoinReuse.run, 7974.180793, 49.604539,ms/op, 50000,0,10
结果的第一部分slicesK < 50000
是预期的,因为Disruptor
它使用了 RingBuffer 和一种使其在并发上下文中更加高效的机制。
现在,当slicesK >= 50000
测试Disruptor
的性能不如 ForkJoinRecursiveDeep 和 ForkJoinReuse 时。有人可以向我解释这些结果吗?谢谢