-
Notifications
You must be signed in to change notification settings - Fork 29
Expand file tree
/
Copy pathencoder.v1.write.js
More file actions
61 lines (54 loc) · 1.44 KB
/
encoder.v1.write.js
File metadata and controls
61 lines (54 loc) · 1.44 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
'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)
}
}
}
};
console.log(hessian.encode(complexObject, '1.0').length, hessian.encode(complexObject, '1.0'));
var run = bench([
function writeComplexObject(cb) {
for (var i = 0; i < max; i++) {
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)
}
}
}
};
hessian.encode(complexObject, '1.0');
}
setImmediate(cb);
},
], 10000);
run(run);
function makeStr(str, concats) {
var s = ''
while (concats--) {
s += str
}
return s
}
// node benchmark/encoder.v1.write.js
// 360 <Buffer 4d 74 00 1f 63 6f 6d 2e 68 65 73 73 69 61 6e 74 65 73 74 2e 6f 72 67 2e 4d 6f 63 6b 52 65 71 75 65 73 74 53 00 02 69 64 49 00 00 00 7b 53 00 04 6e 61 ... >
// writeComplexObject*10000: 1214.816ms
// writeComplexObject*10000: 1151.431ms