Skip to content

Latest commit

 

History

History
373 lines (272 loc) · 42.1 KB

File metadata and controls

373 lines (272 loc) · 42.1 KB

Json-Performance

Performance profiling of JSON libraries (Compiled and run on Linux 6.11.0-1018-azure using the Clang 20.1.8 compiler).

Latest Results: (Dec 12, 2025)

Using the following commits:


| Jsonifier: 28dfa9b
| Glaze: d8a8fb9
| Simdjson: ae32422

1400 iterations on a (AMD EPYC 7763 64-Core Processor), where the most stable 20 subsequent iterations are sampled.

Note:

These benchmarks were executed using the CPU benchmark library benchmarksuite.


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 259.665 4.96338 9.32389e+06 901 3311.55 216.456 4.41966 1.11947e+07 927 4083.55
glaze 166.007 5.55406 1.46405e+07 902 5185.7 162.662 6.41473 1.49309e+07 883 5181.05
simdjson 114.059 4.41182 2.13691e+07 918 7683.75

Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 609.552 2.91223 3.99168e+06 4304 6736.1 823.225 2.68015 2.94982e+06 4341 5030.5
glaze 288.433 2.99883 8.45687e+06 4291 14190 755.505 4.67982 3.21391e+06 4326 5466.25
simdjson 233.777 6.29758 1.04544e+07 4300 17567.4

Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1017.31 2.08112 2.35919e+06 1941 1821 1091.13 2.15726 2.19687e+06 1940 1696.6
glaze 330.617 2.55915 7.28189e+06 1937 5592.8 581.84 6.33215 4.14944e+06 1941 3187.4
simdjson 325.899 2.79168 7.45935e+06 1940 5678.75

Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 979.876 2.37191 2.44835e+06 1937 1886.3 1016.01 2.72949 2.36341e+06 1937 1819.05
glaze 432.36 3.89547 5.56073e+06 1936 4275.25 543.806 7.26941 4.45174e+06 1937 3404.95
simdjson 217.628 2.88684 1.11993e+07 1938 8498.3

Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 388.26 3.21138 6.11499e+06 451 1110.5 412.787 1.49756 5.72186e+06 449 1037.85
glaze 296.504 12.0099 8.06596e+06 448 1449.3 139.637 5.87586 1.72908e+07 449 3073.75
simdjson 110.611 1.45195 2.18855e+07 450 3881.1

