Skip to content

Commit f5de538

Browse files
committed
Add simple benchmark
1 parent 54b36b9 commit f5de538

File tree

1 file changed

+56
-0
lines changed

1 file changed

+56
-0
lines changed

benchmark.js

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
var jsonpointer = require('./')
2+
3+
var i
4+
var obj = {
5+
a: 1,
6+
b: {
7+
c: 2
8+
},
9+
d: {
10+
e: [{ a: 3 }, { b: 4 }, { c: 5 }]
11+
}
12+
}
13+
14+
// Get
15+
console.time('get first level property')
16+
for (i = 0; i < 1e6; i++) {
17+
jsonpointer.get(obj, '/a')
18+
}
19+
console.timeEnd('get first level property')
20+
21+
console.time('get second level property')
22+
for (i = 0; i < 1e6; i++) {
23+
jsonpointer.get(obj, '/d/e')
24+
}
25+
console.timeEnd('get second level property')
26+
27+
console.time('get third level property')
28+
for (i = 0; i < 1e6; i++) {
29+
jsonpointer.get(obj, '/d/e/0')
30+
}
31+
console.timeEnd('get third level property')
32+
33+
// Set
34+
console.time('set first level property')
35+
for (i = 0; i < 1e6; i++) {
36+
jsonpointer.set(obj, '/a', 'bla')
37+
}
38+
console.timeEnd('set first level property')
39+
40+
console.time('set second level property')
41+
for (i = 0; i < 1e6; i++) {
42+
jsonpointer.set(obj, '/d/e', 'bla')
43+
}
44+
console.timeEnd('set second level property')
45+
46+
console.time('set third level property')
47+
for (i = 0; i < 1e6; i++) {
48+
jsonpointer.set(obj, '/d/e/0', 'bla')
49+
}
50+
console.timeEnd('set third level property')
51+
52+
console.time('push property into array')
53+
for (i = 0; i < 1e6; i++) {
54+
jsonpointer.set(obj, '/d/e/-', 'bla')
55+
}
56+
console.timeEnd('push property into array')

0 commit comments

Comments
 (0)