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

184 lines
9.7 KiB
CSV

benchmark,unit,3.12.0,3.13.0,speedup
FromBinaryBuffer/bson / twitter,ns,3.20265e+06,1.01993e+06,3.140
ParseStringOrdered/jeopardy,ns,3.70568e+08,1.14254e+08,3.243
JsonPointerToString/twitter,ns,2.23197e+06,820138,2.721
BinaryToCbor/8192,ns,520.964,261.625,1.991
FromMsgpack/unsigned_ints,ns,5.69725e+07,2.80231e+07,2.033
JsonPointerAt/twitter,ns,802316,609192,1.317
CopyOnly/twitter,ns,420973,412550,1.020
FlattenOrdered/citm_catalog,ns,2.56599e+08,1.43012e+06,179.425
FromBinaryFile/ubjson / canada,ns,1.39411e+07,6.49692e+06,2.146
FromBinaryShape/containers / bjdata,ns,1.43419e+07,7.40687e+06,1.936
ParseIndented/jeopardy / 4,ns,3.41862e+08,1.33413e+08,2.562
FromMsgpack/signed_ints,ns,6.35213e+07,3.30421e+07,1.922
FromBinaryShape/containers / bson,ns,1.70519e+07,1.00034e+07,1.705
BinaryToCbor/128,ns,254.611,116.411,2.187
FromBinaryBuffer/cbor / jeopardy,ns,3.69767e+08,1.19253e+08,3.101
ParseFile/jeopardy,ns,3.34742e+08,1.63435e+08,2.048
FromMsgpack/jeopardy,ns,1.149e+09,1.87355e+08,6.133
FromBinaryFile/cbor / twitter,ns,1.01844e+07,1.59657e+06,6.379
ToCbor/floats,ns,8.95826e+06,1.90206e+06,4.710
ParseFile/small_signed_ints,ns,6.45414e+07,3.24039e+07,1.992
FromBinaryBuffer/msgpack / twitter,ns,3.12989e+06,955605,3.275
BinaryToCbor/16384,ns,957.164,409.694,2.336
FromBinaryFile/bson / twitter,ns,1.05564e+07,1.83313e+06,5.759
ParseString/twitter,ns,3.26395e+06,1.06141e+06,3.075
Unflatten/twitter,ns,4.7901e+06,2.16809e+06,2.209
BinaryToCbor/8,ns,250.617,48.9987,5.115
BinaryToCbor/16,ns,247.56,49.275,5.024
Dump/small_signed_ints / 4,ns,2.52497e+07,8.83973e+06,2.856
ParseString/jeopardy,ns,3.075e+08,1.31952e+08,2.330
Dump/signed_ints / 4,ns,3.23205e+07,1.14372e+07,2.826
Flatten/twitter,ns,3.63682e+06,2.08612e+06,1.743
FromBinaryBuffer/cbor / twitter,ns,3.15556e+06,982723,3.211
Dump/jeopardy / 4,ns,2.23755e+08,3.58432e+07,6.243
SaxParse/citm_catalog,ns,6.48562e+06,996471,6.509
JsonPointerAt/citm_catalog,ns,1.86838e+06,1.17763e+06,1.587
DestroyOnly/citm_catalog,ns,896147,687189,1.304
FromBinaryShape/scalars / ubjson,ns,2.51063e+07,1.16857e+07,2.148
Unflatten/canada,ns,4.23131e+07,1.09708e+07,3.857
ParseString/floats,ns,1.20329e+08,3.11796e+07,3.859
ParseIndented/canada / 4,ns,3.44028e+07,5.15746e+06,6.670
ParseString/signed_ints,ns,1.21464e+08,3.24369e+07,3.745
ParseFile/signed_ints,ns,1.26509e+08,4.77756e+07,2.648
JsonPointerContains/twitter,ns,1.32359e+06,626164,2.114
Dump/floats / 4,ns,7.2051e+07,2.47002e+07,2.917
Dump/floats / -,ns,6.40617e+07,2.40284e+07,2.666
ToCbor/canada,ns,1.40569e+06,563628,2.494
FromBinaryBuffer/bson / canada,ns,9.59257e+06,5.45604e+06,1.758
ToCbor/twitter,ns,645140,144838,4.454
ParseIndented/twitter / 4,ns,3.66555e+06,1.1496e+06,3.189
Iterate/citm_catalog,ns,304057,186693,1.629
FromBinaryBuffer/bjdata / canada,ns,8.44949e+06,4.18085e+06,2.021
ParseStreamValues/ndjson,ns,7.13248e+06,3.74646e+06,1.904
Diff/twitter,ns,4.9487e+06,655350,7.551
Dump/citm_catalog / -,ns,1.41491e+06,296958,4.765
FromBinaryShape/nested / bjdata,ns,97444.8,39017.8,2.497
ToJsonStrings/copy,ns,6.02335e+06,5.76289e+06,1.045
Dump/canada / 4,ns,9.0251e+06,3.05796e+06,2.951
CopyRing/twitter,ns,923459,836502,1.104
FromBinaryBuffer/cbor / citm_catalog,ns,3.83804e+06,1.48497e+06,2.585
FromBinaryFile/bjdata / twitter,ns,1.07571e+07,1.97984e+06,5.433
FromBinaryShape/containers / ubjson_optimized,ns,1.51034e+07,4.91673e+06,3.072
FromMsgpack/citm_catalog,ns,9.2234e+06,2.31697e+06,3.981
CopyOnly/canada,ns,1.57914e+06,1.55103e+06,1.018
Equal/canada,ns,469788,342475,1.372
Diff/citm_catalog,ns,7.13383e+06,1.10739e+06,6.442
ParseStringOrdered/canada,ns,1.54143e+07,4.44693e+06,3.466
Flatten/canada,ns,2.92397e+07,1.13461e+07,2.577
Accept/canada,ns,1.28601e+07,2.33328e+06,5.512
CopyAssign/twitter,ns,886807,758771,1.169
BinaryToCbor/4096,ns,408.287,177.133,2.305
ParseFILE/citm_catalog,ns,3.554e+07,7.57816e+06,4.690
ToCbor/signed_ints,ns,1.13842e+07,2.82539e+06,4.029
Patch/canada,ns,1.03856e+07,3.44306e+06,3.016
GetArray<std::vector<int>>,ns,6775.31,675.66,10.028
Dump/canada / -,ns,6.83829e+06,2.34599e+06,2.915
GetVectorDouble/floats,ns,6.79501e+06,976472,6.959
Accept/citm_catalog,ns,6.46161e+06,933820,6.920
ParseFILE/twitter,ns,1.39242e+07,3.37101e+06,4.131
FromBinaryBuffer/msgpack / jeopardy,ns,3.62314e+08,1.12333e+08,3.225
ParseFile/floats,ns,1.29093e+08,5.07947e+07,2.541
Accept/small_signed_ints,ns,5.70115e+07,1.92594e+07,2.960
Accept/jeopardy,ns,2.18621e+08,6.48811e+07,3.370
Accept/signed_ints,ns,1.17114e+08,2.90352e+07,4.034
CopyRing/canada,ns,3.85335e+06,2.97856e+06,1.294
Patch/twitter,ns,1.54075e+06,870596,1.770
Iterate/twitter,ns,87674.1,61938.2,1.416
ParseFile/twitter,ns,3.45242e+06,1.4135e+06,2.442
GetArray<std::deque<int>>,ns,8218.06,1184.36,6.939
FromBinaryBuffer/cbor / canada,ns,8.49597e+06,2.34162e+06,3.628
Equal/twitter,ns,144862,130449,1.110
ParseStreamValues/numbers,ns,1.91254e+06,380019,5.033
Dump/small_signed_ints / -,ns,1.79973e+07,8.03116e+06,2.241
JsonPointerToString/citm_catalog,ns,6.73543e+06,1.94403e+06,3.465
Copy/twitter,ns,817423,747760,1.093
Diff/canada,ns,3.94496e+07,3.76295e+06,10.484
FromBinaryBuffer/ubjson_optimized / twitter,ns,3.21798e+06,976128,3.297
BinaryToCbor/32,ns,257.519,50.0744,5.143
GetArray<std::set<int>>,ns,59334.9,41926.5,1.415
CopyAssign/citm_catalog,ns,1.74826e+06,1.58974e+06,1.100
ToCbor/jeopardy,ns,7.37854e+07,2.23113e+07,3.307
CopyRing/citm_catalog,ns,1.82401e+06,1.5913e+06,1.146
FromBinaryBuffer/ubjson / canada,ns,8.42613e+06,4.2011e+06,2.006
ToCbor/small_signed_ints,ns,1.03308e+07,2.45559e+06,4.207
DestroyOnly/canada,ns,2.19064e+06,1.40424e+06,1.560
FromBinaryBuffer/ubjson / citm_catalog,ns,3.94636e+06,1.77126e+06,2.228
Dump/jeopardy / -,ns,2.0472e+08,3.20386e+07,6.390
FromBinaryBuffer/msgpack / citm_catalog,ns,3.83422e+06,1.44289e+06,2.657
ParseStringOrdered/citm_catalog,ns,1.13087e+07,1.6737e+06,6.757
ParseString/unsigned_ints,ns,1.19395e+08,3.09133e+07,3.862
Patch/citm_catalog,ns,2.64909e+06,1.68738e+06,1.570
SaxParse/canada,ns,1.30153e+07,3.28081e+06,3.967
ParseString/citm_catalog,ns,7.42082e+06,1.77268e+06,4.186
FromBinaryFile/cbor / canada,ns,1.45988e+07,4.52323e+06,3.228
BinaryToCbor/256,ns,271.407,91.5071,2.966
ParseFILE/canada,ns,5.33064e+07,1.43382e+07,3.718
BinaryToCbor/32768,ns,1549.96,819.172,1.892
Accept/floats,ns,1.14306e+08,2.47177e+07,4.624
FromMsgpack/floats,ns,6.06523e+07,2.81624e+07,2.154
ParseString/small_signed_ints,ns,6.20261e+07,2.25358e+07,2.752
JsonPointerParse/citm_catalog,ns,5.82111e+06,2.2258e+06,2.615
Copy/canada,ns,3.76091e+06,2.89932e+06,1.297
Dump/twitter / 4,ns,1.622e+06,252594,6.421
FromBinaryShape/nested / msgpack,ns,94122.7,35186.9,2.675
FromBinaryBuffer/ubjson_optimized / canada,ns,8.64985e+06,2.85754e+06,3.027
JsonPointerContains/citm_catalog,ns,2.77749e+06,1.26131e+06,2.202
FromMsgpack/small_signed_ints,ns,6.40964e+07,3.42736e+07,1.870
DestroyOnly/twitter,ns,415737,326784,1.272
FromBinaryShape/containers / msgpack,ns,1.42568e+07,3.89814e+06,3.657
FromBinaryShape/scalars / msgpack,ns,2.4908e+07,1.05741e+07,2.356
ToCbor/citm_catalog,ns,1.04281e+06,260809,3.998
GetVectorInt/signed_ints,ns,8.20129e+06,3.48162e+06,2.356
Accept/twitter,ns,2.49861e+06,475874,5.251
Iterate/canada,ns,886750,314350,2.821
ToCbor/unsigned_ints,ns,8.05242e+06,2.80275e+06,2.873
FromBinaryShape/scalars / bjdata,ns,2.49885e+07,1.16227e+07,2.150
BinaryToCbor/2048,ns,331.702,126.762,2.617
BinaryToCbor/512,ns,287.238,102.34,2.807
FlattenOrdered/twitter,ns,5.11231e+07,877575,58.255
Copy/citm_catalog,ns,1.66893e+06,1.50237e+06,1.111
FromBinaryShape/containers / ubjson,ns,1.44781e+07,7.34134e+06,1.972
BinaryToCbor/1024,ns,294.38,106.974,2.752
FromBinaryBuffer/ubjson / twitter,ns,3.27965e+06,973396,3.369
Dump/signed_ints / -,ns,2.3995e+07,1.07412e+07,2.234
FromBinaryShape/scalars / cbor,ns,2.59955e+07,9.92397e+06,2.619
FromBinaryBuffer/cbor / signed_ints,ns,3.6394e+07,1.32489e+07,2.747
CopyOnly/citm_catalog,ns,773309,805343,0.960
Dump/unsigned_ints / -,ns,2.37018e+07,8.11504e+06,2.921
Accept/unsigned_ints,ns,1.16121e+08,2.82332e+07,4.113
FromMsgpack/canada,ns,1.45399e+07,4.55571e+06,3.192
ParseStringOrdered/twitter,ns,4.522e+06,920414,4.913
Dump/twitter / -,ns,1.4183e+06,210619,6.734
BinaryToCbor/64,ns,256.225,82.8609,3.092
JsonPointerParse/twitter,ns,2.48884e+06,1.01455e+06,2.453
GetMap/citm_catalog,ns,3.52983e+06,2.42484e+06,1.456
ToJsonStrings/move,ns,6.05077e+06,3.12298e+06,1.938
FromBinaryBuffer/ubjson / jeopardy,ns,3.73253e+08,1.17316e+08,3.182
FromBinaryShape/nested / ubjson,ns,98047.3,38860.2,2.523
FromBinaryBuffer/bjdata / twitter,ns,3.27193e+06,973613,3.361
FromBinaryShape/nested / cbor,ns,94082.1,35427.1,2.656
ParseFile/citm_catalog,ns,7.97956e+06,2.49852e+06,3.194
FromBinaryFile/ubjson / twitter,ns,1.07792e+07,1.96519e+06,5.485
Dump/citm_catalog / 4,ns,1.96876e+06,421277,4.673
CopyAssign/canada,ns,3.82927e+06,3.00436e+06,1.275
Unflatten/citm_catalog,ns,1.00575e+07,3.55051e+06,2.833
FromBinaryBuffer/bjdata_optimized / twitter,ns,3.21663e+06,972271,3.308
FromBinaryBuffer/cbor / floats,ns,2.94008e+07,8.37306e+06,3.511
Equal/citm_catalog,ns,277722,260273,1.067
FromBinaryShape/containers / cbor,ns,1.43595e+07,4.00487e+06,3.585
Flatten/citm_catalog,ns,6.65353e+06,3.02263e+06,2.201
FromMsgpack/twitter,ns,1.01696e+07,1.51935e+06,6.693
FromBinaryBuffer/bson / citm_catalog,ns,4.00639e+06,1.77129e+06,2.262
FromBinaryBuffer/msgpack / canada,ns,8.59297e+06,2.37267e+06,3.622
"GetArray<std::array<int, 1000>>",ns,2267.99,647.261,3.504
SaxParse/twitter,ns,2.51436e+06,478188,5.258
ParseString/canada,ns,1.52394e+07,4.50457e+06,3.383
ParseFile/canada,ns,1.7916e+07,6.38308e+06,2.807
ParseFile/unsigned_ints,ns,1.23238e+08,4.54686e+07,2.710
FromCborChunkedString/10000 chunks,ns,91163.3,82651.6,1.103
FromBinaryShape/nested / bson,ns,103727,47568.2,2.181
ParseIndented/citm_catalog / 4,ns,7.41873e+06,1.78703e+06,4.151
Dump/unsigned_ints / 4,ns,3.1907e+07,8.51588e+06,3.747
FromBinaryBuffer/bjdata_optimized / canada,ns,8.84399e+06,2.9307e+06,3.018