From a0b196d2c6b7b15c1d629c5a494daf8ca209d865 Mon Sep 17 00:00:00 2001 From: Juan Jimenez-Anca Date: Tue, 7 Aug 2018 12:59:34 +0100 Subject: [PATCH 1/2] test performance upgrade --- test/perf/README.md | 223 +++++++++++++++++---------------- test/perf/concatMap.js | 9 ++ test/perf/filter-map-reduce.js | 12 +- test/perf/flatMap.js | 11 +- test/perf/merge-nested.js | 29 ++++- test/perf/merge.js | 12 +- test/perf/package.json | 7 +- test/perf/runners.js | 14 +++ test/perf/scan.js | 9 ++ test/perf/skipRepeats.js | 9 ++ test/perf/slice.js | 12 +- test/perf/switch.js | 18 ++- test/perf/zip.js | 9 ++ 13 files changed, 255 insertions(+), 119 deletions(-) diff --git a/test/perf/README.md b/test/perf/README.md index 2c3ff522..1e026fe3 100644 --- a/test/perf/README.md +++ b/test/perf/README.md @@ -7,183 +7,196 @@ Latest performance tests of basic most.js operations. ``` > uname -a -Darwin Brians-MBP.home 16.3.0 Darwin Kernel Version 16.3.0: Thu Nov 17 20:23:58 PST 2016; root:xnu-3789.31.2~1/RELEASE_X86_64 x86_64 +Linux laptop 4.14.56-1-MANJARO #1 SMP PREEMPT Tue Jul 17 13:20:49 UTC 2018 x86_64 GNU/Linux > npm ls most-perf@0.10.0 /Users/brian/Projects/cujojs/most/test/perf ├── @reactivex/rxjs@5.0.1 -├── baconjs@0.7.89 +├── baconjs@2.0.9 ├── benchmark@2.1.0 (git://github.com/bestiejs/benchmark.js.git#308cc4c82df602b21bc7775075d43836969a8b16) ├── highland@2.10.1 ├── kefir@3.6.1 ├── rx@4.1.0 -└── xstream@10.0.0 +├── rxjs@6.2.2 +└── xstream@11.0.0 ``` ## Node ``` > node --version -v6.9.2 +v8.11.3 > npm start -> most-perf@0.10.0 start /Users/brian/Projects/cujojs/most/test/perf -> npm run filter-map-reduce && npm run flatMap && npm run concatMap && npm run merge && npm run merge-nested && npm run zip && npm run scan && npm run slice && npm run skipRepeats +> most-perf@0.10.0 start /home/juan/code/most/test/perf +> npm run filter-map-reduce && npm run flatMap && npm run concatMap && npm run merge && npm run merge-nested && npm run zip && npm run scan && npm run slice && npm run skipRepeats && npm run switch -> most-perf@0.10.0 filter-map-reduce /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 filter-map-reduce /home/juan/code/most/test/perf > node ./filter-map-reduce filter -> map -> reduce 1000000 integers ------------------------------------------------------- -most 568.23 op/s ± 1.43% (80 samples) -rx 4 1.45 op/s ± 1.48% (12 samples) -rx 5 11.38 op/s ± 1.29% (55 samples) -xstream 18.41 op/s ± 0.91% (81 samples) -kefir 10.36 op/s ± 1.11% (51 samples) -bacon 0.83 op/s ± 1.93% (9 samples) -highland 4.82 op/s ± 1.90% (27 samples) +most 443.42 op/s ± 1.55% (81 samples) +rx 4 1.95 op/s ± 0.91% (14 samples) +rx 5 101.69 op/s ± 1.46% (78 samples) +rx 6 99.22 op/s ± 1.67% (76 samples) +xstream 21.84 op/s ± 1.66% (54 samples) +kefir 12.71 op/s ± 11.05% (64 samples) +bacon 1.49 op/s ± 3.78% (12 samples) +highland 8.32 op/s ± 2.68% (42 samples) ------------------------------------------------------- -> most-perf@0.10.0 flatMap /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 flatMap /home/juan/code/most/test/perf > node ./flatMap.js flatMap 1000 x 1000 streams ------------------------------------------------------- -most 153.71 op/s ± 1.11% (77 samples) -rx 4 0.75 op/s ± 2.24% (8 samples) -rx 5 27.50 op/s ± 0.96% (64 samples) -xstream 11.99 op/s ± 0.98% (57 samples) -kefir 9.30 op/s ± 1.13% (47 samples) -bacon 0.73 op/s ± 1.29% (8 samples) -highland 0.10 op/s ± 3.44% (5 samples) +most 51.04 op/s ± 2.55% (60 samples) +rx 4 0.91 op/s ± 0.91% (9 samples) +rx 5 28.59 op/s ± 3.06% (39 samples) +rx 6 9.86 op/s ± 2.98% (46 samples) +xstream 17.35 op/s ± 1.51% (80 samples) +kefir 14.62 op/s ± 1.34% (68 samples) +bacon 0.60 op/s ± 6.28% (7 samples) +highland 0.14 op/s ± 1.92% (5 samples) ------------------------------------------------------- -> most-perf@0.10.0 concatMap /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 concatMap /home/juan/code/most/test/perf > node ./concatMap.js concatMap 1000 x 1000 streams ------------------------------------------------------- -most 103.87 op/s ± 1.24% (77 samples) -rx 4 1.29 op/s ± 11.69% (11 samples) -rx 5 29.58 op/s ± 1.12% (68 samples) -xstream 12.37 op/s ± 0.95% (59 samples) -kefir 10.13 op/s ± 0.99% (50 samples) -bacon 0.70 op/s ± 3.40% (8 samples) +most 46.87 op/s ± 2.12% (72 samples) +rx 4 1.87 op/s ± 2.04% (14 samples) +rx 5 32.73 op/s ± 2.50% (54 samples) +rx 6 10.37 op/s ± 2.75% (48 samples) +xstream 16.52 op/s ± 1.48% (77 samples) +kefir 15.09 op/s ± 1.61% (70 samples) +bacon 0.60 op/s ± 5.44% (7 samples) ------------------------------------------------------- -> most-perf@0.10.0 merge /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 merge /home/juan/code/most/test/perf > node ./merge.js merge 100000 x 10 streams ------------------------------------------------------- -most 315.04 op/s ± 1.62% (79 samples) -rx 4 1.36 op/s ± 1.59% (11 samples) -rx 5 30.42 op/s ± 1.00% (69 samples) -xstream 16.87 op/s ± 1.15% (75 samples) -kefir 11.63 op/s ± 1.75% (56 samples) -bacon 0.74 op/s ± 2.53% (8 samples) +most 158.95 op/s ± 26.00% (42 samples) +rx 4 1.47 op/s ± 0.97% (12 samples) +rx 5 73.64 op/s ± 1.45% (84 samples) +rx 6 73.29 op/s ± 1.61% (83 samples) +xstream 34.92 op/s ± 2.67% (80 samples) +kefir 16.30 op/s ± 1.57% (75 samples) +bacon 1.53 op/s ± 2.61% (12 samples) ------------------------------------------------------- -> most-perf@0.10.0 merge-nested /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 merge-nested /home/juan/code/most/test/perf > node ./merge-nested.js merge nested streams w/depth 2, 5, 10, 100 (10000 items in each stream) ------------------------------------------------------- -most (depth 2) 11914.82 op/s ± 0.81% (79 samples) -most (depth 5) 6218.70 op/s ± 1.12% (78 samples) -most (depth 10) 3524.94 op/s ± 1.19% (81 samples) -most (depth 100) 305.40 op/s ± 1.89% (79 samples) -rx 4 (depth 2) 45.61 op/s ± 1.10% (69 samples) -rx 4 (depth 5) 16.34 op/s ± 0.95% (73 samples) -rx 4 (depth 10) 6.79 op/s ± 2.28% (36 samples) -rx 4 (depth 100) 0.18 op/s ± 2.54% (5 samples) -rx 5 (depth 2) 678.24 op/s ± 1.45% (79 samples) -rx 5 (depth 5) 268.50 op/s ± 2.52% (78 samples) -rx 5 (depth 10) 77.43 op/s ± 5.12% (60 samples) -rx 5 (depth 100) 1.63 op/s ± 5.42% (13 samples) -xstream (depth 2) 373.53 op/s ± 3.37% (61 samples) -xstream (depth 5) 152.53 op/s ± 3.18% (64 samples) -xstream (depth 10) 66.73 op/s ± 2.52% (63 samples) -xstream (depth 100) 1.32 op/s ± 1.01% (11 samples) -kefir (depth 2) 218.64 op/s ± 3.61% (62 samples) -kefir (depth 5) 79.75 op/s ± 2.76% (62 samples) -kefir (depth 10) 31.82 op/s ± 3.25% (72 samples) -kefir (depth 100) 0.47 op/s ± 2.10% (7 samples) -bacon (depth 2) 17.35 op/s ± 3.18% (48 samples) -bacon (depth 5) 7.33 op/s ± 2.98% (38 samples) -bacon (depth 10) 3.34 op/s ± 3.44% (20 samples) -bacon (depth 100) 0.08 op/s ± 3.85% (5 samples) -highland (depth 2) 1.75 op/s ± 13.30% (13 samples) -highland (depth 5) 1.78 op/s ± 9.74% (13 samples) -highland (depth 10) 0.14 op/s ± 2.89% (5 samples) -------------------------------------------------------- - -> most-perf@0.10.0 zip /Users/brian/Projects/cujojs/most/test/perf +most (depth 2) 4081.32 op/s ± 5.18% (37 samples) +most (depth 5) 1946.29 op/s ± 1.42% (86 samples) +most (depth 10) 1048.74 op/s ± 1.67% (85 samples) +most (depth 100) 109.99 op/s ± 1.55% (47 samples) +rx 4 (depth 2) 52.33 op/s ± 1.78% (63 samples) +rx 4 (depth 5) 20.34 op/s ± 1.34% (51 samples) +rx 4 (depth 10) 8.77 op/s ± 0.89% (45 samples) +rx 4 (depth 100) 0.28 op/s ± 1.38% (6 samples) +rx 5 (depth 2) 915.47 op/s ± 3.35% (48 samples) +rx 5 (depth 5) 351.37 op/s ± 1.66% (84 samples) +rx 5 (depth 10) 149.04 op/s ± 1.61% (81 samples) +rx 5 (depth 100) 3.12 op/s ± 2.01% (20 samples) +rx 6 (depth 2) 2227.96 op/s ± 1.88% (81 samples) +rx 6 (depth 5) 1137.70 op/s ± 1.70% (85 samples) +rx 6 (depth 10) 633.41 op/s ± 1.61% (85 samples) +rx 6 (depth 100) 72.52 op/s ± 1.48% (83 samples) +xstream (depth 2) 1161.94 op/s ± 1.61% (85 samples) +xstream (depth 5) 386.63 op/s ± 1.54% (84 samples) +xstream (depth 10) 145.77 op/s ± 1.58% (83 samples) +xstream (depth 100) 2.10 op/s ± 1.53% (15 samples) +kefir (depth 2) 430.45 op/s ± 1.05% (74 samples) +kefir (depth 5) 134.08 op/s ± 0.88% (75 samples) +kefir (depth 10) 49.35 op/s ± 1.02% (74 samples) +kefir (depth 100) 0.56 op/s ± 6.31% (7 samples) +bacon (depth 2) 37.17 op/s ± 4.95% (62 samples) +bacon (depth 5) 18.09 op/s ± 0.99% (48 samples) +bacon (depth 10) 8.63 op/s ± 1.15% (44 samples) +bacon (depth 100) 0.21 op/s ± 4.69% (6 samples) +highland (depth 2) 3.18 op/s ± 2.91% (20 samples) +highland (depth 5) 3.24 op/s ± 1.56% (20 samples) +highland (depth 10) 0.24 op/s ± 0.53% (6 samples) +------------------------------------------------------- + +> most-perf@0.10.0 zip /home/juan/code/most/test/perf > node ./zip.js zip 2 x 100000 integers ------------------------------------------------------- -most 91.66 op/s ± 3.23% (61 samples) -rx 4 2.15 op/s ± 2.07% (15 samples) -rx 5 0.20 op/s ± 1.33% (5 samples) -kefir 0.46 op/s ± 51.48% (7 samples) -bacon 0.10 op/s ± 8.01% (5 samples) -highland 0.06 op/s ± 7.44% (5 samples) +most 118.80 op/s ± 1.70% (73 samples) +rx 4 6.29 op/s ± 1.36% (34 samples) +rx 5 0.26 op/s ± 1.01% (6 samples) +rx 6 0.26 op/s ± 0.94% (6 samples) +kefir 0.72 op/s ± 53.21% (9 samples) +bacon 0.08 op/s ± 20.15% (5 samples) +highland 0.09 op/s ± 4.77% (5 samples) ------------------------------------------------------- -> most-perf@0.10.0 scan /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 scan /home/juan/code/most/test/perf > node ./scan.js scan -> reduce 1000000 integers ------------------------------------------------------- -most 304.14 op/s ± 1.02% (75 samples) -rx 4 1.19 op/s ± 2.28% (10 samples) -rx 5 10.06 op/s ± 2.30% (50 samples) -xstream 7.87 op/s ± 1.25% (40 samples) -kefir 12.76 op/s ± 2.15% (59 samples) -bacon 0.59 op/s ± 4.14% (7 samples) -highland 4.91 op/s ± 3.29% (27 samples) +most 352.54 op/s ± 1.40% (84 samples) +rx 4 1.80 op/s ± 0.61% (13 samples) +rx 5 24.30 op/s ± 2.04% (59 samples) +rx 6 22.70 op/s ± 1.53% (55 samples) +xstream 19.15 op/s ± 1.69% (48 samples) +kefir 18.15 op/s ± 18.11% (52 samples) +bacon 1.02 op/s ± 8.28% (9 samples) +highland 8.98 op/s ± 1.81% (45 samples) ------------------------------------------------------- -> most-perf@0.10.0 slice /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 slice /home/juan/code/most/test/perf > node ./slice.js skip(n/4) -> take(n/2) 1000000 integers ------------------------------------------------------- -most 101.20 op/s ± 1.77% (65 samples) -rx 4 2.00 op/s ± 1.90% (14 samples) -rx 5 40.24 op/s ± 1.81% (62 samples) -xstream 17.89 op/s ± 2.65% (42 samples) -kefir 9.87 op/s ± 7.09% (51 samples) -bacon 0.84 op/s ± 2.23% (9 samples) -highland 6.17 op/s ± 2.67% (33 samples) +most 240.56 op/s ± 1.55% (78 samples) +rx 4 2.76 op/s ± 0.81% (18 samples) +rx 5 135.79 op/s ± 1.52% (78 samples) +rx 6 130.55 op/s ± 1.48% (75 samples) +xstream 22.15 op/s ± 1.30% (52 samples) +kefir 15.62 op/s ± 6.37% (75 samples) +bacon 1.79 op/s ± 2.15% (13 samples) +highland 9.45 op/s ± 2.62% (46 samples) ------------------------------------------------------- -> most-perf@0.10.0 skipRepeats /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 skipRepeats /home/juan/code/most/test/perf > node ./skipRepeats.js skipRepeats -> reduce 2 x 1000000 integers ------------------------------------------------------- -most 327.55 op/s ± 1.01% (76 samples) -rx 4 1.60 op/s ± 1.40% (12 samples) -rx 5 10.71 op/s ± 1.74% (52 samples) -xstream 18.89 op/s ± 1.82% (47 samples) -kefir 10.99 op/s ± 2.19% (53 samples) -bacon 0.73 op/s ± 1.89% (8 samples) +most 370.98 op/s ± 1.51% (80 samples) +rx 4 2.15 op/s ± 0.71% (15 samples) +rx 5 25.46 op/s ± 2.39% (62 samples) +rx 6 25.99 op/s ± 1.43% (63 samples) +xstream 52.31 op/s ± 2.28% (81 samples) +kefir 19.12 op/s ± 19.47% (53 samples) +bacon 1.65 op/s ± 3.17% (13 samples) ------------------------------------------------------- -> most-perf@0.10.0 switch /Users/brian/Projects/cujojs/most/test/perf +> most-perf@0.10.0 switch /home/juan/code/most/test/perf > node ./switch.js switch 10000 x 1000 streams ------------------------------------------------------- -most 1426.42 op/s ± 1.28% (81 samples) -rx 5 1.65 op/s ± 6.74% (12 samples) -rx 4 95.93 op/s ± 3.47% (72 samples) -xstream 1.32 op/s ± 5.03% (11 samples) -kefir 1.05 op/s ± 1.37% (10 samples) -bacon 0.03 op/s ± 1.75% (5 samples) -------------------------------------------------------- -``` +most 1673.19 op/s ± 1.27% (75 samples) +rx 4 116.50 op/s ± 12.05% (81 samples) +rx 5 3.56 op/s ± 11.17% (20 samples) +rx 6 7.48 op/s ± 2.04% (40 samples) +xstream 1.64 op/s ± 2.02% (13 samples) +kefir 1.64 op/s ± 3.56% (12 samples) +bacon 0.02 op/s ± 5.20% (5 samples) +------------------------------------------------------- \ No newline at end of file diff --git a/test/perf/concatMap.js b/test/perf/concatMap.js index b0d9e366..3dda5c5c 100644 --- a/test/perf/concatMap.js +++ b/test/perf/concatMap.js @@ -3,6 +3,8 @@ var Benchmark = require('benchmark'); var most = require('../../src/index'); var rx = require('rx'); var rxjs = require('@reactivex/rxjs'); +var rxjs6 = require('rxjs'); +var rxjs6Operators = require('rxjs/operators'); var kefir = require('kefir'); var bacon = require('baconjs'); var xs = require('xstream').default; @@ -52,6 +54,13 @@ suite .add('rx 5', function(deffered) { runners.runRx5(deffered, rxjs.Observable.from(a).concatMap(function(x) {return rxjs.Observable.from(x)}).reduce(sum, 0)) }, options) + .add('rx 6', function(deffered) { + runners.runRx6(deffered, + rxjs6.of(a).pipe( + rxjs6Operators.concatMap(function(x) {return rxjs6.from(x)}), + rxjs6Operators.reduce(sum, 0)) + ) + }, options) .add('xstream', function(deferred) { runners.runXstream(deferred, xs.fromArray(a).map(xs.fromArray).compose(xstreamFlattenSequentially).fold(sum, 0).last()) }, options) diff --git a/test/perf/filter-map-reduce.js b/test/perf/filter-map-reduce.js index a5c68f1a..c812682c 100644 --- a/test/perf/filter-map-reduce.js +++ b/test/perf/filter-map-reduce.js @@ -2,7 +2,9 @@ require('buba/register') var Benchmark = require('benchmark'); var most = require('../../src/index'); var rx = require('rx'); -var rxjs = require('@reactivex/rxjs') +var rxjs = require('@reactivex/rxjs'); +var rxjs6 = require('rxjs'); +var rxjs6Operators = require('rxjs/operators'); var kefir = require('kefir'); var bacon = require('baconjs'); var highland = require('highland'); @@ -38,6 +40,14 @@ suite runners.runRx5(deferred, rxjs.Observable.from(a).filter(even).map(add1).reduce(sum, 0)); }, options) + .add('rx 6', function(deferred) { + runners.runRx6(deferred, + rxjs6.from(a).pipe( + rxjs6Operators.filter(even), + rxjs6Operators.map(add1), + rxjs6Operators.reduce(sum, 0)) + ) + }, options) .add('xstream', function(deferred) { runners.runXstream(deferred, xs.fromArray(a).filter(even).map(add1).fold(sum, 0).last()) }, options) diff --git a/test/perf/flatMap.js b/test/perf/flatMap.js index 2630d4d6..3aa233f9 100644 --- a/test/perf/flatMap.js +++ b/test/perf/flatMap.js @@ -2,7 +2,9 @@ require('buba/register') var Benchmark = require('benchmark'); var most = require('../../src/index'); var rx = require('rx'); -var rxjs = require('@reactivex/rxjs') +var rxjs = require('@reactivex/rxjs'); +var rxjs6 = require('rxjs'); +var rxjs6Operators = require('rxjs/operators'); var kefir = require('kefir'); var bacon = require('baconjs'); var highland = require('highland'); @@ -55,6 +57,13 @@ suite rxjs.Observable.from(a).flatMap( function(x) {return rxjs.Observable.from(x)}).reduce(sum, 0)) }, options) + .add('rx 6', function(deferred) { + runners.runRx6(deferred, + rxjs6.from(a).pipe( + rxjs6Operators.flatMap(function(x) {return rxjs6.of(x)}), + rxjs6Operators.reduce(sum, 0)) + ) + }, options) .add('xstream', function(deferred) { runners.runXstream(deferred, xs.fromArray(a).map(xs.fromArray).compose(xstreamFlattenConcurrently).fold(sum, 0).last()); }, options) diff --git a/test/perf/merge-nested.js b/test/perf/merge-nested.js index 50619f7a..6e146a9f 100644 --- a/test/perf/merge-nested.js +++ b/test/perf/merge-nested.js @@ -2,8 +2,9 @@ require('buba/register') var Benchmark = require('benchmark'); var most = require('../../src/index'); var rx = require('rx'); -var rxjs = require('@reactivex/rxjs') -var kefir = require('kefir'); +var rxjs = require('@reactivex/rxjs'); +var rxjs6 = require('rxjs'); +var rxjs6Operators = require('rxjs/operators'); var bacon = require('baconjs'); var highland = require('highland'); var xs = require('xstream').default; @@ -35,6 +36,14 @@ function merge(n, create) { return s; } +function mergeRxjs6(n, create) { + var s = []; + for(var i=0; i Date: Wed, 15 Aug 2018 20:26:32 +0100 Subject: [PATCH 2/2] results in terminal mode --- test/perf/README.md | 199 ++++++++++++++++++++++---------------------- 1 file changed, 100 insertions(+), 99 deletions(-) diff --git a/test/perf/README.md b/test/perf/README.md index 1e026fe3..8aca6b88 100644 --- a/test/perf/README.md +++ b/test/perf/README.md @@ -38,14 +38,14 @@ v8.11.3 filter -> map -> reduce 1000000 integers ------------------------------------------------------- -most 443.42 op/s ± 1.55% (81 samples) -rx 4 1.95 op/s ± 0.91% (14 samples) -rx 5 101.69 op/s ± 1.46% (78 samples) -rx 6 99.22 op/s ± 1.67% (76 samples) -xstream 21.84 op/s ± 1.66% (54 samples) -kefir 12.71 op/s ± 11.05% (64 samples) -bacon 1.49 op/s ± 3.78% (12 samples) -highland 8.32 op/s ± 2.68% (42 samples) +most 442.99 op/s ± 1.01% (85 samples) +rx 4 1.95 op/s ± 0.37% (14 samples) +rx 5 103.44 op/s ± 0.92% (81 samples) +rx 6 98.88 op/s ± 1.51% (77 samples) +xstream 21.60 op/s ± 0.73% (55 samples) +kefir 14.11 op/s ± 10.89% (72 samples) +bacon 1.51 op/s ± 3.88% (12 samples) +highland 8.65 op/s ± 2.75% (44 samples) ------------------------------------------------------- > most-perf@0.10.0 flatMap /home/juan/code/most/test/perf @@ -53,14 +53,14 @@ highland 8.32 op/s ± 2.68% (42 samples) flatMap 1000 x 1000 streams ------------------------------------------------------- -most 51.04 op/s ± 2.55% (60 samples) -rx 4 0.91 op/s ± 0.91% (9 samples) -rx 5 28.59 op/s ± 3.06% (39 samples) -rx 6 9.86 op/s ± 2.98% (46 samples) -xstream 17.35 op/s ± 1.51% (80 samples) -kefir 14.62 op/s ± 1.34% (68 samples) -bacon 0.60 op/s ± 6.28% (7 samples) -highland 0.14 op/s ± 1.92% (5 samples) +most 51.93 op/s ± 2.38% (62 samples) +rx 4 0.91 op/s ± 1.23% (9 samples) +rx 5 31.85 op/s ± 1.10% (54 samples) +rx 6 10.10 op/s ± 2.30% (47 samples) +xstream 17.41 op/s ± 1.21% (82 samples) +kefir 16.78 op/s ± 0.94% (80 samples) +bacon 0.61 op/s ± 6.00% (7 samples) +highland 0.14 op/s ± 2.34% (5 samples) ------------------------------------------------------- > most-perf@0.10.0 concatMap /home/juan/code/most/test/perf @@ -68,13 +68,13 @@ highland 0.14 op/s ± 1.92% (5 samples) concatMap 1000 x 1000 streams ------------------------------------------------------- -most 46.87 op/s ± 2.12% (72 samples) -rx 4 1.87 op/s ± 2.04% (14 samples) -rx 5 32.73 op/s ± 2.50% (54 samples) -rx 6 10.37 op/s ± 2.75% (48 samples) -xstream 16.52 op/s ± 1.48% (77 samples) -kefir 15.09 op/s ± 1.61% (70 samples) -bacon 0.60 op/s ± 5.44% (7 samples) +most 52.01 op/s ± 4.35% (40 samples) +rx 4 1.82 op/s ± 0.86% (14 samples) +rx 5 26.90 op/s ± 1.33% (46 samples) +rx 6 10.82 op/s ± 2.47% (50 samples) +xstream 16.80 op/s ± 1.21% (79 samples) +kefir 16.53 op/s ± 0.79% (79 samples) +bacon 0.60 op/s ± 6.17% (7 samples) ------------------------------------------------------- > most-perf@0.10.0 merge /home/juan/code/most/test/perf @@ -82,13 +82,13 @@ bacon 0.60 op/s ± 5.44% (7 samples) merge 100000 x 10 streams ------------------------------------------------------- -most 158.95 op/s ± 26.00% (42 samples) -rx 4 1.47 op/s ± 0.97% (12 samples) -rx 5 73.64 op/s ± 1.45% (84 samples) -rx 6 73.29 op/s ± 1.61% (83 samples) -xstream 34.92 op/s ± 2.67% (80 samples) -kefir 16.30 op/s ± 1.57% (75 samples) -bacon 1.53 op/s ± 2.61% (12 samples) +most 159.18 op/s ± 25.88% (43 samples) +rx 4 1.51 op/s ± 1.02% (12 samples) +rx 5 74.69 op/s ± 1.00% (86 samples) +rx 6 76.16 op/s ± 0.71% (88 samples) +xstream 38.17 op/s ± 1.62% (64 samples) +kefir 17.49 op/s ± 1.88% (83 samples) +bacon 1.53 op/s ± 2.75% (12 samples) ------------------------------------------------------- > most-perf@0.10.0 merge-nested /home/juan/code/most/test/perf @@ -96,37 +96,37 @@ bacon 1.53 op/s ± 2.61% (12 samples) merge nested streams w/depth 2, 5, 10, 100 (10000 items in each stream) ------------------------------------------------------- -most (depth 2) 4081.32 op/s ± 5.18% (37 samples) -most (depth 5) 1946.29 op/s ± 1.42% (86 samples) -most (depth 10) 1048.74 op/s ± 1.67% (85 samples) -most (depth 100) 109.99 op/s ± 1.55% (47 samples) -rx 4 (depth 2) 52.33 op/s ± 1.78% (63 samples) -rx 4 (depth 5) 20.34 op/s ± 1.34% (51 samples) -rx 4 (depth 10) 8.77 op/s ± 0.89% (45 samples) -rx 4 (depth 100) 0.28 op/s ± 1.38% (6 samples) -rx 5 (depth 2) 915.47 op/s ± 3.35% (48 samples) -rx 5 (depth 5) 351.37 op/s ± 1.66% (84 samples) -rx 5 (depth 10) 149.04 op/s ± 1.61% (81 samples) -rx 5 (depth 100) 3.12 op/s ± 2.01% (20 samples) -rx 6 (depth 2) 2227.96 op/s ± 1.88% (81 samples) -rx 6 (depth 5) 1137.70 op/s ± 1.70% (85 samples) -rx 6 (depth 10) 633.41 op/s ± 1.61% (85 samples) -rx 6 (depth 100) 72.52 op/s ± 1.48% (83 samples) -xstream (depth 2) 1161.94 op/s ± 1.61% (85 samples) -xstream (depth 5) 386.63 op/s ± 1.54% (84 samples) -xstream (depth 10) 145.77 op/s ± 1.58% (83 samples) -xstream (depth 100) 2.10 op/s ± 1.53% (15 samples) -kefir (depth 2) 430.45 op/s ± 1.05% (74 samples) -kefir (depth 5) 134.08 op/s ± 0.88% (75 samples) -kefir (depth 10) 49.35 op/s ± 1.02% (74 samples) -kefir (depth 100) 0.56 op/s ± 6.31% (7 samples) -bacon (depth 2) 37.17 op/s ± 4.95% (62 samples) -bacon (depth 5) 18.09 op/s ± 0.99% (48 samples) -bacon (depth 10) 8.63 op/s ± 1.15% (44 samples) -bacon (depth 100) 0.21 op/s ± 4.69% (6 samples) -highland (depth 2) 3.18 op/s ± 2.91% (20 samples) -highland (depth 5) 3.24 op/s ± 1.56% (20 samples) -highland (depth 10) 0.24 op/s ± 0.53% (6 samples) +most (depth 2) 6088.23 op/s ± 15.66% (45 samples) +most (depth 5) 2015.35 op/s ± 0.78% (89 samples) +most (depth 10) 1102.96 op/s ± 0.77% (90 samples) +most (depth 100) 351.16 op/s ± 1.19% (85 samples) +rx 4 (depth 2) 54.18 op/s ± 1.26% (84 samples) +rx 4 (depth 5) 20.67 op/s ± 1.48% (53 samples) +rx 4 (depth 10) 8.64 op/s ± 0.36% (45 samples) +rx 4 (depth 100) 0.28 op/s ± 0.88% (6 samples) +rx 5 (depth 2) 944.78 op/s ± 2.70% (51 samples) +rx 5 (depth 5) 381.93 op/s ± 0.56% (88 samples) +rx 5 (depth 10) 156.86 op/s ± 0.97% (81 samples) +rx 5 (depth 100) 3.00 op/s ± 2.15% (19 samples) +rx 6 (depth 2) 2323.60 op/s ± 0.93% (86 samples) +rx 6 (depth 5) 1195.30 op/s ± 0.46% (90 samples) +rx 6 (depth 10) 648.01 op/s ± 0.97% (87 samples) +rx 6 (depth 100) 73.82 op/s ± 1.03% (86 samples) +xstream (depth 2) 1188.25 op/s ± 1.05% (87 samples) +xstream (depth 5) 397.85 op/s ± 1.15% (87 samples) +xstream (depth 10) 150.90 op/s ± 0.90% (87 samples) +xstream (depth 100) 2.22 op/s ± 2.23% (16 samples) +kefir (depth 2) 465.83 op/s ± 1.45% (85 samples) +kefir (depth 5) 147.50 op/s ± 1.19% (85 samples) +kefir (depth 10) 52.65 op/s ± 1.46% (81 samples) +kefir (depth 100) 0.62 op/s ± 10.64% (8 samples) +bacon (depth 2) 39.17 op/s ± 4.49% (64 samples) +bacon (depth 5) 19.09 op/s ± 1.54% (52 samples) +bacon (depth 10) 9.11 op/s ± 0.91% (47 samples) +bacon (depth 100) 0.20 op/s ± 3.08% (6 samples) +highland (depth 2) 3.15 op/s ± 2.60% (20 samples) +highland (depth 5) 3.18 op/s ± 1.47% (20 samples) +highland (depth 10) 0.23 op/s ± 0.48% (6 samples) ------------------------------------------------------- > most-perf@0.10.0 zip /home/juan/code/most/test/perf @@ -134,13 +134,13 @@ highland (depth 10) 0.24 op/s ± 0.53% (6 samples) zip 2 x 100000 integers ------------------------------------------------------- -most 118.80 op/s ± 1.70% (73 samples) -rx 4 6.29 op/s ± 1.36% (34 samples) -rx 5 0.26 op/s ± 1.01% (6 samples) -rx 6 0.26 op/s ± 0.94% (6 samples) -kefir 0.72 op/s ± 53.21% (9 samples) -bacon 0.08 op/s ± 20.15% (5 samples) -highland 0.09 op/s ± 4.77% (5 samples) +most 126.54 op/s ± 1.65% (78 samples) +rx 4 6.46 op/s ± 1.27% (35 samples) +rx 5 0.26 op/s ± 0.75% (6 samples) +rx 6 0.26 op/s ± 0.68% (6 samples) +kefir 0.74 op/s ± 53.83% (9 samples) +bacon 0.08 op/s ± 21.13% (5 samples) +highland 0.09 op/s ± 4.67% (5 samples) ------------------------------------------------------- > most-perf@0.10.0 scan /home/juan/code/most/test/perf @@ -148,14 +148,14 @@ highland 0.09 op/s ± 4.77% (5 samples) scan -> reduce 1000000 integers ------------------------------------------------------- -most 352.54 op/s ± 1.40% (84 samples) -rx 4 1.80 op/s ± 0.61% (13 samples) -rx 5 24.30 op/s ± 2.04% (59 samples) -rx 6 22.70 op/s ± 1.53% (55 samples) -xstream 19.15 op/s ± 1.69% (48 samples) -kefir 18.15 op/s ± 18.11% (52 samples) -bacon 1.02 op/s ± 8.28% (9 samples) -highland 8.98 op/s ± 1.81% (45 samples) +most 351.48 op/s ± 0.88% (84 samples) +rx 4 1.85 op/s ± 0.43% (14 samples) +rx 5 26.23 op/s ± 2.00% (65 samples) +rx 6 24.97 op/s ± 1.67% (62 samples) +xstream 20.97 op/s ± 1.20% (53 samples) +kefir 19.06 op/s ± 17.83% (54 samples) +bacon 1.02 op/s ± 9.01% (9 samples) +highland 9.04 op/s ± 1.80% (45 samples) ------------------------------------------------------- > most-perf@0.10.0 slice /home/juan/code/most/test/perf @@ -163,14 +163,14 @@ highland 8.98 op/s ± 1.81% (45 samples) skip(n/4) -> take(n/2) 1000000 integers ------------------------------------------------------- -most 240.56 op/s ± 1.55% (78 samples) -rx 4 2.76 op/s ± 0.81% (18 samples) -rx 5 135.79 op/s ± 1.52% (78 samples) -rx 6 130.55 op/s ± 1.48% (75 samples) -xstream 22.15 op/s ± 1.30% (52 samples) -kefir 15.62 op/s ± 6.37% (75 samples) -bacon 1.79 op/s ± 2.15% (13 samples) -highland 9.45 op/s ± 2.62% (46 samples) +most 250.26 op/s ± 0.68% (89 samples) +rx 4 2.80 op/s ± 0.51% (18 samples) +rx 5 139.49 op/s ± 1.01% (81 samples) +rx 6 135.73 op/s ± 0.53% (89 samples) +xstream 25.76 op/s ± 0.59% (60 samples) +kefir 15.98 op/s ± 6.22% (78 samples) +bacon 1.82 op/s ± 2.15% (13 samples) +highland 9.69 op/s ± 2.25% (47 samples) ------------------------------------------------------- > most-perf@0.10.0 skipRepeats /home/juan/code/most/test/perf @@ -178,13 +178,13 @@ highland 9.45 op/s ± 2.62% (46 samples) skipRepeats -> reduce 2 x 1000000 integers ------------------------------------------------------- -most 370.98 op/s ± 1.51% (80 samples) -rx 4 2.15 op/s ± 0.71% (15 samples) -rx 5 25.46 op/s ± 2.39% (62 samples) -rx 6 25.99 op/s ± 1.43% (63 samples) -xstream 52.31 op/s ± 2.28% (81 samples) -kefir 19.12 op/s ± 19.47% (53 samples) -bacon 1.65 op/s ± 3.17% (13 samples) +most 372.24 op/s ± 1.04% (86 samples) +rx 4 2.15 op/s ± 0.60% (15 samples) +rx 5 27.13 op/s ± 1.22% (66 samples) +rx 6 25.03 op/s ± 1.25% (62 samples) +xstream 54.87 op/s ± 2.64% (86 samples) +kefir 20.27 op/s ± 17.96% (57 samples) +bacon 1.63 op/s ± 3.50% (12 samples) ------------------------------------------------------- > most-perf@0.10.0 switch /home/juan/code/most/test/perf @@ -192,11 +192,12 @@ bacon 1.65 op/s ± 3.17% (13 samples) switch 10000 x 1000 streams ------------------------------------------------------- -most 1673.19 op/s ± 1.27% (75 samples) -rx 4 116.50 op/s ± 12.05% (81 samples) -rx 5 3.56 op/s ± 11.17% (20 samples) -rx 6 7.48 op/s ± 2.04% (40 samples) -xstream 1.64 op/s ± 2.02% (13 samples) -kefir 1.64 op/s ± 3.56% (12 samples) -bacon 0.02 op/s ± 5.20% (5 samples) -------------------------------------------------------- \ No newline at end of file +most 1815.98 op/s ± 1.65% (84 samples) +rx 4 130.78 op/s ± 1.07% (86 samples) +rx 5 3.72 op/s ± 9.37% (21 samples) +rx 6 7.06 op/s ± 1.90% (38 samples) +xstream 1.80 op/s ± 1.31% (13 samples) +kefir 1.62 op/s ± 1.61% (12 samples) +bacon 0.02 op/s ± 5.26% (5 samples) +------------------------------------------------------- +Done in 1124.62s. \ No newline at end of file