Skip to content

Commit 74bbf3f

Browse files
committed
chore: add benchmark new results
1 parent c13d13f commit 74bbf3f

File tree

3 files changed

+179
-5
lines changed

3 files changed

+179
-5
lines changed

README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,3 +413,15 @@ xf0 - xff # two-octet compact long (-x800 to x7ff, xf8 is 0)
413413
## Licences
414414

415415
[MIT](LICENSE)
416+
417+
<!-- GITCONTRIBUTOR_START -->
418+
419+
## Contributors
420+
421+
|[<img src="https://avatars.githubusercontent.com/u/156269?v=4" width="100px;"/><br/><sub><b>fengmk2</b></sub>](https://github.com/fengmk2)<br/>|[<img src="https://avatars.githubusercontent.com/u/456108?v=4" width="100px;"/><br/><sub><b>shaoshuai0102</b></sub>](https://github.com/shaoshuai0102)<br/>|[<img src="https://avatars.githubusercontent.com/u/546535?v=4" width="100px;"/><br/><sub><b>leoner</b></sub>](https://github.com/leoner)<br/>|[<img src="https://avatars.githubusercontent.com/u/1207064?v=4" width="100px;"/><br/><sub><b>gxcsoccer</b></sub>](https://github.com/gxcsoccer)<br/>|
422+
| :---: | :---: | :---: | :---: |
423+
424+
425+
This project follows the git-contributor [spec](https://github.com/xudafeng/git-contributor), auto updated at `Fri May 24 2024 14:10:28 GMT+0800`.
426+
427+
<!-- GITCONTRIBUTOR_END -->

benchmark/README.md

Lines changed: 163 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,166 @@
1-
benchmark result
2-
----------
1+
# benchmark result
32

3+
## Node.js v22
4+
5+
```bash
6+
node benchmark/encode.js
7+
8+
Hessian Encode Benchmark
9+
node version: v22.2.0, date: Fri May 24 2024 13:52:49 GMT+0800 (中国标准时间)
10+
Starting...
11+
16 tests completed.
12+
13+
hessian1 encode: number x 10,554,236 ops/sec ±0.37% (93 runs sampled)
14+
hessian2 encode: number x 10,119,997 ops/sec ±0.41% (97 runs sampled)
15+
hessian1 encode: date x 5,193,957 ops/sec ±1.77% (94 runs sampled)
16+
hessian2 encode: date x 4,876,796 ops/sec ±0.33% (98 runs sampled)
17+
hessian1 encode: long x 2,980,923 ops/sec ±2.48% (92 runs sampled)
18+
hessian2 encode: long x 3,139,771 ops/sec ±1.68% (99 runs sampled)
19+
hessian1 encode: string x 5,669,817 ops/sec ±0.24% (97 runs sampled)
20+
hessian2 encode: string x 5,727,011 ops/sec ±1.36% (95 runs sampled)
21+
hessian1 encode: [1, 2, 3] x 3,732,383 ops/sec ±0.22% (98 runs sampled)
22+
hessian2 encode: [1, 2, 3] x 4,939,881 ops/sec ±0.88% (97 runs sampled)
23+
hessian1 encode array x 2,651,986 ops/sec ±3.28% (93 runs sampled)
24+
hessian2 encode array x 3,385,830 ops/sec ±2.00% (93 runs sampled)
25+
hessian1 encode: simple object x 853,545 ops/sec ±1.84% (91 runs sampled)
26+
hessian2 encode: simple object x 700,040 ops/sec ±1.97% (94 runs sampled)
27+
hessian1 encode: complex object x 528,378 ops/sec ±0.64% (94 runs sampled)
28+
hessian2 encode: complex object x 370,348 ops/sec ±3.26% (89 runs sampled)
29+
30+
node benchmark/decode.js
31+
32+
Hessian Decode Benchmark
33+
node version: v22.2.0, date: Fri May 24 2024 14:02:32 GMT+0800 (中国标准时间)
34+
Starting...
35+
43 tests completed.
36+
37+
hessian1 decode: number x 24,540,871 ops/sec ±2.50% (90 runs sampled)
38+
hessian2 decode: number x 27,356,290 ops/sec ±0.94% (96 runs sampled)
39+
hessian2Rust decode: number x 3,077,722 ops/sec ±1.65% (98 runs sampled)
40+
hessian1 decode: date x 9,668,136 ops/sec ±0.39% (99 runs sampled)
41+
hessian2 decode: date x 10,680,207 ops/sec ±0.67% (95 runs sampled)
42+
hessian2Rust decode: date x 2,694,485 ops/sec ±1.78% (98 runs sampled)
43+
hessian1 decode: long x 18,085,628 ops/sec ±0.64% (95 runs sampled)
44+
hessian2 decode: long x 22,022,242 ops/sec ±2.59% (91 runs sampled)
45+
hessian2Rust decode: long x 3,084,618 ops/sec ±1.64% (96 runs sampled)
46+
hessian1 decode: string x 6,401,052 ops/sec ±0.28% (98 runs sampled)
47+
hessian2 decode: string x 6,792,350 ops/sec ±2.05% (93 runs sampled)
48+
hessian2Rust decode: string x 2,966,870 ops/sec ±0.42% (99 runs sampled)
49+
hessian1 decode: big string x 699,627 ops/sec ±0.41% (101 runs sampled)
50+
hessian2 decode: big string x 698,909 ops/sec ±1.70% (99 runs sampled)
51+
hessian2Rust decode: big string x 2,135,147 ops/sec ±1.74% (97 runs sampled)
52+
hessian1 decode: [1, 2, 3] x 3,554,109 ops/sec ±2.46% (98 runs sampled)
53+
hessian2 decode: [1, 2, 3] x 2,910,527 ops/sec ±0.29% (95 runs sampled)
54+
hessian2Rust decode: [1, 2, 3] x 2,692,313 ops/sec ±0.49% (101 runs sampled)
55+
hessian1 decode array x 2,180,612 ops/sec ±3.91% (87 runs sampled)
56+
hessian2 decode array x 1,951,631 ops/sec ±1.40% (98 runs sampled)
57+
hessian2Rust decode: array x 2,262,801 ops/sec ±3.33% (97 runs sampled)
58+
hessian1 decode: simple object x 625,004 ops/sec ±2.32% (96 runs sampled)
59+
hessian2 decode: simple object x 893,804 ops/sec ±2.95% (94 runs sampled)
60+
hessian2Rust decode: simple object x 1,839,489 ops/sec ±2.49% (88 runs sampled)
61+
hessian1 decode: complex object x 221,339 ops/sec ±0.64% (98 runs sampled)
62+
hessian2 decode: complex object x 214,527 ops/sec ±2.07% (95 runs sampled)
63+
hessian2Rust decode: complex object x 948,581 ops/sec ±3.15% (94 runs sampled)
64+
hessian1 decode with type: number x 15,554,965 ops/sec ±6.16% (88 runs sampled)
65+
hessian2 decode with type: number x 21,231,192 ops/sec ±5.09% (88 runs sampled)
66+
hessian1 decode with type: date x 9,253,355 ops/sec ±2.75% (99 runs sampled)
67+
hessian2 decode with type: date x 9,216,938 ops/sec ±1.56% (94 runs sampled)
68+
hessian1 decode with type: long x 14,444,300 ops/sec ±5.22% (89 runs sampled)
69+
hessian2 decode with type: long x 18,387,719 ops/sec ±1.79% (95 runs sampled)
70+
hessian1 decode with type: string x 5,992,505 ops/sec ±2.58% (96 runs sampled)
71+
hessian2 decode with type: string x 6,541,498 ops/sec ±3.37% (92 runs sampled)
72+
hessian1 decode with type: [1, 2, 3] x 3,244,874 ops/sec ±1.94% (98 runs sampled)
73+
hessian2 decode with type: [1, 2, 3] x 2,634,191 ops/sec ±2.76% (97 runs sampled)
74+
hessian1 decode with type array x 2,185,654 ops/sec ±0.56% (100 runs sampled)
75+
hessian2 decode with type array x 1,939,382 ops/sec ±1.42% (100 runs sampled)
76+
hessian1 decode with type: simple object x 621,216 ops/sec ±1.28% (98 runs sampled)
77+
hessian2 decode with type: simple object x 632,073 ops/sec ±6.58% (88 runs sampled)
78+
hessian1 decode with type: complex object x 199,833 ops/sec ±4.69% (92 runs sampled)
79+
hessian2 decode with type: complex object x 216,281 ops/sec ±1.97% (95 runs sampled)
480
```
81+
82+
## Node.js v20
83+
84+
```bash
85+
node benchmark/encode.js
86+
87+
Hessian Encode Benchmark
88+
node version: v20.13.1, date: Fri May 24 2024 13:55:48 GMT+0800 (中国标准时间)
89+
Starting...
90+
16 tests completed.
91+
92+
hessian1 encode: number x 8,226,045 ops/sec ±2.40% (95 runs sampled)
93+
hessian2 encode: number x 8,218,262 ops/sec ±0.45% (98 runs sampled)
94+
hessian1 encode: date x 4,565,281 ops/sec ±1.51% (99 runs sampled)
95+
hessian2 encode: date x 4,310,345 ops/sec ±0.47% (97 runs sampled)
96+
hessian1 encode: long x 2,723,516 ops/sec ±4.46% (95 runs sampled)
97+
hessian2 encode: long x 2,846,924 ops/sec ±2.39% (97 runs sampled)
98+
hessian1 encode: string x 5,151,812 ops/sec ±0.80% (96 runs sampled)
99+
hessian2 encode: string x 4,731,159 ops/sec ±2.99% (95 runs sampled)
100+
hessian1 encode: [1, 2, 3] x 3,869,170 ops/sec ±1.76% (94 runs sampled)
101+
hessian2 encode: [1, 2, 3] x 4,534,955 ops/sec ±0.50% (99 runs sampled)
102+
hessian1 encode array x 2,587,918 ops/sec ±2.35% (90 runs sampled)
103+
hessian2 encode array x 2,728,079 ops/sec ±5.56% (82 runs sampled)
104+
hessian1 encode: simple object x 900,016 ops/sec ±1.76% (97 runs sampled)
105+
hessian2 encode: simple object x 661,227 ops/sec ±0.85% (93 runs sampled)
106+
hessian1 encode: complex object x 525,927 ops/sec ±1.73% (94 runs sampled)
107+
hessian2 encode: complex object x 361,606 ops/sec ±1.95% (97 runs sampled)
108+
109+
node benchmark/decode.js
110+
111+
Hessian Decode Benchmark
112+
node version: v20.13.1, date: Fri May 24 2024 13:57:47 GMT+0800 (中国标准时间)
113+
Starting...
114+
43 tests completed.
115+
116+
hessian1 decode: number x 32,416,495 ops/sec ±1.18% (94 runs sampled)
117+
hessian2 decode: number x 25,832,730 ops/sec ±1.90% (95 runs sampled)
118+
hessian2Rust decode: number x 2,768,621 ops/sec ±1.57% (95 runs sampled)
119+
hessian1 decode: date x 10,137,457 ops/sec ±0.49% (99 runs sampled)
120+
hessian2 decode: date x 8,578,054 ops/sec ±0.77% (95 runs sampled)
121+
hessian2Rust decode: date x 2,531,389 ops/sec ±1.76% (98 runs sampled)
122+
hessian1 decode: long x 16,355,409 ops/sec ±3.09% (89 runs sampled)
123+
hessian2 decode: long x 20,265,271 ops/sec ±0.38% (98 runs sampled)
124+
hessian2Rust decode: long x 2,786,180 ops/sec ±2.66% (96 runs sampled)
125+
hessian1 decode: string x 6,208,129 ops/sec ±0.89% (94 runs sampled)
126+
hessian2 decode: string x 5,739,177 ops/sec ±3.80% (96 runs sampled)
127+
hessian2Rust decode: string x 2,759,285 ops/sec ±0.35% (98 runs sampled)
128+
hessian1 decode: big string x 613,086 ops/sec ±0.24% (100 runs sampled)
129+
hessian2 decode: big string x 604,938 ops/sec ±1.81% (90 runs sampled)
130+
hessian2Rust decode: big string x 2,054,952 ops/sec ±1.92% (97 runs sampled)
131+
hessian1 decode: [1, 2, 3] x 3,801,102 ops/sec ±0.35% (100 runs sampled)
132+
hessian2 decode: [1, 2, 3] x 2,730,022 ops/sec ±4.94% (95 runs sampled)
133+
hessian2Rust decode: [1, 2, 3] x 2,515,488 ops/sec ±1.01% (97 runs sampled)
134+
hessian1 decode array x 2,299,841 ops/sec ±1.70% (97 runs sampled)
135+
hessian2 decode array x 1,845,252 ops/sec ±0.27% (98 runs sampled)
136+
hessian2Rust decode: array x 2,240,111 ops/sec ±0.23% (100 runs sampled)
137+
hessian1 decode: simple object x 625,217 ops/sec ±1.74% (98 runs sampled)
138+
hessian2 decode: simple object x 802,609 ops/sec ±2.56% (93 runs sampled)
139+
hessian2Rust decode: simple object x 1,752,187 ops/sec ±1.97% (96 runs sampled)
140+
hessian1 decode: complex object x 213,708 ops/sec ±0.47% (98 runs sampled)
141+
hessian2 decode: complex object x 213,818 ops/sec ±0.23% (98 runs sampled)
142+
hessian2Rust decode: complex object x 939,202 ops/sec ±1.66% (100 runs sampled)
143+
hessian1 decode with type: number x 17,512,197 ops/sec ±5.49% (90 runs sampled)
144+
hessian2 decode with type: number x 20,193,259 ops/sec ±1.02% (98 runs sampled)
145+
hessian1 decode with type: date x 8,217,014 ops/sec ±3.32% (95 runs sampled)
146+
hessian2 decode with type: date x 7,980,575 ops/sec ±0.28% (98 runs sampled)
147+
hessian1 decode with type: long x 14,233,917 ops/sec ±1.78% (99 runs sampled)
148+
hessian2 decode with type: long x 16,366,688 ops/sec ±0.47% (97 runs sampled)
149+
hessian1 decode with type: string x 5,777,330 ops/sec ±0.58% (98 runs sampled)
150+
hessian2 decode with type: string x 5,875,199 ops/sec ±1.02% (99 runs sampled)
151+
hessian1 decode with type: [1, 2, 3] x 3,444,434 ops/sec ±0.59% (94 runs sampled)
152+
hessian2 decode with type: [1, 2, 3] x 2,562,302 ops/sec ±2.46% (99 runs sampled)
153+
hessian1 decode with type array x 2,132,214 ops/sec ±2.47% (95 runs sampled)
154+
hessian2 decode with type array x 1,733,859 ops/sec ±7.67% (91 runs sampled)
155+
hessian1 decode with type: simple object x 614,079 ops/sec ±1.75% (96 runs sampled)
156+
hessian2 decode with type: simple object x 651,032 ops/sec ±0.49% (96 runs sampled)
157+
hessian1 decode with type: complex object x 208,839 ops/sec ±1.04% (96 runs sampled)
158+
hessian2 decode with type: complex object x 209,027 ops/sec ±2.12% (99 runs sampled)
159+
```
160+
161+
## Node.js v18
162+
163+
```bash
5164
node benchmark/encode.js
6165

7166
Hessian Encode Benchmark
@@ -26,6 +185,7 @@ node benchmark/encode.js
26185
hessian1 encode: complex object x 258,920 ops/sec ±0.97% (88 runs sampled)
27186
hessian2 encode: complex object x 228,646 ops/sec ±2.54% (83 runs sampled)
28187

188+
node benchmark/decode.js
29189

30190
Hessian Decode Benchmark
31191
node version: v18.9.0, date: Tue Apr 11 2023 10:39:10 GMT+0800 (中国标准时间)
@@ -59,4 +219,4 @@ node benchmark/encode.js
59219
hessian1 decode: complex object x 148,108 ops/sec ±0.68% (94 runs sampled)
60220
hessian2 decode: complex object x 155,768 ops/sec ±0.59% (92 runs sampled)
61221
hessian2Rust decode: complex object x 397,446 ops/sec ±0.59% (94 runs sampled)
62-
```
222+
```

package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@
1111
"lint": "make jshint",
1212
"test": "make test",
1313
"ci": "npm run lint && make cov",
14-
"build::platform": "napi build --cargo-cwd ./lib/v2rust --platform --release ./lib/v2rust/harness/dist"
14+
"build::platform": "napi build --cargo-cwd ./lib/v2rust --platform --release ./lib/v2rust/harness/dist",
15+
"contributor": "git-contributor"
1516
},
1617
"repository": {
1718
"type": "git",
@@ -38,14 +39,15 @@
3839
"long": "^4.0.0"
3940
},
4041
"devDependencies": {
42+
"@napi-rs/cli": "^2.0.0",
4143
"beautify-benchmark": "^0.2.4",
4244
"benchmark": "^2.1.4",
45+
"git-contributor": "^2.1.5",
4346
"istanbul": "^0.4.5",
4447
"js-to-java": "^2.6.0",
4548
"jshint": "^2.9.6",
4649
"mm": "^2.4.1",
4750
"mocha": "^3.5.3",
48-
"@napi-rs/cli": "^2.0.0",
4951
"should": "^13.2.3"
5052
},
5153
"engines": {

0 commit comments

Comments
 (0)