mirror of
https://github.com/nlohmann/json.git
synced 2026-11-04 11:49:22 +00:00
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>
9.7 KiB
9.7 KiB
| 1 | benchmark | unit | 3.12.0 | 3.13.0 | speedup |
|---|---|---|---|---|---|
| 2 | FromBinaryBuffer/bson / twitter | ns | 3.20265e+06 | 1.01993e+06 | 3.140 |
| 3 | ParseStringOrdered/jeopardy | ns | 3.70568e+08 | 1.14254e+08 | 3.243 |
| 4 | JsonPointerToString/twitter | ns | 2.23197e+06 | 820138 | 2.721 |
| 5 | BinaryToCbor/8192 | ns | 520.964 | 261.625 | 1.991 |
| 6 | FromMsgpack/unsigned_ints | ns | 5.69725e+07 | 2.80231e+07 | 2.033 |
| 7 | JsonPointerAt/twitter | ns | 802316 | 609192 | 1.317 |
| 8 | CopyOnly/twitter | ns | 420973 | 412550 | 1.020 |
| 9 | FlattenOrdered/citm_catalog | ns | 2.56599e+08 | 1.43012e+06 | 179.425 |
| 10 | FromBinaryFile/ubjson / canada | ns | 1.39411e+07 | 6.49692e+06 | 2.146 |
| 11 | FromBinaryShape/containers / bjdata | ns | 1.43419e+07 | 7.40687e+06 | 1.936 |
| 12 | ParseIndented/jeopardy / 4 | ns | 3.41862e+08 | 1.33413e+08 | 2.562 |
| 13 | FromMsgpack/signed_ints | ns | 6.35213e+07 | 3.30421e+07 | 1.922 |
| 14 | FromBinaryShape/containers / bson | ns | 1.70519e+07 | 1.00034e+07 | 1.705 |
| 15 | BinaryToCbor/128 | ns | 254.611 | 116.411 | 2.187 |
| 16 | FromBinaryBuffer/cbor / jeopardy | ns | 3.69767e+08 | 1.19253e+08 | 3.101 |
| 17 | ParseFile/jeopardy | ns | 3.34742e+08 | 1.63435e+08 | 2.048 |
| 18 | FromMsgpack/jeopardy | ns | 1.149e+09 | 1.87355e+08 | 6.133 |
| 19 | FromBinaryFile/cbor / twitter | ns | 1.01844e+07 | 1.59657e+06 | 6.379 |
| 20 | ToCbor/floats | ns | 8.95826e+06 | 1.90206e+06 | 4.710 |
| 21 | ParseFile/small_signed_ints | ns | 6.45414e+07 | 3.24039e+07 | 1.992 |
| 22 | FromBinaryBuffer/msgpack / twitter | ns | 3.12989e+06 | 955605 | 3.275 |
| 23 | BinaryToCbor/16384 | ns | 957.164 | 409.694 | 2.336 |
| 24 | FromBinaryFile/bson / twitter | ns | 1.05564e+07 | 1.83313e+06 | 5.759 |
| 25 | ParseString/twitter | ns | 3.26395e+06 | 1.06141e+06 | 3.075 |
| 26 | Unflatten/twitter | ns | 4.7901e+06 | 2.16809e+06 | 2.209 |
| 27 | BinaryToCbor/8 | ns | 250.617 | 48.9987 | 5.115 |
| 28 | BinaryToCbor/16 | ns | 247.56 | 49.275 | 5.024 |
| 29 | Dump/small_signed_ints / 4 | ns | 2.52497e+07 | 8.83973e+06 | 2.856 |
| 30 | ParseString/jeopardy | ns | 3.075e+08 | 1.31952e+08 | 2.330 |
| 31 | Dump/signed_ints / 4 | ns | 3.23205e+07 | 1.14372e+07 | 2.826 |
| 32 | Flatten/twitter | ns | 3.63682e+06 | 2.08612e+06 | 1.743 |
| 33 | FromBinaryBuffer/cbor / twitter | ns | 3.15556e+06 | 982723 | 3.211 |
| 34 | Dump/jeopardy / 4 | ns | 2.23755e+08 | 3.58432e+07 | 6.243 |
| 35 | SaxParse/citm_catalog | ns | 6.48562e+06 | 996471 | 6.509 |
| 36 | JsonPointerAt/citm_catalog | ns | 1.86838e+06 | 1.17763e+06 | 1.587 |
| 37 | DestroyOnly/citm_catalog | ns | 896147 | 687189 | 1.304 |
| 38 | FromBinaryShape/scalars / ubjson | ns | 2.51063e+07 | 1.16857e+07 | 2.148 |
| 39 | Unflatten/canada | ns | 4.23131e+07 | 1.09708e+07 | 3.857 |
| 40 | ParseString/floats | ns | 1.20329e+08 | 3.11796e+07 | 3.859 |
| 41 | ParseIndented/canada / 4 | ns | 3.44028e+07 | 5.15746e+06 | 6.670 |
| 42 | ParseString/signed_ints | ns | 1.21464e+08 | 3.24369e+07 | 3.745 |
| 43 | ParseFile/signed_ints | ns | 1.26509e+08 | 4.77756e+07 | 2.648 |
| 44 | JsonPointerContains/twitter | ns | 1.32359e+06 | 626164 | 2.114 |
| 45 | Dump/floats / 4 | ns | 7.2051e+07 | 2.47002e+07 | 2.917 |
| 46 | Dump/floats / - | ns | 6.40617e+07 | 2.40284e+07 | 2.666 |
| 47 | ToCbor/canada | ns | 1.40569e+06 | 563628 | 2.494 |
| 48 | FromBinaryBuffer/bson / canada | ns | 9.59257e+06 | 5.45604e+06 | 1.758 |
| 49 | ToCbor/twitter | ns | 645140 | 144838 | 4.454 |
| 50 | ParseIndented/twitter / 4 | ns | 3.66555e+06 | 1.1496e+06 | 3.189 |
| 51 | Iterate/citm_catalog | ns | 304057 | 186693 | 1.629 |
| 52 | FromBinaryBuffer/bjdata / canada | ns | 8.44949e+06 | 4.18085e+06 | 2.021 |
| 53 | ParseStreamValues/ndjson | ns | 7.13248e+06 | 3.74646e+06 | 1.904 |
| 54 | Diff/twitter | ns | 4.9487e+06 | 655350 | 7.551 |
| 55 | Dump/citm_catalog / - | ns | 1.41491e+06 | 296958 | 4.765 |
| 56 | FromBinaryShape/nested / bjdata | ns | 97444.8 | 39017.8 | 2.497 |
| 57 | ToJsonStrings/copy | ns | 6.02335e+06 | 5.76289e+06 | 1.045 |
| 58 | Dump/canada / 4 | ns | 9.0251e+06 | 3.05796e+06 | 2.951 |
| 59 | CopyRing/twitter | ns | 923459 | 836502 | 1.104 |
| 60 | FromBinaryBuffer/cbor / citm_catalog | ns | 3.83804e+06 | 1.48497e+06 | 2.585 |
| 61 | FromBinaryFile/bjdata / twitter | ns | 1.07571e+07 | 1.97984e+06 | 5.433 |
| 62 | FromBinaryShape/containers / ubjson_optimized | ns | 1.51034e+07 | 4.91673e+06 | 3.072 |
| 63 | FromMsgpack/citm_catalog | ns | 9.2234e+06 | 2.31697e+06 | 3.981 |
| 64 | CopyOnly/canada | ns | 1.57914e+06 | 1.55103e+06 | 1.018 |
| 65 | Equal/canada | ns | 469788 | 342475 | 1.372 |
| 66 | Diff/citm_catalog | ns | 7.13383e+06 | 1.10739e+06 | 6.442 |
| 67 | ParseStringOrdered/canada | ns | 1.54143e+07 | 4.44693e+06 | 3.466 |
| 68 | Flatten/canada | ns | 2.92397e+07 | 1.13461e+07 | 2.577 |
| 69 | Accept/canada | ns | 1.28601e+07 | 2.33328e+06 | 5.512 |
| 70 | CopyAssign/twitter | ns | 886807 | 758771 | 1.169 |
| 71 | BinaryToCbor/4096 | ns | 408.287 | 177.133 | 2.305 |
| 72 | ParseFILE/citm_catalog | ns | 3.554e+07 | 7.57816e+06 | 4.690 |
| 73 | ToCbor/signed_ints | ns | 1.13842e+07 | 2.82539e+06 | 4.029 |
| 74 | Patch/canada | ns | 1.03856e+07 | 3.44306e+06 | 3.016 |
| 75 | GetArray<std::vector<int>> | ns | 6775.31 | 675.66 | 10.028 |
| 76 | Dump/canada / - | ns | 6.83829e+06 | 2.34599e+06 | 2.915 |
| 77 | GetVectorDouble/floats | ns | 6.79501e+06 | 976472 | 6.959 |
| 78 | Accept/citm_catalog | ns | 6.46161e+06 | 933820 | 6.920 |
| 79 | ParseFILE/twitter | ns | 1.39242e+07 | 3.37101e+06 | 4.131 |
| 80 | FromBinaryBuffer/msgpack / jeopardy | ns | 3.62314e+08 | 1.12333e+08 | 3.225 |
| 81 | ParseFile/floats | ns | 1.29093e+08 | 5.07947e+07 | 2.541 |
| 82 | Accept/small_signed_ints | ns | 5.70115e+07 | 1.92594e+07 | 2.960 |
| 83 | Accept/jeopardy | ns | 2.18621e+08 | 6.48811e+07 | 3.370 |
| 84 | Accept/signed_ints | ns | 1.17114e+08 | 2.90352e+07 | 4.034 |
| 85 | CopyRing/canada | ns | 3.85335e+06 | 2.97856e+06 | 1.294 |
| 86 | Patch/twitter | ns | 1.54075e+06 | 870596 | 1.770 |
| 87 | Iterate/twitter | ns | 87674.1 | 61938.2 | 1.416 |
| 88 | ParseFile/twitter | ns | 3.45242e+06 | 1.4135e+06 | 2.442 |
| 89 | GetArray<std::deque<int>> | ns | 8218.06 | 1184.36 | 6.939 |
| 90 | FromBinaryBuffer/cbor / canada | ns | 8.49597e+06 | 2.34162e+06 | 3.628 |
| 91 | Equal/twitter | ns | 144862 | 130449 | 1.110 |
| 92 | ParseStreamValues/numbers | ns | 1.91254e+06 | 380019 | 5.033 |
| 93 | Dump/small_signed_ints / - | ns | 1.79973e+07 | 8.03116e+06 | 2.241 |
| 94 | JsonPointerToString/citm_catalog | ns | 6.73543e+06 | 1.94403e+06 | 3.465 |
| 95 | Copy/twitter | ns | 817423 | 747760 | 1.093 |
| 96 | Diff/canada | ns | 3.94496e+07 | 3.76295e+06 | 10.484 |
| 97 | FromBinaryBuffer/ubjson_optimized / twitter | ns | 3.21798e+06 | 976128 | 3.297 |
| 98 | BinaryToCbor/32 | ns | 257.519 | 50.0744 | 5.143 |
| 99 | GetArray<std::set<int>> | ns | 59334.9 | 41926.5 | 1.415 |
| 100 | CopyAssign/citm_catalog | ns | 1.74826e+06 | 1.58974e+06 | 1.100 |
| 101 | ToCbor/jeopardy | ns | 7.37854e+07 | 2.23113e+07 | 3.307 |
| 102 | CopyRing/citm_catalog | ns | 1.82401e+06 | 1.5913e+06 | 1.146 |
| 103 | FromBinaryBuffer/ubjson / canada | ns | 8.42613e+06 | 4.2011e+06 | 2.006 |
| 104 | ToCbor/small_signed_ints | ns | 1.03308e+07 | 2.45559e+06 | 4.207 |
| 105 | DestroyOnly/canada | ns | 2.19064e+06 | 1.40424e+06 | 1.560 |
| 106 | FromBinaryBuffer/ubjson / citm_catalog | ns | 3.94636e+06 | 1.77126e+06 | 2.228 |
| 107 | Dump/jeopardy / - | ns | 2.0472e+08 | 3.20386e+07 | 6.390 |
| 108 | FromBinaryBuffer/msgpack / citm_catalog | ns | 3.83422e+06 | 1.44289e+06 | 2.657 |
| 109 | ParseStringOrdered/citm_catalog | ns | 1.13087e+07 | 1.6737e+06 | 6.757 |
| 110 | ParseString/unsigned_ints | ns | 1.19395e+08 | 3.09133e+07 | 3.862 |
| 111 | Patch/citm_catalog | ns | 2.64909e+06 | 1.68738e+06 | 1.570 |
| 112 | SaxParse/canada | ns | 1.30153e+07 | 3.28081e+06 | 3.967 |
| 113 | ParseString/citm_catalog | ns | 7.42082e+06 | 1.77268e+06 | 4.186 |
| 114 | FromBinaryFile/cbor / canada | ns | 1.45988e+07 | 4.52323e+06 | 3.228 |
| 115 | BinaryToCbor/256 | ns | 271.407 | 91.5071 | 2.966 |
| 116 | ParseFILE/canada | ns | 5.33064e+07 | 1.43382e+07 | 3.718 |
| 117 | BinaryToCbor/32768 | ns | 1549.96 | 819.172 | 1.892 |
| 118 | Accept/floats | ns | 1.14306e+08 | 2.47177e+07 | 4.624 |
| 119 | FromMsgpack/floats | ns | 6.06523e+07 | 2.81624e+07 | 2.154 |
| 120 | ParseString/small_signed_ints | ns | 6.20261e+07 | 2.25358e+07 | 2.752 |
| 121 | JsonPointerParse/citm_catalog | ns | 5.82111e+06 | 2.2258e+06 | 2.615 |
| 122 | Copy/canada | ns | 3.76091e+06 | 2.89932e+06 | 1.297 |
| 123 | Dump/twitter / 4 | ns | 1.622e+06 | 252594 | 6.421 |
| 124 | FromBinaryShape/nested / msgpack | ns | 94122.7 | 35186.9 | 2.675 |
| 125 | FromBinaryBuffer/ubjson_optimized / canada | ns | 8.64985e+06 | 2.85754e+06 | 3.027 |
| 126 | JsonPointerContains/citm_catalog | ns | 2.77749e+06 | 1.26131e+06 | 2.202 |
| 127 | FromMsgpack/small_signed_ints | ns | 6.40964e+07 | 3.42736e+07 | 1.870 |
| 128 | DestroyOnly/twitter | ns | 415737 | 326784 | 1.272 |
| 129 | FromBinaryShape/containers / msgpack | ns | 1.42568e+07 | 3.89814e+06 | 3.657 |
| 130 | FromBinaryShape/scalars / msgpack | ns | 2.4908e+07 | 1.05741e+07 | 2.356 |
| 131 | ToCbor/citm_catalog | ns | 1.04281e+06 | 260809 | 3.998 |
| 132 | GetVectorInt/signed_ints | ns | 8.20129e+06 | 3.48162e+06 | 2.356 |
| 133 | Accept/twitter | ns | 2.49861e+06 | 475874 | 5.251 |
| 134 | Iterate/canada | ns | 886750 | 314350 | 2.821 |
| 135 | ToCbor/unsigned_ints | ns | 8.05242e+06 | 2.80275e+06 | 2.873 |
| 136 | FromBinaryShape/scalars / bjdata | ns | 2.49885e+07 | 1.16227e+07 | 2.150 |
| 137 | BinaryToCbor/2048 | ns | 331.702 | 126.762 | 2.617 |
| 138 | BinaryToCbor/512 | ns | 287.238 | 102.34 | 2.807 |
| 139 | FlattenOrdered/twitter | ns | 5.11231e+07 | 877575 | 58.255 |
| 140 | Copy/citm_catalog | ns | 1.66893e+06 | 1.50237e+06 | 1.111 |
| 141 | FromBinaryShape/containers / ubjson | ns | 1.44781e+07 | 7.34134e+06 | 1.972 |
| 142 | BinaryToCbor/1024 | ns | 294.38 | 106.974 | 2.752 |
| 143 | FromBinaryBuffer/ubjson / twitter | ns | 3.27965e+06 | 973396 | 3.369 |
| 144 | Dump/signed_ints / - | ns | 2.3995e+07 | 1.07412e+07 | 2.234 |
| 145 | FromBinaryShape/scalars / cbor | ns | 2.59955e+07 | 9.92397e+06 | 2.619 |
| 146 | FromBinaryBuffer/cbor / signed_ints | ns | 3.6394e+07 | 1.32489e+07 | 2.747 |
| 147 | CopyOnly/citm_catalog | ns | 773309 | 805343 | 0.960 |
| 148 | Dump/unsigned_ints / - | ns | 2.37018e+07 | 8.11504e+06 | 2.921 |
| 149 | Accept/unsigned_ints | ns | 1.16121e+08 | 2.82332e+07 | 4.113 |
| 150 | FromMsgpack/canada | ns | 1.45399e+07 | 4.55571e+06 | 3.192 |
| 151 | ParseStringOrdered/twitter | ns | 4.522e+06 | 920414 | 4.913 |
| 152 | Dump/twitter / - | ns | 1.4183e+06 | 210619 | 6.734 |
| 153 | BinaryToCbor/64 | ns | 256.225 | 82.8609 | 3.092 |
| 154 | JsonPointerParse/twitter | ns | 2.48884e+06 | 1.01455e+06 | 2.453 |
| 155 | GetMap/citm_catalog | ns | 3.52983e+06 | 2.42484e+06 | 1.456 |
| 156 | ToJsonStrings/move | ns | 6.05077e+06 | 3.12298e+06 | 1.938 |
| 157 | FromBinaryBuffer/ubjson / jeopardy | ns | 3.73253e+08 | 1.17316e+08 | 3.182 |
| 158 | FromBinaryShape/nested / ubjson | ns | 98047.3 | 38860.2 | 2.523 |
| 159 | FromBinaryBuffer/bjdata / twitter | ns | 3.27193e+06 | 973613 | 3.361 |
| 160 | FromBinaryShape/nested / cbor | ns | 94082.1 | 35427.1 | 2.656 |
| 161 | ParseFile/citm_catalog | ns | 7.97956e+06 | 2.49852e+06 | 3.194 |
| 162 | FromBinaryFile/ubjson / twitter | ns | 1.07792e+07 | 1.96519e+06 | 5.485 |
| 163 | Dump/citm_catalog / 4 | ns | 1.96876e+06 | 421277 | 4.673 |
| 164 | CopyAssign/canada | ns | 3.82927e+06 | 3.00436e+06 | 1.275 |
| 165 | Unflatten/citm_catalog | ns | 1.00575e+07 | 3.55051e+06 | 2.833 |
| 166 | FromBinaryBuffer/bjdata_optimized / twitter | ns | 3.21663e+06 | 972271 | 3.308 |
| 167 | FromBinaryBuffer/cbor / floats | ns | 2.94008e+07 | 8.37306e+06 | 3.511 |
| 168 | Equal/citm_catalog | ns | 277722 | 260273 | 1.067 |
| 169 | FromBinaryShape/containers / cbor | ns | 1.43595e+07 | 4.00487e+06 | 3.585 |
| 170 | Flatten/citm_catalog | ns | 6.65353e+06 | 3.02263e+06 | 2.201 |
| 171 | FromMsgpack/twitter | ns | 1.01696e+07 | 1.51935e+06 | 6.693 |
| 172 | FromBinaryBuffer/bson / citm_catalog | ns | 4.00639e+06 | 1.77129e+06 | 2.262 |
| 173 | FromBinaryBuffer/msgpack / canada | ns | 8.59297e+06 | 2.37267e+06 | 3.622 |
| 174 | GetArray<std::array<int, 1000>> | ns | 2267.99 | 647.261 | 3.504 |
| 175 | SaxParse/twitter | ns | 2.51436e+06 | 478188 | 5.258 |
| 176 | ParseString/canada | ns | 1.52394e+07 | 4.50457e+06 | 3.383 |
| 177 | ParseFile/canada | ns | 1.7916e+07 | 6.38308e+06 | 2.807 |
| 178 | ParseFile/unsigned_ints | ns | 1.23238e+08 | 4.54686e+07 | 2.710 |
| 179 | FromCborChunkedString/10000 chunks | ns | 91163.3 | 82651.6 | 1.103 |
| 180 | FromBinaryShape/nested / bson | ns | 103727 | 47568.2 | 2.181 |
| 181 | ParseIndented/citm_catalog / 4 | ns | 7.41873e+06 | 1.78703e+06 | 4.151 |
| 182 | Dump/unsigned_ints / 4 | ns | 3.1907e+07 | 8.51588e+06 | 3.747 |
| 183 | FromBinaryBuffer/bjdata_optimized / canada | ns | 8.84399e+06 | 2.9307e+06 | 3.018 |