Skip to content

Commit 352b7c1

Browse files
Copilotstreamich
andcommitted
Resolve merge conflicts and add back detailed benchmarks to main README
Co-authored-by: streamich <[email protected]>
1 parent 0753284 commit 352b7c1

File tree

1 file changed

+148
-0
lines changed

1 file changed

+148
-0
lines changed

README.md

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,152 @@ The `json-pack` library consistently demonstrates superior performance across va
5454

5555
- [🚀 Benchmarking JSON Serialization Codecs](https://jsonjoy.com/blog/json-codec-benchmarks) - Analysis showing that `json-pack` is the fastest serialization library in the NPM ecosystem
5656

57+
Encoding:
58+
59+
```
60+
npx ts-node benchmarks/json-pack/bench.encoding.ts
61+
=============================================================================== Benchmark: Encoding
62+
Warmup: 1000x , Node.js: v20.0.0 , Arch: arm64 , CPU: Apple M1
63+
---------------------------------------------------------------------------- Small object, 44 bytes
64+
🤞 json-pack JsonEncoder x 5,385,617 ops/sec ±0.53% (100 runs sampled)
65+
🤞 Buffer.from(JSON.stringify()) x 2,254,954 ops/sec ±0.83% (97 runs sampled)
66+
🤞 json-pack CborEncoderFast x 5,953,159 ops/sec ±1.12% (92 runs sampled)
67+
🤞 json-pack CborEncoder x 6,248,036 ops/sec ±0.29% (98 runs sampled)
68+
🤞 json-pack MsgPackEncoderFast x 3,121,940 ops/sec ±0.16% (99 runs sampled)
69+
🤞 JSON.stringify() x 3,866,116 ops/sec ±0.11% (101 runs sampled)
70+
🤞 @msgpack/msgpack x 1,406,546 ops/sec ±0.94% (93 runs sampled)
71+
🤞 msgpackr x 2,404,916 ops/sec ±3.22% (86 runs sampled)
72+
🤞 cbor-x x 4,737,433 ops/sec ±1.00% (97 runs sampled)
73+
🤞 msgpack-lite x 987,201 ops/sec ±2.84% (91 runs sampled)
74+
🤞 msgpack5 x 197,867 ops/sec ±3.65% (84 runs sampled)
75+
🤞 messagepack x 171,865 ops/sec ±4.44% (74 runs sampled)
76+
Fastest is 🤞 json-pack CborEncoder
77+
------------------------------------------------------------------------- Typical object, 993 bytes
78+
🤞 json-pack JsonEncoder x 299,970 ops/sec ±0.30% (97 runs sampled)
79+
🤞 Buffer.from(JSON.stringify()) x 211,651 ops/sec ±0.18% (100 runs sampled)
80+
🤞 json-pack CborEncoderFast x 429,535 ops/sec ±3.38% (93 runs sampled)
81+
🤞 json-pack CborEncoder x 428,848 ops/sec ±0.71% (97 runs sampled)
82+
🤞 json-pack MsgPackEncoderFast x 322,982 ops/sec ±0.67% (97 runs sampled)
83+
🤞 JSON.stringify() x 306,828 ops/sec ±1.94% (90 runs sampled)
84+
🤞 @msgpack/msgpack x 199,937 ops/sec ±5.52% (93 runs sampled)
85+
🤞 msgpackr x 317,457 ops/sec ±2.18% (90 runs sampled)
86+
🤞 cbor-x x 401,854 ops/sec ±3.20% (92 runs sampled)
87+
🤞 msgpack-lite x 135,110 ops/sec ±1.29% (94 runs sampled)
88+
🤞 msgpack5 x 15,217 ops/sec ±3.72% (85 runs sampled)
89+
🤞 messagepack x 13,853 ops/sec ±4.73% (71 runs sampled)
90+
Fastest is 🤞 json-pack CborEncoder
91+
-------------------------------------------------------------------------- Large object, 3741 bytes
92+
🤞 json-pack JsonEncoder x 87,312 ops/sec ±1.10% (96 runs sampled)
93+
🤞 Buffer.from(JSON.stringify()) x 64,718 ops/sec ±0.45% (96 runs sampled)
94+
🤞 json-pack CborEncoderFast x 134,615 ops/sec ±0.19% (97 runs sampled)
95+
🤞 json-pack CborEncoder x 128,975 ops/sec ±0.20% (98 runs sampled)
96+
🤞 json-pack MsgPackEncoderFast x 103,325 ops/sec ±1.62% (98 runs sampled)
97+
🤞 JSON.stringify() x 101,067 ops/sec ±1.36% (95 runs sampled)
98+
🤞 @msgpack/msgpack x 61,715 ops/sec ±0.22% (98 runs sampled)
99+
🤞 msgpackr x 95,175 ops/sec ±3.84% (95 runs sampled)
100+
🤞 cbor-x x 111,658 ops/sec ±1.34% (95 runs sampled)
101+
🤞 msgpack-lite x 41,364 ops/sec ±0.28% (100 runs sampled)
102+
🤞 msgpack5 x 3,262 ops/sec ±4.32% (71 runs sampled)
103+
🤞 messagepack x 4,167 ops/sec ±7.29% (65 runs sampled)
104+
Fastest is 🤞 json-pack CborEncoderFast
105+
-------------------------------------------------------------------- Very large object, 45750 bytes
106+
🤞 json-pack JsonEncoder x 5,687 ops/sec ±1.92% (94 runs sampled)
107+
🤞 Buffer.from(JSON.stringify()) x 5,813 ops/sec ±2.51% (97 runs sampled)
108+
🤞 json-pack CborEncoderFast x 5,749 ops/sec ±0.67% (98 runs sampled)
109+
🤞 json-pack CborEncoder x 5,515 ops/sec ±0.70% (98 runs sampled)
110+
🤞 json-pack MsgPackEncoderFast x 5,027 ops/sec ±0.19% (100 runs sampled)
111+
🤞 JSON.stringify() x 7,687 ops/sec ±0.87% (99 runs sampled)
112+
🤞 @msgpack/msgpack x 3,379 ops/sec ±2.20% (97 runs sampled)
113+
🤞 msgpackr x 5,929 ops/sec ±15.26% (96 runs sampled)
114+
🤞 cbor-x x 5,032 ops/sec ±5.17% (90 runs sampled)
115+
🤞 msgpack-lite x 2,173 ops/sec ±1.17% (97 runs sampled)
116+
🤞 msgpack5 x 179 ops/sec ±2.95% (68 runs sampled)
117+
🤞 messagepack x 167 ops/sec ±1.09% (79 runs sampled)
118+
Fastest is 🤞 JSON.stringify()
119+
------------------------------------------------------------------ Object with many keys, 969 bytes
120+
🤞 json-pack JsonEncoder x 213,447 ops/sec ±3.31% (95 runs sampled)
121+
🤞 Buffer.from(JSON.stringify()) x 168,303 ops/sec ±2.13% (95 runs sampled)
122+
🤞 json-pack CborEncoderFast x 275,511 ops/sec ±0.40% (95 runs sampled)
123+
🤞 json-pack CborEncoder x 270,949 ops/sec ±0.32% (97 runs sampled)
124+
🤞 json-pack MsgPackEncoderFast x 210,525 ops/sec ±0.66% (99 runs sampled)
125+
🤞 JSON.stringify() x 200,767 ops/sec ±0.19% (101 runs sampled)
126+
🤞 @msgpack/msgpack x 163,665 ops/sec ±0.81% (98 runs sampled)
127+
🤞 msgpackr x 151,889 ops/sec ±0.27% (96 runs sampled)
128+
🤞 cbor-x x 191,010 ops/sec ±0.44% (96 runs sampled)
129+
🤞 msgpack-lite x 93,537 ops/sec ±0.68% (99 runs sampled)
130+
🤞 msgpack5 x 28,581 ops/sec ±1.74% (93 runs sampled)
131+
🤞 messagepack x 8,330 ops/sec ±5.00% (61 runs sampled)
132+
Fastest is 🤞 json-pack CborEncoderFast
133+
------------------------------------------------------------------------- String ladder, 3398 bytes
134+
🤞 json-pack JsonEncoder x 147,755 ops/sec ±0.23% (97 runs sampled)
135+
🤞 Buffer.from(JSON.stringify()) x 128,378 ops/sec ±0.15% (96 runs sampled)
136+
🤞 json-pack CborEncoderFast x 298,037 ops/sec ±0.73% (98 runs sampled)
137+
🤞 json-pack CborEncoder x 293,608 ops/sec ±0.22% (97 runs sampled)
138+
🤞 json-pack MsgPackEncoderFast x 244,864 ops/sec ±3.92% (92 runs sampled)
139+
🤞 JSON.stringify() x 165,819 ops/sec ±1.72% (94 runs sampled)
140+
🤞 @msgpack/msgpack x 166,915 ops/sec ±0.79% (96 runs sampled)
141+
🤞 msgpackr x 218,733 ops/sec ±0.24% (97 runs sampled)
142+
🤞 cbor-x x 257,148 ops/sec ±0.79% (96 runs sampled)
143+
🤞 msgpack-lite x 98,386 ops/sec ±0.31% (99 runs sampled)
144+
🤞 msgpack5 x 23,063 ops/sec ±2.11% (92 runs sampled)
145+
🤞 messagepack x 22,926 ops/sec ±1.93% (96 runs sampled)
146+
Fastest is 🤞 json-pack CborEncoderFast
147+
-------------------------------------------------------------------------- Long strings, 7011 bytes
148+
🤞 json-pack JsonEncoder x 44,071 ops/sec ±0.17% (98 runs sampled)
149+
🤞 Buffer.from(JSON.stringify()) x 29,649 ops/sec ±0.15% (99 runs sampled)
150+
🤞 json-pack CborEncoderFast x 394,582 ops/sec ±0.47% (96 runs sampled)
151+
🤞 json-pack CborEncoder x 395,254 ops/sec ±0.51% (95 runs sampled)
152+
🤞 json-pack MsgPackEncoderFast x 395,165 ops/sec ±0.46% (95 runs sampled)
153+
🤞 JSON.stringify() x 31,269 ops/sec ±0.13% (96 runs sampled)
154+
🤞 @msgpack/msgpack x 28,003 ops/sec ±0.17% (100 runs sampled)
155+
🤞 msgpackr x 379,697 ops/sec ±0.22% (100 runs sampled)
156+
🤞 cbor-x x 378,755 ops/sec ±0.24% (99 runs sampled)
157+
🤞 msgpack-lite x 30,014 ops/sec ±0.27% (98 runs sampled)
158+
🤞 msgpack5 x 8,728 ops/sec ±2.58% (87 runs sampled)
159+
🤞 messagepack x 5,698 ops/sec ±1.52% (93 runs sampled)
160+
Fastest is 🤞 json-pack CborEncoder
161+
-------------------------------------------------------------------------- Short strings, 170 bytes
162+
🤞 json-pack JsonEncoder x 1,596,816 ops/sec ±0.18% (98 runs sampled)
163+
🤞 Buffer.from(JSON.stringify()) x 1,000,770 ops/sec ±0.21% (99 runs sampled)
164+
🤞 json-pack CborEncoderFast x 1,861,503 ops/sec ±0.19% (96 runs sampled)
165+
🤞 json-pack CborEncoder x 1,837,269 ops/sec ±0.20% (96 runs sampled)
166+
🤞 json-pack MsgPackEncoderFast x 1,653,764 ops/sec ±0.19% (98 runs sampled)
167+
🤞 JSON.stringify() x 1,263,415 ops/sec ±0.18% (98 runs sampled)
168+
🤞 @msgpack/msgpack x 859,458 ops/sec ±0.18% (97 runs sampled)
169+
🤞 msgpackr x 1,519,094 ops/sec ±0.18% (99 runs sampled)
170+
🤞 cbor-x x 1,506,899 ops/sec ±0.22% (98 runs sampled)
171+
🤞 msgpack-lite x 670,264 ops/sec ±0.26% (98 runs sampled)
172+
🤞 msgpack5 x 214,616 ops/sec ±3.42% (84 runs sampled)
173+
🤞 messagepack x 190,509 ops/sec ±4.26% (80 runs sampled)
174+
Fastest is 🤞 json-pack CborEncoderFast
175+
-------------------------------------------------------------------------------- Numbers, 136 bytes
176+
🤞 json-pack JsonEncoder x 1,706,331 ops/sec ±0.20% (95 runs sampled)
177+
🤞 Buffer.from(JSON.stringify()) x 1,218,204 ops/sec ±0.17% (98 runs sampled)
178+
🤞 json-pack CborEncoderFast x 2,823,618 ops/sec ±0.16% (97 runs sampled)
179+
🤞 json-pack CborEncoder x 3,108,652 ops/sec ±0.20% (97 runs sampled)
180+
🤞 json-pack MsgPackEncoderFast x 2,918,919 ops/sec ±0.16% (99 runs sampled)
181+
🤞 JSON.stringify() x 1,495,325 ops/sec ±0.24% (98 runs sampled)
182+
🤞 @msgpack/msgpack x 1,090,049 ops/sec ±0.22% (95 runs sampled)
183+
🤞 msgpackr x 2,273,659 ops/sec ±0.18% (97 runs sampled)
184+
🤞 cbor-x x 2,214,015 ops/sec ±0.20% (96 runs sampled)
185+
🤞 msgpack-lite x 754,726 ops/sec ±0.24% (97 runs sampled)
186+
🤞 msgpack5 x 281,932 ops/sec ±2.38% (93 runs sampled)
187+
🤞 messagepack x 236,081 ops/sec ±3.84% (77 runs sampled)
188+
Fastest is 🤞 json-pack CborEncoder
189+
--------------------------------------------------------------------------------- Tokens, 308 bytes
190+
🤞 json-pack JsonEncoder x 1,406,862 ops/sec ±0.24% (95 runs sampled)
191+
🤞 Buffer.from(JSON.stringify()) x 1,095,439 ops/sec ±0.17% (100 runs sampled)
192+
🤞 json-pack CborEncoderFast x 1,359,989 ops/sec ±0.21% (96 runs sampled)
193+
🤞 json-pack CborEncoder x 1,366,892 ops/sec ±0.19% (99 runs sampled)
194+
🤞 json-pack MsgPackEncoderFast x 1,751,776 ops/sec ±0.17% (99 runs sampled)
195+
🤞 JSON.stringify() x 1,309,064 ops/sec ±0.21% (98 runs sampled)
196+
🤞 @msgpack/msgpack x 876,712 ops/sec ±0.20% (97 runs sampled)
197+
🤞 msgpackr x 1,463,658 ops/sec ±0.17% (99 runs sampled)
198+
🤞 cbor-x x 1,379,536 ops/sec ±0.20% (97 runs sampled)
199+
🤞 msgpack-lite x 596,536 ops/sec ±0.23% (97 runs sampled)
200+
🤞 msgpack5 x 181,745 ops/sec ±3.37% (82 runs sampled)
201+
🤞 messagepack x 146,090 ops/sec ±4.36% (80 runs sampled)
202+
Fastest is 🤞 json-pack MsgPackEncoderFast
203+
```
204+
57205
Each codec also includes specific benchmark results in their individual documentation files.

0 commit comments

Comments
 (0)