Json Test (Prettified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1132.58 1.24302 2.15661e+06 49480 41652.7 1588.07 1.59789 1.53759e+06 48262 28981
glaze 928.929 3.80436 2.62946e+06 47518 48763.9 1367.25 1.9496 1.78607e+06 48431 33768.9
simdjson 921.824 2.95815 2.64957e+06 47054 48660.7

Json Test (Minified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 876.805 1.41052 2.78633e+06 34754 37800.8 1408.53 2.17706 1.73326e+06 33667 22798.5
glaze 771.386 1.14352 3.16664e+06 33538 41451.9 1201.03 2.95185 2.0377e+06 34939 27805.4
simdjson 688.887 2.05815 3.54642e+06 34089 47189.2

Partial Test (Prettified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
simdjson 883.112 17.1551 2.64491e+06 1099 1170.05
jsonifier 769.136 16.8846 3.03863e+06 1053 1282.35 1471.42 13.2845 1.48789e+06 973 618.65

Partial Test (Minified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
simdjson 615.619 19.5335 3.87821e+06 726 1134.75
jsonifier 573.101 16.6165 4.05341e+06 707 1153.1 1312.85 12.6048 1.67566e+06 739 534.9

Abc (Out of Order) Test (Prettified) Results (View the data used in the following test):


The JSON documents in the previous tests featured keys ranging from "a" to "z", where each key corresponds to an array of values. Notably, the documents in this test arrange these keys in reverse order, deviating from the typical "a" to "z" arrangement.

This test effectively demonstrates the challenges encountered when utilizing simdjson and iterative parsers that lack the ability to efficiently allocate memory locations throughhashing. In cases where the keys are not in the expected sequence, performance is significantly compromised, with the severity escalating as the document size increases.

In contrast, hash-based solutions offer a viable alternative by circumventing these issues and maintaining optimal performance regardless of the JSON document's scale, or ordering of the keys being parsed.

Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1177.32 1.06665 2.07462e+06 48947 39639.4 1596.95 1.45933 1.52957e+06 47111 28144.1
simdjson 716.683 14.9385 3.49712e+06 49957 68175.6
glaze 714.494 8.16974 3.42797e+06 50140 67067.6 1349.95 1.86982 1.80942e+06 48702 34403.1

Abc (Out of Order) Test (Minified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 885.481 0.882401 2.75827e+06 34687 37351.6 1426.6 2.07693 1.71158e+06 33481 22392.9
glaze 774.947 1.42117 3.15251e+06 35693 43918.8 1195.02 3.64863 2.04749e+06 34999 27986.7
simdjson 689.408 1.57878 3.54503e+06 33961 46990.2

Discord Test (Prettified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1577.24 12.2792 1.55259e+06 92442 56015.4 1884.42 1.23399 1.29651e+06 92442 46785.6
glaze 1159.17 9.13091 2.11119e+06 92442 76148.5 724.724 5.31125 3.37418e+06 92442 121705
simdjson 726.179 5.44948 3.36825e+06 92442 121471

Discord Test (Minified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1108.79 1.10247 2.20373e+06 55353 47611.2 1580.61 0.640594 1.54524e+06 55353 33398.3
glaze 967.769 1.17071 2.52518e+06 55353 54549.7 1473.93 1.81799 1.65728e+06 55353 35818.9
simdjson 444.909 5.73934 5.49859e+06 55353 118736

Canada Test (Prettified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
glaze 1051.74 0.20965 2.3251e+06 6661897 6.04073e+06 729.987 2.8149 3.35146e+06 6661897 8.70737e+06
jsonifier 763.076 2.38395 3.20611e+06 6661897 8.32977e+06 1190.28 3.37651 2.05868e+06 6661897 5.34896e+06
simdjson 696.72 0.449943 3.5099e+06 6661897 9.11892e+06

Canada Test (Minified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 464.86 0.231408 5.26049e+06 2090234 4.28818e+06 470.538 0.398704 5.19694e+06 2090234 4.23646e+06
glaze 450.797 0.237881 5.42463e+06 2090234 4.42196e+06 548.678 1.01259 4.45687e+06 2090234 3.63316e+06
simdjson 268.69 0.451276 9.10121e+06 2090234 7.419e+06

CitmCatalog Test (Prettified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1828.16 0.698291 1.33759e+06 1439562 750987 2594.33 1.0666 942438 1439562 529226
glaze 1594.32 0.576064 1.53377e+06 1439584 861132 1834 1.43983 1.33337e+06 1439584 748639
simdjson 1086.96 0.494808 2.24972e+06 1423415 1.24889e+06

CitmCatalog Test (Minified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1082.87 1.59333 2.25838e+06 500299 440684 1826.34 2.09579 1.33896e+06 500299 261301
glaze 1036.33 1.24089 2.35964e+06 500299 460440 1565.74 2.14297 1.56184e+06 500299 304789
simdjson 407.43 0.586359 6.00181e+06 492910 1.15378e+06

Twitter Partial Test (Prettified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 2076.27 2.23513 1.17591e+06 44653 20514.2 3219.52 2.20371 757217 44653 13231.2
simdjson 1552 1.37519 1.57381e+06 44653 27440.6

Twitter Partial Test (Minified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1980.82 2.32221 1.23247e+06 37543 18079.9 3923.6 2.79892 620543 37543 9129.1
simdjson 1333.71 1.38027 1.83122e+06 37543 26847.1

Twitter Test (Prettified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1549.03 2.78492 1.57882e+06 414021 254977 2425.99 4.01186 1.00829e+06 414021 162852
glaze 1196.87 1.69628 2.04313e+06 414021 329942 1881.18 3.00961 1.29981e+06 414021 209929
simdjson 920.703 1.02391 2.65587e+06 418582 433601

Twitter Test (Minified) Results (View the data used in the following test):


Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
jsonifier 1305.06 3.2508 1.87378e+06 277014 202492 2359.1 5.73914 1.03691e+06 277014 112060
glaze 1143.46 2.8532 2.13869e+06 277014 231096 1835.21 4.56114 1.33283e+06 277014 144050
simdjson 637.657 1.24118 3.83488e+06 278407 416421

Library Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
glaze 1136.85 1.39378 2.15086e+06 466906 391706
jsonifier 1097.66 1.40401 2.22781e+06 466906 405706
simdjson 621.677 0.881225 3.93345e+06 466906 716283

Library Write (MB/S) Write Percentage Deviation (+/-%) Write (Cycles/MB) Write Length (Bytes) Write Time (ns)
glaze 1564.09 1.19674 1.56344e+06 699405 426489
jsonifier 1535.86 1.32762 1.59205e+06 699405 434339

Library Read (MB/S) Read Percentage Deviation (+/-%) Read (Cycles/MB) Read Length (Bytes) Read Time (ns)
jsonifier 2545.19 2.31005 960814 631515 236688
glaze 2279.46 2.18854 1.07281e+06 631515 264266