Toggle navigation
MeasureThat.net
Create a benchmark
Tools
Feedback
FAQ
Register
Log In
Run results for:
Rxjs several pipes vs one 100k without functional array functions at all 1253tzsd
Go to the benchmark
Embed
Embed Benchmark Result
Run details:
User agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
Browser:
Chrome 130
Operating system:
Mac OS X 10.15.7
Device Platform:
Desktop
Date tested:
one year ago
Test name
Executions per second
RxJS one pipe
316.7 Ops/sec
Several pipes
191.5 Ops/sec
Many pipes same function
185.8 Ops/sec
Top operator
186.1 Ops/sec
HTML Preparation code:
<script src='https://unpkg.com/rxjs@6.5.5/bundles/rxjs.umd.min.js'></script>
Script Preparation code:
var rawdata = Array.from(Array(100000).keys()) // 10k numbers 1,2,3,4,5... function topOperator(values) { let count = 0; for (let i = 0; i < 10; i++) { count = count + 1; } return count; }
Tests:
RxJS one pipe
let { from, Observable } = rxjs; let { flatMap, map, tap, toArray } = rxjs.operators; const data$ = from(rawdata) .pipe( map(values => { let count = 0; for (let i = 0; i < 50; i++) { count = count + 1; } return count; }) ) let data; data$.subscribe(d => data = d);
Several pipes
let { from, Observable } = rxjs; let { flatMap, map, tap, toArray } = rxjs.operators; const data$ = from(rawdata) .pipe( map(values => { let count = 0; for (let i = 0; i < 10; i++) { count = count + 1; } return count; }), map(values => { let count = 0; for (let i = 0; i < 10; i++) { count = count + 1; } return count; }), map(values => { let count = 0; for (let i = 0; i < 10; i++) { count = count + 1; } return count; }), map(values => { let count = 0; for (let i = 0; i < 10; i++) { count = count + 1; } return count; }), map(values => { let count = 0; for (let i = 0; i < 10; i++) { count = count + 1; } return count; }) ) let data; data$.subscribe(d => data = d);
Many pipes same function
let { from, Observable } = rxjs; let { flatMap, map, tap, toArray } = rxjs.operators; function myOperator(values) { let count = 0; for (let i = 0; i < 10; i++) { count = count + 1; } return count; } const data$ = from(rawdata) .pipe( map(myOperator), map(myOperator), map(myOperator), map(myOperator), map(myOperator) ) let data; data$.subscribe(d => data = d);
Top operator
let { from, Observable } = rxjs; let { flatMap, map, tap, toArray } = rxjs.operators; const data$ = from(rawdata) .pipe( map(topOperator), map(topOperator), map(topOperator), map(topOperator), map(topOperator) ) let data; data$.subscribe(d => data = d);