Skip to content

Commit a687d3c

Browse files
committed
f
1 parent 9ace7bf commit a687d3c

File tree

3 files changed

+142
-100
lines changed

3 files changed

+142
-100
lines changed

benchmark/decoder.v1.read.js

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
'use strict';
2+
3+
var bench = require('fastbench');
4+
var java = require('js-to-java');
5+
var hessian = require('..');
6+
7+
var max = 10;
8+
9+
var complexObject = {
10+
$class: 'com.hessiantest.org.MockRequest',
11+
$: {
12+
id: 123,
13+
name: 'getData',
14+
args: [1, makeStr('name', 1), makeStr('a', 200)],
15+
conn: {
16+
$class: 'com.hessiantest.org.MockRequestConnection',
17+
$: {
18+
ctx: java.long(1024),
19+
name: makeStr('p', 200),
20+
}
21+
}
22+
}
23+
};
24+
var complexObjectBuf = hessian.encode(complexObject, '1.0');
25+
console.log(JSON.stringify(hessian.decode(complexObjectBuf, '1.0', true), null, 2));
26+
27+
var run = bench([
28+
function readComplexObject(cb) {
29+
for (var i = 0; i < max; i++) {
30+
hessian.decode(complexObjectBuf, '1.0', true);
31+
}
32+
setImmediate(cb);
33+
},
34+
], 10000);
35+
36+
run(run);
37+
38+
function makeStr(str, concats) {
39+
var s = ''
40+
while (concats--) {
41+
s += str
42+
}
43+
return s
44+
}
45+
46+
// node benchmark/decoder.v1.read.js
47+
// {
48+
// "$class": "com.hessiantest.org.MockRequest",
49+
// "$": {
50+
// "id": {
51+
// "$class": "int",
52+
// "$": 123
53+
// },
54+
// "name": {
55+
// "$class": "java.lang.String",
56+
// "$": "getData"
57+
// },
58+
// "args": {
59+
// "$class": "java.util.ArrayList",
60+
// "$": [
61+
// {
62+
// "$class": "int",
63+
// "$": 1
64+
// },
65+
// {
66+
// "$class": "java.lang.String",
67+
// "$": "name"
68+
// },
69+
// {
70+
// "$class": "java.lang.String",
71+
// "$": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
72+
// }
73+
// ]
74+
// },
75+
// "conn": {
76+
// "$class": "com.hessiantest.org.MockRequestConnection",
77+
// "$": {
78+
// "ctx": {
79+
// "$class": "long",
80+
// "$": 1024
81+
// },
82+
// "name": {
83+
// "$class": "java.lang.String",
84+
// "$": "pppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppppp"
85+
// }
86+
// }
87+
// }
88+
// }
89+
// }
90+
// readComplexObject*10000: 2062.029ms
91+
// readComplexObject*10000: 1711.482ms

benchmark/encode.js

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -34,57 +34,57 @@ var complexObject = {
3434

3535
suite
3636

37-
// .add('hessian1 encode: number', function() {
38-
// hessian.encode(1, '1.0');
39-
// })
40-
// .add('hessian2 encode: number', function() {
41-
// hessian.encode(1, '2.0');
42-
// })
43-
//
44-
// .add('hessian1 encode: date', function() {
45-
// hessian.encode(new Date(), '1.0');
46-
// })
47-
// .add('hessian2 encode: date', function() {
48-
// hessian.encode(new Date(), '2.0');
49-
// })
50-
//
51-
// .add('hessian1 encode: long', function() {
52-
// hessian.encode(java.long(300), '1.0');
53-
// })
54-
// .add('hessian2 encode: long', function() {
55-
// hessian.encode(java.long(300), '2.0');
56-
// })
57-
//
58-
// .add('hessian1 encode: string', function() {
59-
// hessian.encode('xxx1231231231231xxx123', '1.0');
60-
// })
61-
// .add('hessian2 encode: string', function() {
62-
// hessian.encode('xxx1231231231231xxx123', '2.0');
63-
// })
64-
//
65-
// .add('hessian1 encode: [1, 2, 3]', function() {
66-
// hessian.encode([1, 2, 3], '1.0');
67-
// })
68-
// .add('hessian2 encode: [1, 2, 3]', function() {
69-
// hessian.encode([1, 2, 3], '2.0');
70-
// })
71-
// .add('hessian1 encode array', function() {
72-
// hessian.encode([1, "name", "xxx1231231231231xxx123"], '1.0');
73-
// })
74-
// .add('hessian2 encode array', function() {
75-
// hessian.encode([1, "name", "xxx1231231231231xxx123"], '2.0');
76-
// })
77-
//
78-
// .add('hessian1 encode: simple object', function() {
79-
// hessian.encode(simpleObject, '1.0');
80-
// })
81-
// .add('hessian2 encode: simple object', function() {
82-
// hessian.encode(simpleObject, '2.0');
83-
// })
84-
85-
// .add('hessian1 encode: complex object', function() {
86-
// hessian.encode(complexObject, '1.0');
87-
// })
37+
.add('hessian1 encode: number', function() {
38+
hessian.encode(1, '1.0');
39+
})
40+
.add('hessian2 encode: number', function() {
41+
hessian.encode(1, '2.0');
42+
})
43+
44+
.add('hessian1 encode: date', function() {
45+
hessian.encode(new Date(), '1.0');
46+
})
47+
.add('hessian2 encode: date', function() {
48+
hessian.encode(new Date(), '2.0');
49+
})
50+
51+
.add('hessian1 encode: long', function() {
52+
hessian.encode(java.long(300), '1.0');
53+
})
54+
.add('hessian2 encode: long', function() {
55+
hessian.encode(java.long(300), '2.0');
56+
})
57+
58+
.add('hessian1 encode: string', function() {
59+
hessian.encode('xxx1231231231231xxx123', '1.0');
60+
})
61+
.add('hessian2 encode: string', function() {
62+
hessian.encode('xxx1231231231231xxx123', '2.0');
63+
})
64+
65+
.add('hessian1 encode: [1, 2, 3]', function() {
66+
hessian.encode([1, 2, 3], '1.0');
67+
})
68+
.add('hessian2 encode: [1, 2, 3]', function() {
69+
hessian.encode([1, 2, 3], '2.0');
70+
})
71+
.add('hessian1 encode array', function() {
72+
hessian.encode([1, "name", "xxx1231231231231xxx123"], '1.0');
73+
})
74+
.add('hessian2 encode array', function() {
75+
hessian.encode([1, "name", "xxx1231231231231xxx123"], '2.0');
76+
})
77+
78+
.add('hessian1 encode: simple object', function() {
79+
hessian.encode(simpleObject, '1.0');
80+
})
81+
.add('hessian2 encode: simple object', function() {
82+
hessian.encode(simpleObject, '2.0');
83+
})
84+
85+
.add('hessian1 encode: complex object', function() {
86+
hessian.encode(complexObject, '1.0');
87+
})
8888
.add('hessian2 encode: complex object', function() {
8989
var complexObject = {
9090
$class: 'com.hessiantest.org.MockRequest',

benchmark/encoder.v1.read.js

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)