akka/akka — pull request #15319 by patriknw (2014-05-30 16:04:37+00:00)
Title: Stream perf tuning 2

Exploring iterator based transformer, in two steps. First only changing to Iterator, then adding melding of operators. Not covering everything, just an early indication.

These results can be compared with #15305
Running on MacBook Pro, 2,3 GHz Intel Core i7, with java 1.7.0_45

baseline before Transform with Iterator

Benchmark (dispatcherPoolSize) (inputBufferSize) (numberOfMapOps) Mode Samples Mean Mean error Units
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 1 thrpt 15 1334.722 45.950 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 3 thrpt 15 1183.999 35.057 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 5 thrpt 15 1032.527 44.215 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 1 thrpt 15 1387.664 37.349 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 3 thrpt 15 1306.621 31.856 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 5 thrpt 15 1107.189 40.113 ops/ms

258f653 Transform with Iterator

Benchmark (dispatcherPoolSize) (inputBufferSize) (numberOfMapOps) Mode Samples Mean Mean error Units
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 1 thrpt 15 1673.165 79.986 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 3 thrpt 15 1355.013 31.576 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 5 thrpt 15 1114.652 31.779 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 1 thrpt 15 1751.866 43.758 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 3 thrpt 15 1404.107 27.075 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 5 thrpt 15 1181.734 61.098 ops/ms

c382935 meld transform iterators

Benchmark (dispatcherPoolSize) (inputBufferSize) (numberOfMapOps) Mode Samples Mean Mean error Units
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 1 thrpt 15 1717.114 33.623 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 3 thrpt 15 1243.303 24.122 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 5 thrpt 15 1153.754 8.026 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 10 thrpt 15 980.477 13.273 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 16 15 thrpt 15 788.748 27.032 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 1 thrpt 15 1781.289 29.267 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 3 thrpt 15 1281.246 23.206 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 5 thrpt 15 1144.894 16.271 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 10 thrpt 15 920.991 14.080 ops/ms
a.s.FlowMapBenchmark.flow_map_500k_elements 4 32 15 thrpt 15 779.691 12.619 ops/ms