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