Я запустил этот DisruptovsFJ Mirco-Benchmarks, написанный Aleskey Shipilev
, где сравнивается производительность ForkJoin и библиотеки Disruptor. .
Результаты, которые я получил с помощью JDK1.8.40 на платформе Linux i5:
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. Может кто-нибудь объяснить мне эти результаты? Спасибо