Skip to content

Commit 24506b3

Browse files
martinsikbenlesh
authored andcommitted
perf(pluck,bufferTime,asObservable): add performance tests for pluck(), bufferTime() and asObservable() operators (#2491)
* perf(pluck,asobservable): add performance tests for pluck and asObservable operators * perf(bufferTime): add performance test for bufferTime operator
1 parent 9fea36d commit 24506b3

File tree

7 files changed

+158
-0
lines changed

7 files changed

+158
-0
lines changed
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
var RxOld = require('rx');
2+
var RxNew = require('../../../../index');
3+
4+
module.exports = function (suite) {
5+
var oldRangeWithImmediateScheduler = RxOld.Observable.range(0, 250, RxOld.Scheduler.currentThread);
6+
var newRangeWithImmediateScheduler = RxNew.Observable.range(0, 250, RxNew.Scheduler.queue);
7+
8+
function _next(x) { }
9+
function _error(e) { }
10+
function _complete() { }
11+
return suite
12+
.add('old asObservable() with immediate scheduler', function () {
13+
var oldSubject = new RxOld.Subject();
14+
15+
oldSubject.asObservable().subscribe(_next, _error, _complete);
16+
oldRangeWithImmediateScheduler.subscribe(oldSubject);
17+
})
18+
.add('new asObservable() with immediate scheduler', function () {
19+
var newSubject = new RxNew.Subject();
20+
21+
newSubject.asObservable().subscribe(_next, _error, _complete);
22+
newRangeWithImmediateScheduler.subscribe(newSubject);
23+
});
24+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var RxOld = require('rx');
2+
var RxNew = require('../../../../index');
3+
4+
module.exports = function (suite) {
5+
var source = [];
6+
for (var i = 0; i < 25; i++) {
7+
source.push({'a': {'b': {'c': i }}});
8+
}
9+
10+
var oldPluckWithImmediateScheduler = RxOld.Observable.from(source, null, null, RxOld.Scheduler.currentThread).pluck('a', 'b', 'c');
11+
var newPluckWithImmediateScheduler = RxNew.Observable.from(source, RxNew.Scheduler.queue).pluck('a', 'b', 'c');
12+
13+
function _next(x) { }
14+
function _error(e) { }
15+
function _complete() { }
16+
return suite
17+
.add('old pluck() with nested properties and current thread scheduler', function () {
18+
oldPluckWithImmediateScheduler.subscribe(_next, _error, _complete);
19+
})
20+
.add('new pluck() with nested properties and current thread scheduler', function () {
21+
newPluckWithImmediateScheduler.subscribe(_next, _error, _complete);
22+
});
23+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var RxOld = require('rx');
2+
var RxNew = require('../../../../index');
3+
4+
module.exports = function (suite) {
5+
var source = [];
6+
for (var i = 0; i < 25; i++) {
7+
source.push({'p': i});
8+
}
9+
10+
var oldPluckWithImmediateScheduler = RxOld.Observable.from(source, null, null, RxOld.Scheduler.currentThread).pluck('p');
11+
var newPluckWithImmediateScheduler = RxNew.Observable.from(source, RxNew.Scheduler.queue).pluck('p');
12+
13+
function _next(x) { }
14+
function _error(e) { }
15+
function _complete() { }
16+
return suite
17+
.add('old pluck() with current thread scheduler', function () {
18+
oldPluckWithImmediateScheduler.subscribe(_next, _error, _complete);
19+
})
20+
.add('new pluck() with current thread scheduler', function () {
21+
newPluckWithImmediateScheduler.subscribe(_next, _error, _complete);
22+
});
23+
};
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
var RxOld = require('rx');
2+
var RxNew = require('../../../../index');
3+
4+
module.exports = function (suite) {
5+
var oldRangeWithImmediateScheduler = RxOld.Observable.range(0, 250, RxOld.Scheduler.immediate);
6+
var newRangeWithImmediateScheduler = RxNew.Observable.range(0, 250);
7+
8+
function _next(x) { }
9+
function _error(e) { }
10+
function _complete() { }
11+
return suite
12+
.add('old asObservable() with immediate scheduler', function () {
13+
var oldSubject = new RxOld.Subject();
14+
15+
oldSubject.asObservable().subscribe(_next, _error, _complete);
16+
oldRangeWithImmediateScheduler.subscribe(oldSubject);
17+
})
18+
.add('new asObservable() with immediate scheduler', function () {
19+
var newSubject = new RxNew.Subject();
20+
21+
newSubject.asObservable().subscribe(_next, _error, _complete);
22+
newRangeWithImmediateScheduler.subscribe(newSubject);
23+
});
24+
};
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
var RxOld = require('rx');
2+
var RxNew = require('../../../../index');
3+
4+
module.exports = function (suite) {
5+
var oldBufferWithImmediateScheduler = RxOld.Observable.interval(25, RxOld.Scheduler.immediate).bufferWithTime(60, RxOld.Scheduler.immediate).take(3);
6+
var newBufferWithImmediateScheduler = RxNew.Observable.interval(25).bufferTime(60).take(3);
7+
8+
function _next(x) { }
9+
function _error(e) { }
10+
function _complete() { }
11+
return suite
12+
.add('old bufferTime() with immediate scheduler', function () {
13+
oldBufferWithImmediateScheduler.subscribe(_next, _error, _complete);
14+
})
15+
.add('new bufferTime() with immediate scheduler', function () {
16+
newBufferWithImmediateScheduler.subscribe(_next, _error, _complete);
17+
});
18+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var RxOld = require('rx');
2+
var RxNew = require('../../../../index');
3+
4+
module.exports = function (suite) {
5+
var source = [];
6+
for (var i = 0; i < 25; i++) {
7+
source.push({'a': {'b': {'c': i }}});
8+
}
9+
10+
var oldPluckWithImmediateScheduler = RxOld.Observable.from(source, null, null, RxOld.Scheduler.immediate).pluck('a', 'b', 'c');
11+
var newPluckWithImmediateScheduler = RxNew.Observable.from(source).pluck('a', 'b', 'c');
12+
13+
function _next(x) { }
14+
function _error(e) { }
15+
function _complete() { }
16+
return suite
17+
.add('old pluck() with nested properties and immediate scheduler', function () {
18+
oldPluckWithImmediateScheduler.subscribe(_next, _error, _complete);
19+
})
20+
.add('new pluck() with nested properties and immediate scheduler', function () {
21+
newPluckWithImmediateScheduler.subscribe(_next, _error, _complete);
22+
});
23+
};
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
var RxOld = require('rx');
2+
var RxNew = require('../../../../index');
3+
4+
module.exports = function (suite) {
5+
var source = [];
6+
for (var i = 0; i < 25; i++) {
7+
source.push({'p': i});
8+
}
9+
10+
var oldPluckWithImmediateScheduler = RxOld.Observable.from(source, null, null, RxOld.Scheduler.immediate).pluck('p');
11+
var newPluckWithImmediateScheduler = RxNew.Observable.from(source).pluck('p');
12+
13+
function _next(x) { }
14+
function _error(e) { }
15+
function _complete() { }
16+
return suite
17+
.add('old pluck() with immediate scheduler', function () {
18+
oldPluckWithImmediateScheduler.subscribe(_next, _error, _complete);
19+
})
20+
.add('new pluck() with immediate scheduler', function () {
21+
newPluckWithImmediateScheduler.subscribe(_next, _error, _complete);
22+
});
23+
};

0 commit comments

Comments
 (0)