Skip to content

Commit 5427d40

Browse files
committed
Simple perf benchmarker
1 parent ab698fc commit 5427d40

File tree

4 files changed

+387
-1
lines changed

4 files changed

+387
-1
lines changed

package.json

+5-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
},
1717
"main": "dist/immutable.js",
1818
"scripts": {
19-
"test": "./resources/node_test.sh"
19+
"test": "./resources/node_test.sh",
20+
"perf": "node ./resources/bench.js"
2021
},
2122
"jest": {
2223
"scriptPreprocessor": "resources/jestPreprocessor.js",
@@ -28,7 +29,9 @@
2829
},
2930
"devDependencies": {
3031
"acorn": "^0.11.0",
32+
"benchmark": "^1.0.0",
3133
"bluebird": "^2.7.1",
34+
"colors": "^1.0.3",
3235
"es6-transpiler": "^0.7.18",
3336
"esperanto": "^0.6.0",
3437
"estraverse": "^1.9.1",
@@ -40,6 +43,7 @@
4043
"grunt-release": "^0.7.0",
4144
"jasmine-check": "^0.1.2",
4245
"magic-string": "^0.2.6",
46+
"microtime": "^1.2.0",
4347
"react-tools": "^0.11.1",
4448
"ts-compiler": "^2.0.0",
4549
"uglify-js": "^2.4.15"

perf/List.js

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
describe('List', function () {
2+
3+
describe('builds from array', function () {
4+
5+
var array2 = [];
6+
for (var ii = 0; ii < 2; ii++) {
7+
array2[ii] = ii;
8+
}
9+
10+
it('of 2', function () {
11+
Immutable.List(array2);
12+
});
13+
14+
var array8 = [];
15+
for (var ii = 0; ii < 8; ii++) {
16+
array8[ii] = ii;
17+
}
18+
19+
it('of 8', function () {
20+
Immutable.List(array8);
21+
});
22+
23+
var array32 = [];
24+
for (var ii = 0; ii < 32; ii++) {
25+
array32[ii] = ii;
26+
}
27+
28+
it('of 32', function () {
29+
Immutable.List(array32);
30+
});
31+
32+
var array1024 = [];
33+
for (var ii = 0; ii < 1024; ii++) {
34+
array1024[ii] = ii;
35+
}
36+
37+
it('of 1024', function () {
38+
Immutable.List(array1024);
39+
});
40+
41+
});
42+
43+
describe('pushes into', function () {
44+
45+
it('2 times', function () {
46+
var list = Immutable.List();
47+
for (var ii = 0; ii < 2; ii++) {
48+
list = list.push(ii);
49+
}
50+
});
51+
52+
it('8 times', function () {
53+
var list = Immutable.List();
54+
for (var ii = 0; ii < 8; ii++) {
55+
list = list.push(ii);
56+
}
57+
});
58+
59+
it('32 times', function () {
60+
var list = Immutable.List();
61+
for (var ii = 0; ii < 32; ii++) {
62+
list = list.push(ii);
63+
}
64+
});
65+
66+
it('1024 times', function () {
67+
var list = Immutable.List();
68+
for (var ii = 0; ii < 1024; ii++) {
69+
list = list.push(ii);
70+
}
71+
});
72+
73+
});
74+
75+
describe('pushes into transient', function () {
76+
77+
it('2 times', function () {
78+
var list = Immutable.List().asMutable();
79+
for (var ii = 0; ii < 2; ii++) {
80+
list = list.push(ii);
81+
}
82+
list = list.asImmutable();
83+
});
84+
85+
it('8 times', function () {
86+
var list = Immutable.List().asMutable();
87+
for (var ii = 0; ii < 8; ii++) {
88+
list = list.push(ii);
89+
}
90+
list = list.asImmutable();
91+
});
92+
93+
it('32 times', function () {
94+
var list = Immutable.List().asMutable();
95+
for (var ii = 0; ii < 32; ii++) {
96+
list = list.push(ii);
97+
}
98+
list = list.asImmutable();
99+
});
100+
101+
it('1024 times', function () {
102+
var list = Immutable.List().asMutable();
103+
for (var ii = 0; ii < 1024; ii++) {
104+
list = list.push(ii);
105+
}
106+
list = list.asImmutable();
107+
});
108+
109+
});
110+
111+
112+
});

perf/Map.js

+39
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
describe('Map', function () {
2+
3+
var obj2 = {};
4+
for (var ii = 0; ii < 2; ii++) {
5+
obj2['x' + ii] = ii;
6+
}
7+
8+
it('builds from an object of 2', function() {
9+
Immutable.Map(obj2);
10+
});
11+
12+
var obj8 = {};
13+
for (var ii = 0; ii < 8; ii++) {
14+
obj8['x' + ii] = ii;
15+
}
16+
17+
it('builds from an object of 8', function() {
18+
Immutable.Map(obj8);
19+
});
20+
21+
var obj32 = {};
22+
for (var ii = 0; ii < 32; ii++) {
23+
obj32['x' + ii] = ii;
24+
}
25+
26+
it('builds from an object of 32', function() {
27+
Immutable.Map(obj32);
28+
});
29+
30+
var obj1024 = {};
31+
for (var ii = 0; ii < 1024; ii++) {
32+
obj1024['x' + ii] = ii;
33+
}
34+
35+
it('builds from an object of 1024', function() {
36+
Immutable.Map(obj1024);
37+
});
38+
39+
});

0 commit comments

Comments
 (0)