Files
json/docs/mkdocs/scripts/figures/data/perf_suite.csv
T
Niels Lohmann 5cbec344fe docs: measure the 3.13.0 post against develop with #5964 and #5908
The suite (Appendix B, the short-version table, the overview and distribution
figures) and the timeline endpoint now measure develop d20c4dcd89 with #5964
and #5908 merged. The geometric mean stays 2.9x (2.95); Dump/signed_ints and
Dump/unsigned_ints gain 1.5x and 2.1x from #5964; GetVectorDouble/floats drops
from 10.3x to 7.0x because the old candidate's suite binary happened to compile
that loop faster (a standalone build takes 0.97 ms with both headers).

The timeline endpoint is the 10-27 value scaled by the ratio of the new to the
old candidate, both measured on 10-30, so that it stays comparable with the
other points of the timeline.

Signed-off-by: Niels Lohmann <mail@nlohmann.me>
2026-10-30 17:33:12 +01:00

9.7 KiB

1benchmarkunit3.12.03.13.0speedup
2FromBinaryBuffer/bson / twitterns3.20265e+061.01993e+063.140
3ParseStringOrdered/jeopardyns3.70568e+081.14254e+083.243
4JsonPointerToString/twitterns2.23197e+068201382.721
5BinaryToCbor/8192ns520.964261.6251.991
6FromMsgpack/unsigned_intsns5.69725e+072.80231e+072.033
7JsonPointerAt/twitterns8023166091921.317
8CopyOnly/twitterns4209734125501.020
9FlattenOrdered/citm_catalogns2.56599e+081.43012e+06179.425
10FromBinaryFile/ubjson / canadans1.39411e+076.49692e+062.146
11FromBinaryShape/containers / bjdatans1.43419e+077.40687e+061.936
12ParseIndented/jeopardy / 4ns3.41862e+081.33413e+082.562
13FromMsgpack/signed_intsns6.35213e+073.30421e+071.922
14FromBinaryShape/containers / bsonns1.70519e+071.00034e+071.705
15BinaryToCbor/128ns254.611116.4112.187
16FromBinaryBuffer/cbor / jeopardyns3.69767e+081.19253e+083.101
17ParseFile/jeopardyns3.34742e+081.63435e+082.048
18FromMsgpack/jeopardyns1.149e+091.87355e+086.133
19FromBinaryFile/cbor / twitterns1.01844e+071.59657e+066.379
20ToCbor/floatsns8.95826e+061.90206e+064.710
21ParseFile/small_signed_intsns6.45414e+073.24039e+071.992
22FromBinaryBuffer/msgpack / twitterns3.12989e+069556053.275
23BinaryToCbor/16384ns957.164409.6942.336
24FromBinaryFile/bson / twitterns1.05564e+071.83313e+065.759
25ParseString/twitterns3.26395e+061.06141e+063.075
26Unflatten/twitterns4.7901e+062.16809e+062.209
27BinaryToCbor/8ns250.61748.99875.115
28BinaryToCbor/16ns247.5649.2755.024
29Dump/small_signed_ints / 4ns2.52497e+078.83973e+062.856
30ParseString/jeopardyns3.075e+081.31952e+082.330
31Dump/signed_ints / 4ns3.23205e+071.14372e+072.826
32Flatten/twitterns3.63682e+062.08612e+061.743
33FromBinaryBuffer/cbor / twitterns3.15556e+069827233.211
34Dump/jeopardy / 4ns2.23755e+083.58432e+076.243
35SaxParse/citm_catalogns6.48562e+069964716.509
36JsonPointerAt/citm_catalogns1.86838e+061.17763e+061.587
37DestroyOnly/citm_catalogns8961476871891.304
38FromBinaryShape/scalars / ubjsonns2.51063e+071.16857e+072.148
39Unflatten/canadans4.23131e+071.09708e+073.857
40ParseString/floatsns1.20329e+083.11796e+073.859
41ParseIndented/canada / 4ns3.44028e+075.15746e+066.670
42ParseString/signed_intsns1.21464e+083.24369e+073.745
43ParseFile/signed_intsns1.26509e+084.77756e+072.648
44JsonPointerContains/twitterns1.32359e+066261642.114
45Dump/floats / 4ns7.2051e+072.47002e+072.917
46Dump/floats / -ns6.40617e+072.40284e+072.666
47ToCbor/canadans1.40569e+065636282.494
48FromBinaryBuffer/bson / canadans9.59257e+065.45604e+061.758
49ToCbor/twitterns6451401448384.454
50ParseIndented/twitter / 4ns3.66555e+061.1496e+063.189
51Iterate/citm_catalogns3040571866931.629
52FromBinaryBuffer/bjdata / canadans8.44949e+064.18085e+062.021
53ParseStreamValues/ndjsonns7.13248e+063.74646e+061.904
54Diff/twitterns4.9487e+066553507.551
55Dump/citm_catalog / -ns1.41491e+062969584.765
56FromBinaryShape/nested / bjdatans97444.839017.82.497
57ToJsonStrings/copyns6.02335e+065.76289e+061.045
58Dump/canada / 4ns9.0251e+063.05796e+062.951
59CopyRing/twitterns9234598365021.104
60FromBinaryBuffer/cbor / citm_catalogns3.83804e+061.48497e+062.585
61FromBinaryFile/bjdata / twitterns1.07571e+071.97984e+065.433
62FromBinaryShape/containers / ubjson_optimizedns1.51034e+074.91673e+063.072
63FromMsgpack/citm_catalogns9.2234e+062.31697e+063.981
64CopyOnly/canadans1.57914e+061.55103e+061.018
65Equal/canadans4697883424751.372
66Diff/citm_catalogns7.13383e+061.10739e+066.442
67ParseStringOrdered/canadans1.54143e+074.44693e+063.466
68Flatten/canadans2.92397e+071.13461e+072.577
69Accept/canadans1.28601e+072.33328e+065.512
70CopyAssign/twitterns8868077587711.169
71BinaryToCbor/4096ns408.287177.1332.305
72ParseFILE/citm_catalogns3.554e+077.57816e+064.690
73ToCbor/signed_intsns1.13842e+072.82539e+064.029
74Patch/canadans1.03856e+073.44306e+063.016
75GetArray<std::vector<int>>ns6775.31675.6610.028
76Dump/canada / -ns6.83829e+062.34599e+062.915
77GetVectorDouble/floatsns6.79501e+069764726.959
78Accept/citm_catalogns6.46161e+069338206.920
79ParseFILE/twitterns1.39242e+073.37101e+064.131
80FromBinaryBuffer/msgpack / jeopardyns3.62314e+081.12333e+083.225
81ParseFile/floatsns1.29093e+085.07947e+072.541
82Accept/small_signed_intsns5.70115e+071.92594e+072.960
83Accept/jeopardyns2.18621e+086.48811e+073.370
84Accept/signed_intsns1.17114e+082.90352e+074.034
85CopyRing/canadans3.85335e+062.97856e+061.294
86Patch/twitterns1.54075e+068705961.770
87Iterate/twitterns87674.161938.21.416
88ParseFile/twitterns3.45242e+061.4135e+062.442
89GetArray<std::deque<int>>ns8218.061184.366.939
90FromBinaryBuffer/cbor / canadans8.49597e+062.34162e+063.628
91Equal/twitterns1448621304491.110
92ParseStreamValues/numbersns1.91254e+063800195.033
93Dump/small_signed_ints / -ns1.79973e+078.03116e+062.241
94JsonPointerToString/citm_catalogns6.73543e+061.94403e+063.465
95Copy/twitterns8174237477601.093
96Diff/canadans3.94496e+073.76295e+0610.484
97FromBinaryBuffer/ubjson_optimized / twitterns3.21798e+069761283.297
98BinaryToCbor/32ns257.51950.07445.143
99GetArray<std::set<int>>ns59334.941926.51.415
100CopyAssign/citm_catalogns1.74826e+061.58974e+061.100
101ToCbor/jeopardyns7.37854e+072.23113e+073.307
102CopyRing/citm_catalogns1.82401e+061.5913e+061.146
103FromBinaryBuffer/ubjson / canadans8.42613e+064.2011e+062.006
104ToCbor/small_signed_intsns1.03308e+072.45559e+064.207
105DestroyOnly/canadans2.19064e+061.40424e+061.560
106FromBinaryBuffer/ubjson / citm_catalogns3.94636e+061.77126e+062.228
107Dump/jeopardy / -ns2.0472e+083.20386e+076.390
108FromBinaryBuffer/msgpack / citm_catalogns3.83422e+061.44289e+062.657
109ParseStringOrdered/citm_catalogns1.13087e+071.6737e+066.757
110ParseString/unsigned_intsns1.19395e+083.09133e+073.862
111Patch/citm_catalogns2.64909e+061.68738e+061.570
112SaxParse/canadans1.30153e+073.28081e+063.967
113ParseString/citm_catalogns7.42082e+061.77268e+064.186
114FromBinaryFile/cbor / canadans1.45988e+074.52323e+063.228
115BinaryToCbor/256ns271.40791.50712.966
116ParseFILE/canadans5.33064e+071.43382e+073.718
117BinaryToCbor/32768ns1549.96819.1721.892
118Accept/floatsns1.14306e+082.47177e+074.624
119FromMsgpack/floatsns6.06523e+072.81624e+072.154
120ParseString/small_signed_intsns6.20261e+072.25358e+072.752
121JsonPointerParse/citm_catalogns5.82111e+062.2258e+062.615
122Copy/canadans3.76091e+062.89932e+061.297
123Dump/twitter / 4ns1.622e+062525946.421
124FromBinaryShape/nested / msgpackns94122.735186.92.675
125FromBinaryBuffer/ubjson_optimized / canadans8.64985e+062.85754e+063.027
126JsonPointerContains/citm_catalogns2.77749e+061.26131e+062.202
127FromMsgpack/small_signed_intsns6.40964e+073.42736e+071.870
128DestroyOnly/twitterns4157373267841.272
129FromBinaryShape/containers / msgpackns1.42568e+073.89814e+063.657
130FromBinaryShape/scalars / msgpackns2.4908e+071.05741e+072.356
131ToCbor/citm_catalogns1.04281e+062608093.998
132GetVectorInt/signed_intsns8.20129e+063.48162e+062.356
133Accept/twitterns2.49861e+064758745.251
134Iterate/canadans8867503143502.821
135ToCbor/unsigned_intsns8.05242e+062.80275e+062.873
136FromBinaryShape/scalars / bjdatans2.49885e+071.16227e+072.150
137BinaryToCbor/2048ns331.702126.7622.617
138BinaryToCbor/512ns287.238102.342.807
139FlattenOrdered/twitterns5.11231e+0787757558.255
140Copy/citm_catalogns1.66893e+061.50237e+061.111
141FromBinaryShape/containers / ubjsonns1.44781e+077.34134e+061.972
142BinaryToCbor/1024ns294.38106.9742.752
143FromBinaryBuffer/ubjson / twitterns3.27965e+069733963.369
144Dump/signed_ints / -ns2.3995e+071.07412e+072.234
145FromBinaryShape/scalars / cborns2.59955e+079.92397e+062.619
146FromBinaryBuffer/cbor / signed_intsns3.6394e+071.32489e+072.747
147CopyOnly/citm_catalogns7733098053430.960
148Dump/unsigned_ints / -ns2.37018e+078.11504e+062.921
149Accept/unsigned_intsns1.16121e+082.82332e+074.113
150FromMsgpack/canadans1.45399e+074.55571e+063.192
151ParseStringOrdered/twitterns4.522e+069204144.913
152Dump/twitter / -ns1.4183e+062106196.734
153BinaryToCbor/64ns256.22582.86093.092
154JsonPointerParse/twitterns2.48884e+061.01455e+062.453
155GetMap/citm_catalogns3.52983e+062.42484e+061.456
156ToJsonStrings/movens6.05077e+063.12298e+061.938
157FromBinaryBuffer/ubjson / jeopardyns3.73253e+081.17316e+083.182
158FromBinaryShape/nested / ubjsonns98047.338860.22.523
159FromBinaryBuffer/bjdata / twitterns3.27193e+069736133.361
160FromBinaryShape/nested / cborns94082.135427.12.656
161ParseFile/citm_catalogns7.97956e+062.49852e+063.194
162FromBinaryFile/ubjson / twitterns1.07792e+071.96519e+065.485
163Dump/citm_catalog / 4ns1.96876e+064212774.673
164CopyAssign/canadans3.82927e+063.00436e+061.275
165Unflatten/citm_catalogns1.00575e+073.55051e+062.833
166FromBinaryBuffer/bjdata_optimized / twitterns3.21663e+069722713.308
167FromBinaryBuffer/cbor / floatsns2.94008e+078.37306e+063.511
168Equal/citm_catalogns2777222602731.067
169FromBinaryShape/containers / cborns1.43595e+074.00487e+063.585
170Flatten/citm_catalogns6.65353e+063.02263e+062.201
171FromMsgpack/twitterns1.01696e+071.51935e+066.693
172FromBinaryBuffer/bson / citm_catalogns4.00639e+061.77129e+062.262
173FromBinaryBuffer/msgpack / canadans8.59297e+062.37267e+063.622
174GetArray<std::array<int, 1000>>ns2267.99647.2613.504
175SaxParse/twitterns2.51436e+064781885.258
176ParseString/canadans1.52394e+074.50457e+063.383
177ParseFile/canadans1.7916e+076.38308e+062.807
178ParseFile/unsigned_intsns1.23238e+084.54686e+072.710
179FromCborChunkedString/10000 chunksns91163.382651.61.103
180FromBinaryShape/nested / bsonns10372747568.22.181
181ParseIndented/citm_catalog / 4ns7.41873e+061.78703e+064.151
182Dump/unsigned_ints / 4ns3.1907e+078.51588e+063.747
183FromBinaryBuffer/bjdata_optimized / canadans8.84399e+062.9307e+063.018