Skip to content

Latest commit

 

History

History
373 lines (272 loc) · 38.9 KB

File metadata and controls

373 lines (272 loc) · 38.9 KB

Json-Performance

Performance profiling of JSON libraries (Compiled and run on Darwin 24.6.0 using the AppleClang 17.0.0.17000013 compiler).

Latest Results: (Dec 12, 2025)

Using the following commits:


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

1400 iterations on a (Apple M1 (Virtual)), 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 Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 299.615 4.01512 914 2908.35 194.51 3.79329 878 4306.4
glaze 129.738 7.43441 905 6666.65 89.3179 12.5811 917 9822.8
simdjson 93.9815 5.33005 891 9043.8

Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 437.429 40.1147 4246 10102.1 709.354 9.89595 4237 5718.85
glaze 294.154 9.60701 4224 13768.7 208.943 7.44086 4276 19546
simdjson 132.739 25.0644 4257 31387.4

Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1033.91 2.78123 1938 1789.45 928.828 2.75536 1939 1991.6
glaze 290.983 6.70892 1940 6374.95 252.976 12.8551 1938 7341.5
simdjson 277.69 3.61491 1941 6672.85

Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 444.146 3.0228 1937 4162.5 956.101 3.29607 1937 1933.45
simdjson 222.921 5.84644 1935 8297.8
glaze 105.518 2.362 1936 17506 257.204 9.9457 1937 7212.55

Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 474.141 6.14987 449 904.1 289.538 2.50414 449 1481.3
glaze 78.1422 11.3418 450 5535.3 48.6738 10.3178 449 8839.55
simdjson 23.1689 4.3931 450 18535.5

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1304.82 2.38207 48111 35185.5 1736.81 2.89036 50985 27998
simdjson 1216.14 12.2264 49908 39643.7
glaze 976.94 2.02196 47656 46502 1535.55 4.94272 47630 29568.6

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
simdjson 934.746 5.10577 35965 36796
jsonifier 912.266 3.52413 35313 36904.1 1737.39 5.73064 35118 19312.5
glaze 740.503 3.82133 34728 44710.4 1238.38 13.7265 34153 26773

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
simdjson 1452.52 22.0857 1065 685.2
jsonifier 774.996 10.8369 1179 1437.4 1795.85 11.3513 1110 587.45

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
simdjson 927.566 23.8136 514 512.35
jsonifier 513.615 9.38431 595 1077.15 1758.45 14.0074 749 408.25

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 Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1359.1 3.5075 50003 35089.5 1813.31 5.09791 52836 27812.6
glaze 866.01 8.91042 49788 55375.2 1362.45 4.90036 49704 34766.7
simdjson 863.667 7.53221 49924 55212.6

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 951.115 5.46898 33357 33493.8 1655.31 2.77663 34461 19839.6
simdjson 942.774 4.00984 33700 34127.1
glaze 746.8 3.22366 33975 43391.7 652.552 4.33876 35079 51356.3

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1948.83 3.23588 92442 45258.3 2204.11 3.81224 92442 40008.3
glaze 1382.46 3.98514 92442 63795.8 1951.93 2.78242 92442 45177.1
simdjson 1303.51 2.2783 92442 67643.7

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1295.09 1.97784 55353 40768.8 2293.31 2.56702 55353 23027.2
glaze 1228.52 4.24675 55353 43000.1 2266.74 2.28901 55353 23295.8
simdjson 843.797 2.12007 55353 62572.9

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1024.1 1.86744 6661897 6.20481e+06 1060.58 4.30406 6661897 5.99423e+06
glaze 1006.76 21.2261 6661897 6.3543e+06 497.006 23.7716 6661897 1.33255e+07
simdjson 966.709 11.9271 6661897 6.60853e+06

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
glaze 525.521 1.7944 2090234 3.79368e+06 709.455 2.3398 2090234 2.81049e+06
jsonifier 458.219 2.22517 2090234 4.35127e+06 585.083 9.75923 2090234 3.41433e+06
simdjson 348.38 2.94484 2090234 5.72321e+06

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1968.3 3.74988 1439562 697690 1916.98 2.78314 1439562 716513
simdjson 1418.37 5.18199 1423415 957987
glaze 1361.21 3.73058 1439584 1.00909e+06 1161.14 5.68448 1439584 1.18457e+06

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 842.682 5.36459 500299 566665 1303.95 5.3897 500299 366273
glaze 842.142 5.44891 500299 567104 1296.22 4.99964 500299 368673
simdjson 625.133 4.31039 492910 752565

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1612.73 4.70514 44653 26427.2 2888.86 5.65813 44653 14756.4
simdjson 645.128 11.5454 44653 66248.1

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1557.25 9.24191 37543 23031.1 3270.33 6.82509 37543 10954.2
simdjson 1495.95 11.7648 37543 24000

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1998.77 4.60747 414021 197900 1007.45 4.37047 414021 392202
simdjson 1463.12 4.35204 418582 273044
glaze 1461.7 3.0507 414021 270225 1508.41 4.64113 414021 261952

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


Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns) Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
jsonifier 1490.48 4.55664 277014 177475 3060.18 4.52054 277014 86422.9
glaze 1351.84 4.82621 277014 195556 2303.05 5.68609 277014 114933
simdjson 1006.3 2.44451 278407 263958

Library Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
glaze 1267.64 2.0296 466906 351308
jsonifier 1133.15 1.60774 466906 392979
simdjson 660.285 1.65364 466906 674429

Library Write (MB/S) Write Percentage Deviation (+/-%) Write Length (Bytes) Write Time (ns)
glaze 1577.28 5.58888 699405 423167
jsonifier 1523.01 4.41228 699405 438150

Library Read (MB/S) Read Percentage Deviation (+/-%) Read Length (Bytes) Read Time (ns)
jsonifier 2313.13 4.84582 631515 260444
glaze 2140.37 4.72459 631515 281446