Skip to content

Commit

Permalink
chore(micro-perf): add perf test for mergeMapTo with resultSelector
Browse files Browse the repository at this point in the history
Results on a Intel Core i7-3770 (Ivy Bridge) running Ubuntu:

                                      |     RxJS 4.0.7 | RxJS 5.0.0-beta.1 | factor | % improved
-------------------------------------------------------------------------------------------------
mergemapto-resultselector - immediate |   811 (±1.50%) |    5,376 (±1.10%) |  6.63x |     562.7%
            mergemapto-resultselector |   369 (±0.43%) |    1,957 (±0.45%) |  5.30x |     429.7%
  • Loading branch information
luisgabriel authored and kwonoj committed Feb 6, 2016
1 parent c8cf72a commit 8e5508d
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
var RxOld = require('rx');
var RxNew = require('../../../../index');

module.exports = function (suite) {
var resultSelector = function (x, y, ix, iy) { return x + y + ix + iy; };
var oldMergeMapWithCurrentThreadScheduler = RxOld.Observable.range(0, 25, RxOld.Scheduler.currentThread)
.flatMap(RxOld.Observable.range(0, 25, RxOld.Scheduler.currentThread), resultSelector);
var newMergeMapWithCurrentThreadScheduler = RxNew.Observable.range(0, 25, RxNew.Scheduler.queue)
.mergeMapTo(RxNew.Observable.range(0, 25, RxNew.Scheduler.queue), resultSelector);

function _next(x) { }
function _error(e) { }
function _complete() { }
return suite
.add('old mergeMap (Observable) with resultSelector and currentThread scheduler', function () {
oldMergeMapWithCurrentThreadScheduler.subscribe(_next, _error, _complete);
})
.add('new mergeMap (Observable) with resultSelector and currentThread scheduler', function () {
newMergeMapWithCurrentThreadScheduler.subscribe(_next, _error, _complete);
});
};
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,4 @@ module.exports = function (suite) {
.add('new mergeMap (scalar Observable) with current thread scheduler', function () {
newMergeMapWithCurrentThreadScheduler.subscribe(_next, _error, _complete);
});
};
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
var RxOld = require('rx');
var RxNew = require('../../../../index');

module.exports = function (suite) {
var resultSelector = function (x, y, ix, iy) { return x + y + ix + iy; };
var oldMergeMapWithImmediateScheduler = RxOld.Observable.range(0, 25, RxOld.Scheduler.immediate)
.flatMap(RxOld.Observable.range(0, 25, RxOld.Scheduler.immediate), resultSelector);
var newMergeMapWithImmediateScheduler = RxNew.Observable.range(0, 25)
.mergeMapTo(RxNew.Observable.range(0, 25), resultSelector);

function _next(x) { }
function _error(e) { }
function _complete() { }
return suite
.add('old mergeMap (Observable) with resultSelector and immediate scheduler', function () {
oldMergeMapWithImmediateScheduler.subscribe(_next, _error, _complete);
})
.add('new mergeMap (Observable) with resultSelector and immediate scheduler', function () {
newMergeMapWithImmediateScheduler.subscribe(_next, _error, _complete);
});
};

0 comments on commit 8e5508d

Please sign in to comment.