diff --git a/docs/mkdocs/docs/home/blog/how_3_13_0_got_faster.md b/docs/mkdocs/docs/home/blog/how_3_13_0_got_faster.md index e1ec0b6fa..1f70449b7 100644 --- a/docs/mkdocs/docs/home/blog/how_3_13_0_got_faster.md +++ b/docs/mkdocs/docs/home/blog/how_3_13_0_got_faster.md @@ -23,8 +23,8 @@ that in debug builds, and a quarter to four fifths of it in optimized builds ([T This post is about *how*. None of the techniques is new: almost every one of them is borrowed from [simdjson](https://github.com/simdjson/simdjson), [yyjson](https://github.com/ibireme/yyjson), [fast_float](https://github.com/fastfloat/fast_float), [Żmij](https://github.com/vitaut/zmij), -[serde_json](https://github.com/serde-rs/json), [SQLite](https://sqlite.org), -[Boost.JSON](https://github.com/boostorg/json) or a textbook, and we name the source at each step. What we think is +[serde_json](https://github.com/serde-rs/json), [Glaze](https://github.com/stephenberry/glaze), +[SQLite](https://sqlite.org), [Boost.JSON](https://github.com/boostorg/json) or a textbook, and we name the source at each step. What we think is worth writing about is the combination, and the conditions it had to work under: a C++11 header-only library with a value type that is a template over its string, number, object and allocator types; input from strings, streams, `FILE*`, iterator pairs, wide strings and user-defined adapters; output that had to stay the same byte for byte; and @@ -322,7 +322,7 @@ The same kind of word test now runs in several places: ### 16 bytes with SSE2 and NEON Where a vector unit is part of the baseline instruction set (SSE2 on x86-64, NEON on -64-bit Arm), the string paths take 16 bytes per step. Two details are worth stealing. A signed comparison +64-bit Arm), the string paths take 16 bytes per step. Two well-known details are worth repeating. A signed comparison `byte < 0x20` catches control characters *and* every byte from 0x80, because those are negative as `int8_t`, so four classes of bytes take three comparisons. And NEON has no equivalent of x86's `pmovmskb`, which turns a vector of comparison results into a bit mask. The usual replacement, after @@ -372,7 +372,7 @@ per string and `jeopardy.json` 14. For them, setting up a scan costs more than t of [SQLite](https://sqlite.org/src/file/src/json.c)'s `jsonAppendString()`: check each byte of a string of up to 32 bytes against a 256-entry table of bytes that can be written unchanged, and copy the string in one go if they all pass. 32 bytes was the best threshold on the M1; 16 gained less, and 64 lost again. The second step replaced the table, where SSE2 or NEON is available, with -overlapping loads: +overlapping loads, the trick that `memcpy` implementations such as glibc's use for short copies: ```cpp // 16 <= n <= 32: two loads that overlap in the middle cover the whole string @@ -1137,6 +1137,10 @@ Which approach wins depends on the task, and a comparison of "parse" times acros different amounts of work. In nlohmann/json, `json` is the mutable tree and `json_document` the flat document, so we show the library twice: its best way *with* `json_document` and its best way *without* it. +A word on who set the rules: we wrote every library's benchmark code, chose the files and the rules, and tuned +3.13.0 on the same machines and files. No maintainer of the other libraries has reviewed their code. To check +ourselves, we also ran files and a conformance suite we never tuned on ([below](#files-and-checks-we-didnt-choose)). + ### Six use cases Each starts from the file's text in a `std::string` (or a byte slice in Rust) and ends with everything the library @@ -1182,8 +1186,8 @@ lazy reader such as simdjson's On-Demand API or Glaze's `lazy_json` only looks a rest, it matches brackets without looking inside, so reading a few fields of a large record costs little more than finding them. A minifier only needs to find whitespace, not understand the values. Skipping the UTF-8 check is RapidJSON's default and sonic-cpp's too. Each is a good choice for input that is known to be valid, for example text -your own program wrote a moment ago. To tell these ways apart, every way is also fed three broken inputs: the file cut -short by one byte, a stray comma, and an invalid UTF-8 byte in a string. A way that rejects all three validates fully, +your own program wrote a moment ago. To tell these ways apart, every way is also fed four broken inputs: the file cut +short by one byte, a stray comma, an invalid UTF-8 byte in a string, and garbage after the value. A way that rejects all four validates fully, and each cell shows the fastest such way. If a way that checks less is faster, it is shown in the right half of the cell: "U" trusts UTF-8, "P" reads lazily or only removes whitespace. @@ -1191,7 +1195,7 @@ cell: "U" trusts UTF-8, "P" reads lazily or only removes whitespace. --8<-- "images/perf_blog_usecases_mac.svg" -

Time per library and use case on an Apple M1 Max: each library's fastest fully validating way, as the geometric mean over `twitter.json`, `citm_catalog.json`, `canada.json` and `jeopardy.json`, relative to the fastest library, so that every file counts equally. Less is better. Where a way that checks less is at least 3 % faster, it is shown in the right half of the cell: "U" trusts UTF-8, "P" reads lazily or only removes whitespace. "n/a" means the library has no API for the use case. Hover over or tap a cell for the times per file and the way; the tables are in [Appendix E](#e-comparison-with-other-libraries).

+

Time per library and use case on an Apple M1 Max: each library's fastest fully validating way, as the geometric mean over `twitter.json`, `citm_catalog.json`, `canada.json` and `jeopardy.json`, relative to the fastest library, so that every file counts equally. Less is better. Where a way that checks less is at least 3 % faster, it is shown in the right half of the cell: "U" trusts UTF-8, "P" reads lazily or only removes whitespace. "n/a" means the library has no API for the use case. Hover over or tap a cell for the times per file and the way; the tables are in [Appendix E](#e-comparison-with-other-libraries). sonic-cpp's README lists only x86-64 Linux; we show it on the Mac anyway.

### Results on the Mac @@ -1205,32 +1209,41 @@ Some caveats belong next to that: and *select*. Most of the lead comes from the indentation of `citm_catalog.json`, the floats of `canada.json` (next point) and the size of `jeopardy.json`. - **Floats are converted only when read.** That helps `json_document` in *validate* and *select* on `canada.json`, - where the others convert 111,080 floats nobody looks at. *sum* reads every number, so it is the fair comparison for - floats; there, `json_document` is still slightly ahead of yyjson. + where most others convert 111,080 floats nobody looks at. Libraries that can skip the conversion use that mode + there, but only Boost.JSON gains much: it validates `canada.json` in half the time. *sum* reads every number, so it + is the fair comparison for floats; there, `json_document` is still slightly ahead of yyjson. Deferring integers + too saved `json_document` another 2 % on the Mac and 5 to 6 % on x86-64 in an experiment; that is not in 3.13.0. +- **Checking less pays in *select*.** If the input needn't be checked fully, simdjson's On-Demand API and Glaze + reading into structs select in 0.75 and 0.82 of `json_document`'s time, and in 0.53 to 0.58 on x86-64: the right + halves of the *select* column. +- **Indentation.** Two of the four files are indented, which theme 2 helps. On minified copies of + `twitter.json` and `citm_catalog.json`, yyjson comes closer (*validate* 1.15 → 1.08, *sum* 1.10 → 1.03), but + `json_document` stays first. - **Number text can be copied.** With [`number_format::source`](../../api/basic_json_view/number_format.md), `json_document` writes each number by copying its text instead of formatting it, and RapidJSON can read numbers as strings and write them back unchanged. That would make writing `canada.json` with `json_document` four times as fast. The figures use neither: every library formats the numbers it converted. - **Small documents.** On a 2.5 KB message, the fastest libraries take about a microsecond on the Mac and 1.5 to 2 - on x86-64. yyjson validates and sums - it slightly faster than `json_document` on the Mac, and yyjson and simdjson sum it slightly faster with GCC on - x86-64. + on x86-64. yyjson validates it as fast as `json_document` and sums it slightly faster on the Mac, and yyjson and + simdjson sum it slightly faster with GCC on x86-64. ### Reading into structs A view converts into your own types with the same [`from_json()`](../../features/arbitrary_types.md) as `json`, including the ones the [`NLOHMANN_DEFINE_TYPE_*`](../../api/macros/nlohmann_define_type_non_intrusive.md) macros generate. That is as fast as picking the fields by hand from the view; only -for the many small records of `jeopardy.json` does it take a quarter longer. On the Mac, Glaze and serde_json, reading into -the same structs and checking everything, take 1.7 and 2.2 times as long (geometric mean over the four files). On a `json` value, `from_json()` costs about what +for the many small records of `jeopardy.json` does it take about a fifth longer. On the Mac, Glaze, serde_json and +Boost.JSON's `parse_into`, reading into the same structs and checking everything, take 1.7, 2.3 and 3.1 times as long +(geometric mean over the four files). On a `json` value, `from_json()` costs about what `json::parse()` costs. ### nlohmann/json without `json_document` And nlohmann/json without `json_document`? `json` builds a tree of separate allocations, and it shows: for *select*, *edit* and *minify* it takes several times as long as `json_document`, like Boost.JSON and RapidJSON. Where -no tree is needed, it is closer: on the Mac, [`json::accept()`](../../api/basic_json/accept.md) and a SAX handler are on par with Boost.JSON (on x86-64, -Boost.JSON is 20 to 35 % faster there), and `dump()` writes faster than Boost.JSON, RapidJSON, Glaze and -serde_json. +no tree is needed, it is closer: on the Mac, a SAX handler is on par with Boost.JSON's, and +[`json::accept()`](../../api/basic_json/accept.md) takes 13 % longer than Boost.JSON without number conversion (on +x86-64, Boost.JSON validates in 0.57 to 0.59 and sums in 0.75 of the time). `dump()` writes faster than Boost.JSON, +RapidJSON and serde_json, and about as fast as Glaze. ### Results on x86-64 @@ -1246,27 +1259,48 @@ only about *sum*.

The same comparison on an x86-64 Haswell server with GCC 16.2, with the same cells and halves as the figure above. Less is better; hover over or tap a cell for the times and the way. The figures for GCC 13 and Clang 23 are in [Appendix E](#e-comparison-with-other-libraries).

-`json_document` is the fastest in five of the six columns with GCC and in all six with Clang. Behind those means, it -loses on single files: +`json_document` is the fastest in five of the six columns with GCC and in all six with Clang, where its lead in +*sum* (4 %) is within the noise of this machine. Behind those means, it loses on single files: - **One pass over every value, with GCC.** simdjson's On-Demand API sums all numbers of `twitter.json`, - `citm_catalog.json` and `canada.json` in 0.85 to 0.91 of `json_document`'s time with GCC 16. With Clang, `json_document` is - ahead there, except on `canada.json`, where yyjson, which converts the floats during the parse, is faster than - converting them on access, and simdjson is about as fast. + `citm_catalog.json` and `canada.json` in 0.87 to 0.91 of `json_document`'s time with GCC 16 (0.81 to 0.88 with + GCC 13). With Clang, `json_document` is ahead there, except on `canada.json`, where yyjson, which converts the + floats during the parse, is faster than converting them on access. - **Fresh large documents.** For the 56 MB `jeopardy.json`, a fresh document needs a fresh 52 MB index, and on Linux the page faults of that much new memory are a large part of the time: copying the file into fresh memory alone takes about half as long as `json_document`'s parse. Boost.JSON's SAX parser and sonic-rs, which build nothing, - validate and sum it in 0.63 to 0.77 of the time, and serde_json validates it in 0.85. Reusing the document cuts - `json_document`'s time by 40 to 47 %, and its `read()` then validates `jeopardy.json` faster than any of them. On the Mac, a - fresh document costs hardly more than a reused one. -- **Writing floats.** yyjson writes `canada.json` in 0.86 (GCC 16) to 0.93 (Clang) of the time, because + validate and sum it in 0.64 to 0.76 of the time, serde_json validates it in 0.79 to 0.82 and Glaze in 0.87 to 0.99. + Reusing the document cuts `json_document`'s time by 43 to 46 %, to 45 to 47 ms, and then no library validates + `jeopardy.json` faster, even reused: the next is simdjson's reused parser at 50 to 53 ms. On the Mac, a fresh + document costs hardly more than a reused one. +- **Writing floats.** yyjson writes `canada.json` in 0.88 (GCC 16) to 0.92 (Clang) of the time, because `json_document` first converts most floats from their text. Writing the source text instead (`number_format::source`) avoids that. -- **Within a few percent.** With GCC, simdjson's DOM validates or selects from `twitter.json` and - `citm_catalog.json` 1 to 4 % faster in some of the combinations. +- **simdjson's DOM, with GCC.** It validates `twitter.json` and `citm_catalog.json` 3 to 8 % faster, and selects + from `citm_catalog.json` 6 to 9 % faster; with Clang, the two are even. On minified copies of the two files, + `json_document` is ahead again. The full tables, with each library's variants, are in [Appendix E](#e-comparison-with-other-libraries). +### Files and checks we didn't choose { #files-and-checks-we-didnt-choose } + +The four files are the ones 3.13.0 was tuned on, so we also ran *validate*, *sum*, *minify* and *write* on the 19 +other files of simdjson's [`jsonexamples`](https://github.com/simdjson/simdjson-data/tree/master/jsonexamples). By +geometric mean, `json_document` stays the fastest in *validate*, *minify* and *write* on every compiler, and in *sum* +with Clang and on the Mac; with GCC, simdjson sums in 0.83 to 0.85 of its time. File by file, it is less +clear-cut: on x86-64, `json_document` validates only 4 to 8 of the 19 files fastest (13 on the Mac). simdjson wins 5 +to 8 of the others, and Boost.JSON, without number conversion, validates the number-heavy `mesh.pretty`, `numbers` +and `marine_ik` up to 1.5 times as fast. We know two causes, but so far each fix slowed down other files. + +Every *validate* way also ran the 318 files of [JSONTestSuite](https://github.com/nst/JSONTestSuite). The fully +validating ways pass, with a few exceptions listed in [Appendix E](#e-comparison-with-other-libraries), one of them +ours: nlohmann/json accepts `123` followed by a NUL byte, which it treats as the end of the input. The suite also +showed that Glaze's generic reader accepts garbage after the value by default, which our probes had missed; the +figures use its strict option. + +We did not measure memory use, a CPU with AVX-512, MSVC, writing from structs, streaming input, or link-time +optimization. + ## What didn't work The pull requests record the ideas that measured worse, which is as useful as the ones that made it: @@ -1702,34 +1736,50 @@ one binary with six code layouts: they were equal within 0.2 %. [`tests/benchmarks/json_view/others`](https://github.com/nlohmann/json/tree/develop/tests/benchmarks/json_view/others), whose README lists every variant, the pinned versions and checksums of every library, and the build commands. The libraries: [yyjson](https://github.com/ibireme/yyjson) 0.13.0, [simdjson](https://github.com/simdjson/simdjson) -4.6.11, [sonic-cpp](https://github.com/bytedance/sonic-cpp) 1.0.2, [RapidJSON](https://github.com/Tencent/rapidjson) -(master, 24b5e7a), [Glaze](https://github.com/stephenberry/glaze) 9.0.0, [Boost.JSON](https://github.com/boostorg/json) +5.0.8, [sonic-cpp](https://github.com/bytedance/sonic-cpp) 1.0.2, [RapidJSON](https://github.com/Tencent/rapidjson) +(master, 24b5e7a, as its last release is from 2016), [Glaze](https://github.com/stephenberry/glaze) 9.1.0, [Boost.JSON](https://github.com/boostorg/json) 1.92, and in Rust [sonic-rs](https://github.com/cloudwego/sonic-rs) 0.5.10, [simd-json](https://github.com/simd-lite/simd-json) 0.19.0 and [serde_json](https://github.com/serde-rs/json) 1.0.154. C++23 with `-O3`; on the Mac Apple clang 21 (the compiler of the current Xcode), on x86-64 GCC 16.2, GCC 13 (Ubuntu 24.04's default) and Clang 23 with `-march=haswell`, pinned to one core; Rust 1.99 with `-C target-cpu=haswell` on x86-64. Every -variant runs in every round, interleaved, each timed call after an untimed one; the time is the best of 2 × 30 rounds -(2 × 6 for `jeopardy.json`). Boost.JSON uses a monotonic resource and precise number parsing, RapidJSON -`kParseFullPrecisionFlag`, serde_json `float_roundtrip`: every library has to convert every number exactly. +variant runs in every round, in a new random order each round, each timed call after an untimed one; the time is the +best of 2 × 30 rounds (2 × 6 for `jeopardy.json`). Boost.JSON uses a monotonic resource and precise number parsing, +RapidJSON `kParseFullPrecisionFlag`, serde_json `float_roundtrip`: every number a library converts has to be exact. +That rule, like the others here, is our choice. -**Validation levels.** A way validates fully if it rejects all three broken inputs (cut short by one byte, a -stray comma, an invalid UTF-8 byte in a string); "U" accepts the invalid UTF-8 byte; "P" accepts one of the other -two. These three probes are not a conformance suite; they separate the ways that check everything from those that -check less. sonic-cpp 1.0.2 does not check UTF-8. RapidJSON does only with `kParseValidateEncodingFlag`, and +**Validation levels.** A way validates fully if it rejects all four broken inputs (cut short by one byte, a +stray comma, an invalid UTF-8 byte in a string, garbage after the value); "U" accepts the invalid UTF-8 byte; "P" +accepts one of the other three. The probes separate the ways that check everything from those that check less; +JSONTestSuite is the conformance check. sonic-cpp 1.0.2 does not check UTF-8. RapidJSON does only with `kParseValidateEncodingFlag`, and serde_json reading into `IgnoredAny` or structs from bytes doesn't check the strings it skips, unless the input is checked with `std::str::from_utf8` first; both are shown both ways. simdjson's On-Demand API, Glaze's `lazy_json`, -`simdjson::minify()` and Glaze's `minify_json()` don't validate what they skip, and Glaze's structs only with -`validate_skipped`. +`simdjson::minify()` and Glaze's `minify_json()` don't validate what they skip, Glaze's structs only with +`validate_skipped`, and Glaze's generic reader rejects garbage after the value only with +`validate_trailing_whitespace` (its strict variants also set `escape_control_characters`, without which it writes +control characters unescaped). + +**Conformance.** Every *validate* way ran the 318 files of [JSONTestSuite](https://github.com/nst/JSONTestSuite). No +way rejected a file that must be accepted. Of those that must be rejected, a few got through: `123` followed by a NUL +byte in nlohmann/json and RapidJSON (nlohmann/json treats NUL as the end of the input; for `json`, +[`JSON_STRICT_NUL_HANDLING`](../../api/macros/json_strict_nul_handling.md) changes that), an incomplete UTF-8 +byte-order mark in RapidJSON, an invalid `\u` escape in sonic-rs's `IgnoredAny`, and, in 17 files, garbage after the +value in Glaze's generic reader without `validate_trailing_whitespace`. sonic-rs, and RapidJSON's SAX reader with GCC +on x86-64, crash with a stack overflow on 100,000 nested arrays. Neither machine has AVX-512, so simdjson's fastest +kernel never ran, and yyjson and simdjson are compiled as separate files without link-time optimization, while the +header-only libraries inline into the benchmark. **Choices.** A library's time is its fastest fully validating way per file; "(U …)" and "(P …)" give a faster way that checks less. A cell of the figures is the geometric mean of a library's four times, divided by the smallest -such mean in its column. Variants that keep a parser or document across calls (simdjson's parsers, -`json_document::read()`) are measured but not chosen. Neither are variants that copy each number's text instead of -formatting it (`json_document` with `number_format::source`, RapidJSON with `kParseNumbersAsStringsFlag`); they matter -only for `canada.json` (`json_document`'s *write*: 398 µs instead of 1,621 µs on the Mac). nlohmann/json's struct -variants use the `NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE` macro, Glaze's and serde's their reflection and `derive`; all -three declare the same fields. +such mean in its column. Variants that keep a parser or document across calls are measured but not chosen; with +every library reused, the first place in each column stays the same. Variants that leave numbers +unconverted while reading are chosen where they pass the checks (yyjson's and RapidJSON's raw numbers, Boost.JSON's +`number_precision::none`). Variants that write each number by copying its text instead of formatting it are not +(`json_document` with `number_format::source`, yyjson's and RapidJSON's raw numbers); they matter only for +`canada.json` (`json_document`'s *write*: 398 µs instead of 1,617 µs on the Mac). Glaze's `generic` with `double` +numbers fails the checks wherever it has to write the 64-bit ids of `twitter.json`. The struct variants of +nlohmann/json, Glaze, simdjson and serde read into the same types; Boost.JSON's `parse_into` has no type that skips a +value, so it holds a little more.
--8<-- "images/perf_blog_usecases_x86-clang.svg" @@ -1749,96 +1799,96 @@ three declare the same fields. | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | accept, parse | 176 | 359 | 943 | 22,862 | 1.0 | - | yyjson | insitu (copy), read | 180 | 473 | 1,493 | 30,542 | 0.9 | - | simdjson | DOM | 221 | 493 | 2,104 | 27,311 | 1.1 | - | sonic-rs (Rust) | Value | 329 | 684 | 1,930 | 32,169 | 1.4 | - | Glaze | validate_json | 329 | 853 | 1,302 | 46,471 | 1.4 | - | simd-json (Rust) | tape (copy) | 304 | 709 | 2,286 | 39,592 | 1.7 | - | sonic-cpp | Document [U] | – (U 380) | – (U 982) | – (U 2,577) | – (U 41,571) | – (U 1.6) | - | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 457 (U 354) | 1,105 (U 1,052) | 1,532 (U 1,459) | 47,547 (U 44,881) | 2.0 (U 1.7) | - | nlohmann/json `json` | accept | 481 | 897 | 2,463 | 63,383 | 2.4 | - | Boost.JSON | SAX | 536 | 1,017 | 3,065 | 55,102 | 2.3 | - | RapidJSON | SAX, insitu (copy), insitu (copy) (no encoding check) [U] | 1,314 (U 704) | 1,568 (U 1,150) | 6,871 | 142,654 (U 65,584) | 6.1 (U 2.6) | + | **nlohmann/json `json_document`** | accept, parse | 176 | 360 | 959 | 22,553 | 0.9 | + | yyjson | insitu (copy), read | 178 | 471 | 1,486 | 30,278 | 0.9 | + | simdjson | DOM | 199 | 448 | 1,885 | 28,368 | 1.0 | + | sonic-rs (Rust) | Value | 326 | 681 | 1,939 | 31,450 | 1.4 | + | Glaze | validate_json | 329 | 854 | 1,302 | 44,972 | 1.4 | + | simd-json (Rust) | tape (copy) | 289 | 698 | 2,278 | 38,874 | 1.7 | + | sonic-cpp | Document [U] | – (U 379) | – (U 982) | – (U 2,575) | – (U 40,691) | – (U 1.6) | + | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 452 (U 354) | 1,103 (U 1,047) | 1,556 (U 1,451) | 46,517 (U 44,984) | 2.0 (U 1.7) | + | Boost.JSON | SAX, SAX (numbers: none) | 530 | 991 | 1,466 | 53,807 | 2.3 | + | nlohmann/json `json` | accept | 471 | 907 | 2,510 | 62,074 | 2.4 | + | RapidJSON | SAX, insitu (copy), insitu (copy) (no encoding check) [U] | 1,311 (U 695) | 1,568 (U 1,145) | 6,787 | 139,323 (U 63,152) | 6.1 (U 2.6) | **sum** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse | 226 | 480 | 1,804 | 29,208 | 1.2 | - | yyjson | insitu (copy), read | 229 | 573 | 1,937 | 37,916 | 1.1 | - | simdjson | DOM, On-Demand | 256 | 608 | 2,594 | 33,706 | 1.3 | - | sonic-rs (Rust) | visitor | 372 | 778 | 2,695 | 41,462 | 1.6 | - | simd-json (Rust) | visitor (copy) | 372 | 866 | 2,727 | 48,506 | 2.0 | - | sonic-cpp | Document [U] | – (U 427) | – (U 1,091) | – (U 2,976) | – (U 48,840) | – (U 1.9) | - | nlohmann/json `json` | sax | 461 | 928 | 3,100 | 63,272 | 2.5 | - | Boost.JSON | SAX | 537 | 1,020 | 3,046 | 54,818 | 2.3 | - | serde_json (Rust) | visitor | 665 | 1,229 | 4,813 | 66,093 | 2.5 | - | RapidJSON | SAX, insitu (copy), insitu (copy) (no encoding check) [U] | 1,331 (U 755) | 1,626 (U 1,258) | 6,924 | 149,474 (U 72,381) | 6.1 (U 2.9) | - | Glaze | generic, lazy_json [P] | 1,323 | 2,845 | 9,777 | 151,441 | 6.7 (P 3.5) | + | **nlohmann/json `json_document`** | parse | 225 | 482 | 1,818 | 28,721 | 1.2 | + | yyjson | insitu (copy), read | 230 | 570 | 1,931 | 37,534 | 1.1 | + | simdjson | DOM, On-Demand | 239 | 570 | 2,372 | 34,562 | 1.3 | + | sonic-rs (Rust) | visitor | 364 | 778 | 2,703 | 41,361 | 1.7 | + | simd-json (Rust) | visitor (copy) | 354 | 866 | 2,717 | 47,518 | 2.0 | + | sonic-cpp | Document [U] | – (U 428) | – (U 1,083) | – (U 2,956) | – (U 48,064) | – (U 1.9) | + | Boost.JSON | SAX | 533 | 1,005 | 3,029 | 53,595 | 2.3 | + | nlohmann/json `json` | sax | 461 | 930 | 3,127 | 62,756 | 2.5 | + | serde_json (Rust) | visitor | 652 | 1,242 | 4,772 | 66,568 | 2.5 | + | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 977 | 2,068 | 6,254 | 98,851 | 4.8 (P 3.5) | + | RapidJSON | SAX, insitu (copy), insitu (copy) (no encoding check) [U] | 1,311 (U 742) | 1,623 (U 1,256) | 6,913 | 145,744 (U 70,079) | 6.1 (U 2.9) | **select** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse, structs (from_json) | 187 | 367 | 987 | 24,409 | 1.0 | - | yyjson | insitu (copy), read | 188 | 481 | 1,493 | 33,546 | 1.1 | - | simdjson | DOM, On-Demand [P] | 231 (P 144) | 510 | 2,104 (P 646) | 32,075 (P 18,601) | 1.2 (P 0.8) | - | Glaze | structs (validate_skipped), structs [P] | 312 (P 238) | 873 (P 252) | 1,304 (P 316) | 51,046 (P 41,037) | 1.4 (P 1.1) | - | sonic-rs (Rust) | Value | 340 | 700 | 1,938 | 41,203 | 1.6 | - | sonic-cpp | Document [U] | – (U 385) | – (U 992) | – (U 2,590) | – (U 46,922) | – (U 1.7) | - | simd-json (Rust) | structs (copy) | 375 | 871 | 2,660 | 57,877 | 2.0 | - | serde_json (Rust) | from_utf8 + structs, structs [U] | 483 (U 416) | 1,121 (U 1,082) | 1,532 (U 1,458) | 63,635 | 2.2 (U 1.9) | - | Boost.JSON | parse | 889 | 1,490 | 3,632 | 96,757 | 3.8 | - | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,319 (U 703) | 1,572 (U 1,146) | 6,762 | 142,740 (U 66,763) | 6.4 (U 2.7) | - | nlohmann/json `json` | parse, structs (from_json) | 1,357 | 2,439 | 6,066 | 179,366 | 7.5 | + | **nlohmann/json `json_document`** | parse | 181 | 363 | 959 | 24,308 | 1.0 | + | yyjson | insitu (copy), read, read (raw numbers) | 188 | 476 | 1,488 | 32,182 | 1.1 | + | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P], On-Demand structs [P] | 197 (P 126) | 447 (P 352) | 1,882 (P 564) | 30,173 (P 19,313) | 1.1 (P 0.7) | + | Glaze | structs (validate_skipped), structs [P] | 311 (P 239) | 848 (P 253) | 1,302 (P 310) | 45,909 (P 36,348) | 1.4 (P 1.2) | + | sonic-rs (Rust) | Value | 333 | 691 | 1,936 | 40,660 | 1.7 | + | sonic-cpp | Document [U] | – (U 384) | – (U 989) | – (U 2,580) | – (U 45,320) | – (U 1.7) | + | simd-json (Rust) | structs (copy) | 364 | 914 | 2,657 | 57,697 | 2.1 | + | serde_json (Rust) | from_utf8 + structs, structs [U] | 480 (U 410) | 1,125 (U 1,084) | 1,560 (U 1,455) | 62,378 | 2.3 (U 1.9) | + | Boost.JSON | parse, parse_into structs | 620 | 1,206 | 3,619 | 66,538 | 2.7 | + | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,314 (U 697) | 1,574 (U 1,148) | 6,750 | 141,640 (U 65,799) | 6.4 (U 2.6) | + | nlohmann/json `json` | parse, structs (from_json) | 1,368 | 2,435 | 5,915 | 180,551 | 7.5 | **edit** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | editable | 290 | 560 | 2,742 | 58,265 | 1.9 | - | yyjson | insitu (copy) + mut copy, mut copy | 438 | 900 | 3,694 | 84,447 | 2.4 | - | sonic-cpp | Document [U] | – (U 490) | – (U 1,227) | – (U 5,655) | – (U 63,940) | – (U 2.6) | - | sonic-rs (Rust) | Value | 634 | 1,264 | 4,379 | 140,693 | 3.8 | - | simd-json (Rust) | borrowed (copy) | 934 | 2,111 | 7,695 | 111,832 | 5.3 | - | Boost.JSON | parse | 1,367 | 1,999 | 6,542 | 157,555 | 6.6 | - | nlohmann/json `json` | ordered_json, parse | 1,269 | 2,376 | 8,194 | 173,089 | 7.1 | - | Glaze | generic | 1,503 | 3,223 | 11,125 | 187,294 | 8.2 | - | RapidJSON | Document, insitu (copy), insitu (copy) (no encoding check) [U] | 1,917 (U 1,349) | 2,404 (U 1,987) | 13,880 | 224,650 (U 148,239) | 10.3 (U 6.5) | - | serde_json (Rust) | Value | 2,001 | 3,287 | 9,670 | 248,681 | 9.3 | + | **nlohmann/json `json_document`** | editable | 283 | 557 | 2,747 | 57,355 | 1.9 | + | yyjson | insitu (copy) + mut copy, mut copy | 438 | 897 | 3,681 | 83,160 | 2.4 | + | sonic-cpp | Document [U] | – (U 481) | – (U 1,220) | – (U 5,623) | – (U 62,390) | – (U 2.5) | + | sonic-rs (Rust) | Value | 634 | 1,257 | 4,396 | 140,936 | 3.8 | + | simd-json (Rust) | borrowed (copy) | 948 | 2,102 | 7,654 | 110,693 | 5.4 | + | Boost.JSON | parse | 1,363 | 1,995 | 6,500 | 154,406 | 6.5 | + | nlohmann/json `json` | ordered_json, parse | 1,270 | 2,337 | 8,183 | 173,044 | 7.0 | + | Glaze | generic (strict), generic [P] | 1,526 | 3,206 | 10,930 | 177,272 | 8.2 | + | RapidJSON | Document, insitu (copy), insitu (copy) (no encoding check) [U] | 1,914 (U 1,350) | 2,399 (U 1,974) | 13,711 | 220,629 (U 144,275) | 10.2 (U 6.4) | + | serde_json (Rust) | Value | 2,009 | 3,316 | 9,666 | 251,931 | 9.6 | **minify** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse + dump | 264 | 496 | 2,566 | 37,936 | 1.5 | - | yyjson | insitu (copy) + write, read + write | 289 | 640 | 3,213 | 50,740 | 1.6 | - | sonic-rs (Rust) | Value | 546 | 1,139 | 4,366 | 64,830 | 2.9 | - | sonic-cpp | Document + Serialize [U] | – (U 497) | – (U 1,219) | – (U 5,658) | – (U 61,948) | – (U 2.5) | - | simdjson | DOM + to_string, minify [P] | 590 (P 65.0) | 990 (P 178) | 8,949 (P 236) | 82,232 (P 5,929) | 3.7 (P 0.3) | - | simd-json (Rust) | borrowed (copy) | 959 | 2,097 | 7,743 | 107,444 | 5.4 | - | Boost.JSON | parse + serialize | 1,391 | 1,987 | 6,586 | 154,714 | 6.8 | - | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U] | 1,497 (U 1,310) | 1,797 (U 1,699) | 14,455 | 181,502 (U 167,920) | 8.0 (U 7.3) | - | nlohmann/json `json` | parse + dump | 1,592 | 2,694 | 8,280 | 200,923 | 8.5 | - | Glaze | generic, minify_json [P] | 1,488 (P 283) | 3,208 (P 740) | 11,076 (P 1,808) | 172,917 (P 39,976) | 7.8 (P 1.3) | - | serde_json (Rust) | Value | 1,999 | 3,240 | 9,748 | 227,301 | 9.2 | + | **nlohmann/json `json_document`** | parse + dump | 254 | 492 | 2,578 | 37,096 | 1.4 | + | yyjson | insitu (copy) + write, read + write | 289 | 635 | 3,209 | 50,039 | 1.6 | + | sonic-rs (Rust) | Value | 535 | 1,134 | 4,377 | 64,832 | 3.0 | + | sonic-cpp | Document + Serialize [U] | – (U 495) | – (U 1,218) | – (U 5,628) | – (U 60,548) | – (U 2.5) | + | simdjson | DOM + to_string, minify [P] | 567 (P 61.3) | 920 (P 168) | 5,026 (P 228) | 81,800 (P 5,682) | 3.6 (P 0.3) | + | simd-json (Rust) | borrowed (copy) | 952 | 2,111 | 7,658 | 108,130 | 5.5 | + | Boost.JSON | parse + serialize | 1,378 | 1,984 | 6,505 | 151,127 | 6.7 | + | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U] | 1,499 (U 1,300) | 1,797 (U 1,697) | 14,205 | 180,015 (U 164,086) | 8.0 (U 7.3) | + | nlohmann/json `json` | parse + dump | 1,599 | 2,716 | 8,185 | 201,407 | 8.7 | + | Glaze | generic (strict), minify_json [P] | 1,501 (P 279) | 3,179 (P 726) | 10,937 (P 1,705) | 168,733 (P 39,268) | 7.9 (P 1.3) | + | serde_json (Rust) | Value | 2,004 | 3,290 | 9,792 | 227,369 | 9.5 | **write** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | dump | 75.2 | 136 | 1,621 | 14,846 | 0.5 | - | yyjson | write | 104 | 164 | 1,717 | 20,119 | 0.7 | - | sonic-cpp | Serialize | 111 | 231 | 3,047 | 20,342 | 0.9 | - | nlohmann/json `json` | dump | 220 | 286 | 2,240 | 30,983 | 1.2 | - | Glaze | generic | 212 | 469 | 1,692 | 34,921 | 1.3 | - | sonic-rs (Rust) | Value | 214 | 454 | 2,414 | 33,358 | 1.4 | - | serde_json (Rust) | Value | 327 | 504 | 2,257 | 49,857 | 2.0 | - | simd-json (Rust) | borrowed | 364 | 496 | 2,723 | 48,114 | 1.8 | - | simdjson | to_string | 352 | 494 | 6,770 | 54,528 | 2.5 | - | Boost.JSON | serialize | 499 | 503 | 2,868 | 62,964 | 2.8 | - | RapidJSON | Writer | 592 | 818 | 6,947 | 81,580 | 3.8 | + | **nlohmann/json `json_document`** | dump | 72.6 | 133 | 1,617 | 14,444 | 0.5 | + | yyjson | write | 100 | 164 | 1,714 | 19,665 | 0.7 | + | sonic-cpp | Serialize | 110 | 232 | 3,038 | 20,165 | 0.8 | + | nlohmann/json `json` | dump | 216 | 287 | 2,235 | 31,197 | 1.2 | + | Glaze | generic | 210 | 469 | 1,696 | 33,710 | 1.3 | + | sonic-rs (Rust) | Value | 212 | 446 | 2,419 | 33,366 | 1.5 | + | serde_json (Rust) | Value | 322 | 490 | 2,286 | 49,967 | 2.0 | + | simd-json (Rust) | borrowed | 355 | 478 | 2,728 | 47,412 | 1.8 | + | simdjson | to_string | 342 | 450 | 3,141 | 52,878 | 2.5 | + | Boost.JSON | serialize | 498 | 501 | 2,876 | 62,385 | 2.8 | + | RapidJSON | Writer | 593 | 818 | 6,872 | 79,758 | 3.9 | ??? info "Times in µs on x86-64 with GCC 16.2" @@ -1846,96 +1896,96 @@ three declare the same fields. | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | accept, parse | 304 | 733 | 1,682 | 78,594 | 1.5 | - | sonic-rs (Rust) | IgnoredAny | 470 | 966 | 2,249 | 54,246 | 1.8 | - | simdjson | DOM | 302 | 705 | 3,176 | 114,180 | 1.8 | - | sonic-cpp | Document [U] | – (U 405) | – (U 935) | – (U 3,218) | – (U 95,565) | – (U 1.7) | - | yyjson | insitu (copy), read | 394 | 956 | 3,322 | 130,978 | 1.6 | - | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 634 (U 487) | 1,448 (U 1,370) | 2,402 (U 2,318) | 66,822 (U 59,801) | 2.4 (U 1.9) | - | Glaze | validate_json | 727 | 1,983 | 2,571 | 76,361 | 2.6 | - | Boost.JSON | SAX | 680 | 922 | 5,993 | 60,687 | 2.6 | - | simd-json (Rust) | tape (copy) | 592 | 1,426 | 4,303 | 211,716 | 2.8 | - | nlohmann/json `json` | accept | 817 | 1,614 | 4,402 | 92,387 | 4.1 | - | RapidJSON | SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,250 (U 1,098) | 1,910 (U 1,607) | 10,181 | 150,241 (U 143,546) | 5.3 (U 3.6) | + | **nlohmann/json `json_document`** | accept, parse | 310 | 732 | 1,685 | 80,224 | 1.5 | + | sonic-rs (Rust) | IgnoredAny | 482 | 969 | 2,489 | 55,486 | 1.8 | + | simdjson | DOM | 302 | 676 | 3,234 | 121,861 | 1.8 | + | yyjson | insitu (copy), read (raw numbers) | 397 | 935 | 2,151 | 135,866 | 1.6 | + | sonic-cpp | Document [U] | – (U 404) | – (U 921) | – (U 3,186) | – (U 100,732) | – (U 1.7) | + | Boost.JSON | SAX, SAX (numbers: none) | 680 | 909 | 1,642 | 60,757 | 2.9 | + | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 622 (U 480) | 1,440 (U 1,371) | 2,621 (U 2,538) | 65,602 (U 60,154) | 2.5 (U 1.9) | + | Glaze | validate_json | 714 | 1,975 | 2,544 | 79,737 | 2.5 | + | simd-json (Rust) | tape (copy) | 563 | 1,403 | 4,630 | 212,467 | 2.9 | + | nlohmann/json `json` | accept | 792 | 1,585 | 4,678 | 98,338 | 3.9 | + | RapidJSON | SAX (no encoding check) [U], SAX (raw numbers), insitu (copy), insitu (copy) (no encoding check) [U] | 1,254 (U 1,092) | 1,885 (U 1,589) | 10,363 | 161,392 (U 155,425) | 5.0 (U 3.5) | **sum** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | simdjson | On-Demand | 347 | 796 | 3,476 | 92,000 | 1.9 | - | **nlohmann/json `json_document`** | parse | 383 | 932 | 3,874 | 93,197 | 2.0 | - | sonic-rs (Rust) | visitor | 494 | 1,135 | 4,580 | 59,149 | 2.4 | - | sonic-cpp | Document [U] | – (U 462) | – (U 1,125) | – (U 3,867) | – (U 106,727) | – (U 2.1) | - | yyjson | insitu (copy), read | 448 | 1,094 | 3,955 | 136,684 | 1.9 | - | Boost.JSON | SAX | 668 | 934 | 5,692 | 62,486 | 2.7 | - | nlohmann/json `json` | sax | 790 | 1,624 | 5,671 | 93,964 | 3.9 | - | simd-json (Rust) | visitor (copy) | 722 | 1,686 | 5,191 | 220,582 | 3.8 | - | serde_json (Rust) | visitor | 1,318 | 2,299 | 7,610 | 123,810 | 4.3 | - | RapidJSON | SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,296 (U 1,145) | 2,011 (U 1,688) | 10,601 | 170,083 (U 157,809) | 5.3 (U 3.9) | - | Glaze | generic, lazy_json [P] | 2,940 | 5,528 | 17,830 | 390,814 (P 255,217) | 12.6 (P 6.3) | + | simdjson | On-Demand | 348 | 804 | 3,368 | 90,882 | 1.9 | + | **nlohmann/json `json_document`** | parse | 384 | 929 | 3,867 | 89,000 | 2.0 | + | sonic-rs (Rust) | visitor | 503 | 1,123 | 4,418 | 59,993 | 2.8 | + | sonic-cpp | Document [U] | – (U 462) | – (U 1,197) | – (U 3,854) | – (U 109,985) | – (U 2.1) | + | yyjson | insitu (copy), read | 450 | 1,101 | 3,944 | 140,178 | 1.9 | + | Boost.JSON | SAX | 688 | 1,020 | 5,676 | 61,670 | 3.0 | + | nlohmann/json `json` | sax | 801 | 1,705 | 5,532 | 94,952 | 4.0 | + | simd-json (Rust) | visitor (copy) | 668 | 1,688 | 5,134 | 224,411 | 4.0 | + | serde_json (Rust) | visitor | 1,311 | 2,316 | 7,241 | 130,249 | 5.1 | + | RapidJSON | SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,301 (U 1,141) | 2,166 (U 1,832) | 10,523 | 162,402 | 5.3 (U 3.8) | + | Glaze | generic (double, strict), lazy_json [P] | 2,410 | 4,407 | 10,384 | 285,204 (P 239,395) | 9.4 (P 6.3) | **select** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse, structs (from_json) | 325 | 784 | 1,686 | 91,622 | 1.6 | - | simdjson | DOM, On-Demand [P] | 315 (P 202) | 754 (P 642) | 3,190 (P 907) | 129,838 (P 50,352) | 1.9 (P 1.3) | - | sonic-rs (Rust) | structs | 557 | 1,023 | 2,247 | 91,996 | 2.0 | - | sonic-cpp | Document [U] | – (U 410) | – (U 952) | – (U 3,249) | – (U 106,866) | – (U 1.8) | - | yyjson | insitu (copy) | 403 | 1,011 | 3,268 | 139,623 | 1.7 | - | Glaze | structs (validate_skipped), structs [P] | 619 (P 360) | 2,238 (P 412) | 2,544 (P 433) | 96,608 (P 74,849) | 2.1 (P 1.5) | - | serde_json (Rust) | from_utf8 + structs, structs [U] | 769 | 1,504 | 2,442 (U 2,323) | 108,386 | 3.1 (U 3.0) | - | simd-json (Rust) | structs (copy) | 730 | 1,658 | 4,915 | 266,073 | 3.6 | - | Boost.JSON | parse | 1,326 | 1,871 | 6,892 | 196,136 | 6.1 | - | RapidJSON | Document (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,274 (U 1,098) | 2,060 | 10,432 | 165,343 (U 156,012) | 5.2 (U 3.7) | - | nlohmann/json `json` | parse, structs (from_json) | 3,643 | 6,199 | 11,694 | 605,646 | 14.5 | + | **nlohmann/json `json_document`** | parse | 327 | 752 | 1,684 | 91,119 | 1.7 | + | simdjson | DOM, On-Demand (key selectors) [P], On-Demand structs [P] | 337 (P 183) | 686 (P 483) | 3,191 (P 700) | 128,921 (P 49,265) | 1.9 (P 1.2) | + | yyjson | insitu (copy), read, read (raw numbers) | 445 | 956 | 2,139 | 143,238 | 1.8 | + | sonic-rs (Rust) | structs | 538 | 1,028 | 2,283 | 91,950 | 2.0 | + | sonic-cpp | Document [U] | – (U 409) | – (U 944) | – (U 3,172) | – (U 112,498) | – (U 1.8) | + | Glaze | structs (validate_skipped), structs [P] | 679 (P 355) | 1,971 (P 400) | 2,518 (P 430) | 89,804 (P 68,491) | 2.1 (P 1.5) | + | serde_json (Rust) | from_utf8 + structs, structs [U] | 722 | 1,559 | 2,585 (U 2,448) | 114,701 | 3.0 | + | Boost.JSON | parse, parse_into structs | 954 | 1,223 | 6,775 | 99,560 | 3.6 | + | simd-json (Rust) | structs (copy) | 740 | 1,802 | 4,997 | 258,566 | 3.7 | + | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,405 (U 1,218) | 1,895 | 10,256 | 165,022 (U 153,824) | 5.4 (U 4.0) | + | nlohmann/json `json` | parse, structs (from_json) | 3,693 | 5,596 | 11,689 | 601,495 | 13.9 | **edit** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | editable | 552 | 1,082 | 5,801 | 198,867 | 3.1 | - | sonic-cpp | Document [U] | – (U 629) | – (U 1,455) | – (U 8,594) | – (U 185,870) | – (U 3.5) | - | yyjson | insitu (copy) + mut copy, mut copy | 801 | 1,641 | 7,402 | 313,182 | 3.7 | - | sonic-rs (Rust) | Value | 1,189 | 2,384 | 8,007 | 413,714 | 6.6 | - | Boost.JSON | parse | 1,771 | 2,496 | 12,504 | 311,015 | 8.6 | - | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,983 (U 1,799) | 2,859 | 19,769 | 298,015 (U 286,231) | 9.0 (U 7.5) | - | simd-json (Rust) | borrowed (copy), owned (copy) | 2,071 | 4,465 | 16,360 | 416,658 | 9.0 | - | nlohmann/json `json` | ordered_json | 3,046 | 5,087 | 15,464 | 863,465 | 13.8 | - | Glaze | generic | 3,547 | 6,080 | 22,146 | 937,712 | 15.6 | - | serde_json (Rust) | Value | 4,474 | 6,922 | 18,301 | 805,290 | 21.2 | + | **nlohmann/json `json_document`** | editable | 531 | 1,081 | 5,914 | 174,422 | 3.4 | + | sonic-cpp | Document [U] | – (U 624) | – (U 1,445) | – (U 8,363) | – (U 188,709) | – (U 3.6) | + | yyjson | insitu (copy) + mut copy, mut copy | 798 | 1,645 | 7,430 | 297,562 | 4.1 | + | sonic-rs (Rust) | Value | 1,201 | 2,416 | 7,958 | 421,718 | 6.9 | + | Boost.JSON | parse | 1,755 | 2,482 | 12,291 | 331,024 | 9.5 | + | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,981 (U 1,824) | 2,969 (U 2,810) | 19,675 | 306,064 | 9.3 (U 7.6) | + | simd-json (Rust) | borrowed (copy), owned (copy) | 1,924 | 4,575 | 15,746 | 435,817 | 9.6 | + | nlohmann/json `json` | ordered_json | 2,914 | 5,182 | 15,284 | 842,581 | 14.8 | + | Glaze | generic (strict), generic [P] | 3,451 (P 3,332) | 6,457 (P 6,198) | 21,021 | 737,298 | 16.7 (P 16.1) | + | serde_json (Rust) | Value | 4,036 | 7,181 | 17,371 | 843,034 | 16.9 | **minify** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse + dump | 482 | 1,001 | 5,856 | 159,533 | 2.5 | - | yyjson | insitu (copy) + write, read + write | 658 | 1,268 | 6,934 | 210,677 | 2.9 | - | sonic-cpp | Document + Serialize [U] | – (U 633) | – (U 1,436) | – (U 8,992) | – (U 178,113) | – (U 3.3) | - | sonic-rs (Rust) | Value | 988 | 2,093 | 7,775 | 217,697 | 5.3 | - | simdjson | DOM + to_string, minify [P] | 799 (P 104) | 1,461 (P 246) | 15,173 (P 365) | 310,524 (P 47,397) | 4.7 (P 0.5) | - | Boost.JSON | parse + serialize | 1,803 | 2,480 | 13,545 | 324,721 | 8.7 | - | simd-json (Rust) | borrowed (copy) | 1,924 | 4,375 | 15,278 | 419,474 | 8.7 | - | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U] | 2,606 (U 1,820) | 2,810 (U 2,456) | 22,160 | 360,474 (U 277,281) | 13.6 (U 9.4) | - | Glaze | generic, minify_json [P] | 3,394 (P 419) | 6,016 (P 1,301) | 23,223 (P 2,832) | 512,061 (P 92,190) | 15.1 (P 1.9) | - | nlohmann/json `json` | parse + dump | 4,168 | 6,253 | 16,656 | 777,125 | 16.4 | - | serde_json (Rust) | Value | 4,081 | 6,880 | 17,249 | 615,033 | 18.4 | + | **nlohmann/json `json_document`** | parse + dump | 480 | 995 | 5,655 | 147,812 | 2.5 | + | yyjson | insitu (copy) + write, read + write | 622 | 1,264 | 6,624 | 198,884 | 2.9 | + | sonic-cpp | Document + Serialize [U] | – (U 633) | – (U 1,435) | – (U 8,404) | – (U 179,298) | – (U 3.3) | + | simdjson | DOM + to_string, minify [P] | 787 (P 104) | 1,300 (P 247) | 8,944 (P 367) | 295,041 (P 46,756) | 4.7 (P 0.5) | + | sonic-rs (Rust) | Value | 1,003 | 2,174 | 7,753 | 217,354 | 5.5 | + | Boost.JSON | parse + serialize | 1,772 | 2,495 | 12,783 | 304,037 | 8.5 | + | simd-json (Rust) | borrowed (copy) | 1,878 | 4,655 | 15,955 | 419,412 | 9.5 | + | RapidJSON | Document + Writer, Document + Writer (no encoding check) [U], SAX to Writer, SAX to Writer (no encoding check) [U] | 2,458 (U 1,764) | 2,873 (U 2,494) | 21,009 | 353,444 (U 271,282) | 13.5 (U 9.6) | + | Glaze | generic (strict), minify_json [P] | 3,332 (P 416) | 6,408 (P 1,298) | 21,303 (P 2,661) | 494,208 (P 93,101) | 15.0 (P 1.9) | + | nlohmann/json `json` | parse + dump | 3,822 | 6,431 | 15,804 | 737,629 | 15.2 | + | serde_json (Rust) | Value | 4,220 | 6,876 | 17,276 | 628,192 | 16.7 | **write** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | dump | 155 | 253 | 3,899 | 69,593 | 1.0 | - | yyjson | write | 190 | 320 | 3,349 | 69,582 | 1.2 | - | sonic-cpp | Serialize | 259 | 510 | 5,269 | 76,584 | 1.5 | - | nlohmann/json `json` | dump | 433 | 607 | 3,896 | 126,529 | 1.9 | - | Glaze | generic | 367 | 688 | 4,097 | 134,165 | 1.9 | - | sonic-rs (Rust) | Value | 442 | 935 | 3,954 | 100,889 | 2.6 | - | Boost.JSON | serialize | 454 | 835 | 5,468 | 132,656 | 2.5 | - | simd-json (Rust) | borrowed | 604 | 809 | 4,825 | 110,710 | 2.7 | - | serde_json (Rust) | Value | 563 | 882 | 3,979 | 120,716 | 2.9 | - | simdjson | to_string | 471 | 712 | 11,156 | 186,861 | 2.9 | - | RapidJSON | Writer | 653 | 978 | 9,071 | 138,832 | 4.0 | + | **nlohmann/json `json_document`** | dump | 154 | 252 | 3,864 | 67,299 | 0.9 | + | yyjson | write | 193 | 320 | 3,391 | 68,367 | 1.2 | + | sonic-cpp | Serialize | 260 | 508 | 5,333 | 73,212 | 1.4 | + | nlohmann/json `json` | dump | 431 | 605 | 3,894 | 116,689 | 1.9 | + | Glaze | generic, generic (strict) | 379 | 730 | 4,088 | 133,699 | 2.0 | + | Boost.JSON | serialize | 452 | 827 | 5,615 | 123,767 | 2.5 | + | sonic-rs (Rust) | Value | 445 | 931 | 4,048 | 104,487 | 2.8 | + | simdjson | to_string | 457 | 597 | 5,272 | 173,760 | 2.9 | + | simd-json (Rust) | borrowed | 597 | 809 | 4,817 | 114,245 | 3.1 | + | serde_json (Rust) | Value | 560 | 848 | 3,964 | 129,473 | 3.2 | + | RapidJSON | Writer | 649 | 974 | 9,080 | 129,698 | 3.7 | ??? info "Times in µs on x86-64 with GCC 13" @@ -1943,96 +1993,96 @@ three declare the same fields. | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | accept, parse | 325 | 742 | 1,699 | 84,790 | 1.6 | - | sonic-rs (Rust) | IgnoredAny | 470 | 966 | 2,249 | 54,246 | 1.8 | - | simdjson | DOM | 328 | 810 | 3,178 | 121,064 | 1.9 | - | Glaze | validate_json | 590 | 1,399 | 1,847 | 71,293 | 2.3 | - | sonic-cpp | Document [U] | – (U 425) | – (U 1,032) | – (U 3,618) | – (U 95,772) | – (U 1.8) | - | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 634 (U 487) | 1,448 (U 1,370) | 2,402 (U 2,318) | 66,822 (U 59,801) | 2.4 (U 1.9) | - | yyjson | insitu (copy), read | 390 | 995 | 5,320 | 132,598 | 1.7 | - | Boost.JSON | SAX | 738 | 1,007 | 5,465 | 59,249 | 3.2 | - | simd-json (Rust) | tape (copy) | 592 | 1,426 | 4,303 | 211,716 | 2.8 | - | nlohmann/json `json` | accept | 789 | 1,631 | 4,570 | 94,289 | 4.0 | - | RapidJSON | SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,638 (U 1,135) | 2,230 (U 1,666) | 11,264 | 209,691 (U 157,274) | 7.3 (U 3.8) | + | **nlohmann/json `json_document`** | accept, parse | 332 | 764 | 1,691 | 82,408 | 1.6 | + | sonic-rs (Rust) | IgnoredAny | 482 | 969 | 2,489 | 55,486 | 1.8 | + | yyjson | insitu (copy), read, read (raw numbers) | 393 | 988 | 2,211 | 131,844 | 1.6 | + | simdjson | DOM | 312 | 730 | 3,166 | 123,620 | 1.8 | + | sonic-cpp | Document [U] | – (U 407) | – (U 1,022) | – (U 3,560) | – (U 90,971) | – (U 1.6) | + | Glaze | validate_json | 597 | 1,407 | 1,844 | 71,646 | 2.3 | + | Boost.JSON | SAX, SAX (numbers: none) | 725 | 924 | 1,637 | 62,571 | 3.1 | + | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 622 (U 480) | 1,440 (U 1,371) | 2,621 (U 2,538) | 65,602 (U 60,154) | 2.5 (U 1.9) | + | simd-json (Rust) | tape (copy) | 563 | 1,403 | 4,630 | 212,467 | 2.9 | + | nlohmann/json `json` | accept | 783 | 1,619 | 4,621 | 98,860 | 3.9 | + | RapidJSON | SAX, SAX (no encoding check) [U], SAX (raw numbers), SAX (raw numbers) (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,651 (U 1,120) | 2,232 (U 1,660) | 10,380 | 210,972 (U 157,831) | 7.1 (U 3.8) | **sum** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | simdjson | On-Demand | 358 | 817 | 3,407 | 90,338 | 2.0 | - | **nlohmann/json `json_document`** | parse | 405 | 945 | 4,038 | 87,781 | 2.1 | - | sonic-rs (Rust) | visitor | 494 | 1,135 | 4,580 | 59,149 | 2.4 | - | sonic-cpp | Document [U] | – (U 482) | – (U 1,234) | – (U 4,412) | – (U 105,062) | – (U 2.2) | - | yyjson | insitu (copy) | 447 | 1,148 | 5,959 | 138,001 | 2.0 | - | Boost.JSON | SAX | 753 | 1,030 | 5,688 | 61,479 | 3.2 | - | nlohmann/json `json` | sax | 807 | 1,647 | 5,962 | 100,804 | 4.1 | - | simd-json (Rust) | visitor (copy) | 722 | 1,686 | 5,191 | 220,582 | 3.8 | - | serde_json (Rust) | visitor | 1,318 | 2,299 | 7,610 | 123,810 | 4.3 | - | RapidJSON | SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,679 (U 1,185) | 2,388 (U 1,768) | 11,030 | 216,612 (U 161,397) | 7.4 (U 4.1) | - | Glaze | generic, lazy_json [P] | 3,206 (P 2,948) | 5,928 | 20,405 (P 16,203) | 403,975 (P 231,683) | 13.5 (P 6.0) | + | simdjson | On-Demand | 360 | 819 | 3,269 | 95,622 | 2.0 | + | **nlohmann/json `json_document`** | parse | 410 | 960 | 4,026 | 91,857 | 2.1 | + | sonic-rs (Rust) | visitor | 503 | 1,123 | 4,418 | 59,993 | 2.8 | + | sonic-cpp | Document [U] | – (U 478) | – (U 1,234) | – (U 4,454) | – (U 109,509) | – (U 2.1) | + | yyjson | insitu (copy), read | 447 | 1,146 | 6,051 | 137,148 | 2.0 | + | Boost.JSON | SAX | 748 | 1,018 | 5,668 | 64,462 | 3.2 | + | nlohmann/json `json` | sax | 813 | 1,676 | 6,045 | 104,843 | 4.1 | + | simd-json (Rust) | visitor (copy) | 668 | 1,688 | 5,134 | 224,411 | 4.0 | + | serde_json (Rust) | visitor | 1,311 | 2,316 | 7,241 | 130,249 | 5.1 | + | RapidJSON | Document (no encoding check) [U], SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,679 (U 1,175) | 2,311 (U 1,740) | 11,995 | 226,217 (U 167,558) | 7.4 (U 4.1) | + | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 2,399 | 4,212 | 11,369 | 307,211 (P 236,277) | 9.8 (P 6.2) | **select** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse, structs (from_json) | 347 | 763 | 1,700 | 98,540 | 1.7 | - | sonic-rs (Rust) | structs | 557 | 1,023 | 2,247 | 91,996 | 2.0 | - | simdjson | DOM, On-Demand [P] | 337 (P 211) | 837 (P 804) | 3,283 (P 1,138) | 134,701 (P 51,878) | 2.1 (P 1.4) | - | Glaze | structs (validate_skipped), structs [P] | 539 (P 348) | 1,475 (P 408) | 1,850 (P 449) | 99,194 (P 77,565) | 1.9 (P 1.5) | - | sonic-cpp | Document [U] | – (U 419) | – (U 1,044) | – (U 3,675) | – (U 111,999) | – (U 1.9) | - | yyjson | insitu (copy), read | 408 | 996 | 5,375 | 142,713 | 1.8 | - | serde_json (Rust) | from_utf8 + structs, structs [U] | 769 | 1,504 | 2,442 (U 2,323) | 108,386 | 3.1 (U 3.0) | - | simd-json (Rust) | structs (copy) | 730 | 1,658 | 4,915 | 266,073 | 3.6 | - | Boost.JSON | parse | 1,605 | 1,903 | 7,605 | 214,973 | 6.7 | - | RapidJSON | Document, Document (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,779 (U 1,194) | 2,257 (U 1,923) | 12,214 | 226,825 (U 175,262) | 7.2 (U 3.9) | - | nlohmann/json `json` | parse, structs (from_json) | 3,523 | 5,534 | 12,684 | 623,070 | 13.6 | + | **nlohmann/json `json_document`** | parse, structs (from_json) | 361 | 788 | 1,693 | 92,200 | 1.8 | + | yyjson | read, read (raw numbers) | 404 | 1,000 | 2,214 | 139,234 | 1.8 | + | sonic-rs (Rust) | structs | 538 | 1,028 | 2,283 | 91,950 | 2.0 | + | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P] | 348 (P 190) | 740 (P 498) | 3,170 (P 726) | 124,766 (P 49,901) | 2.2 (P 1.3) | + | Glaze | structs (validate_skipped), structs [P] | 595 (P 340) | 1,500 (P 403) | 1,854 (P 447) | 86,510 (P 68,532) | 2.1 (P 1.5) | + | sonic-cpp | Document [U] | – (U 453) | – (U 1,041) | – (U 3,639) | – (U 106,529) | – (U 1.9) | + | serde_json (Rust) | from_utf8 + structs, structs [U] | 722 | 1,559 | 2,585 (U 2,448) | 114,701 | 3.0 | + | Boost.JSON | parse_into structs | 973 | 1,358 | 6,913 | 103,145 | 4.2 | + | simd-json (Rust) | structs (copy) | 740 | 1,802 | 4,997 | 258,566 | 3.7 | + | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,703 (U 1,176) | 2,297 (U 1,915) | 11,423 | 217,155 (U 171,258) | 8.2 (U 4.3) | + | nlohmann/json `json` | parse, structs (from_json) | 3,609 | 5,673 | 12,031 | 607,902 | 14.4 | **edit** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | editable | 552 | 1,112 | 6,027 | 203,217 | 3.3 | - | sonic-cpp | Document [U] | – (U 663) | – (U 1,572) | – (U 8,879) | – (U 181,438) | – (U 3.6) | - | yyjson | insitu (copy) + mut copy, mut copy | 810 | 1,724 | 9,806 | 322,621 | 3.8 | - | sonic-rs (Rust) | Value | 1,189 | 2,384 | 8,007 | 413,714 | 6.6 | - | Boost.JSON | parse | 2,026 | 2,943 | 13,352 | 337,632 | 9.4 | - | simd-json (Rust) | borrowed (copy), owned (copy) | 2,071 | 4,465 | 16,360 | 416,658 | 9.0 | - | RapidJSON | Document (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 2,511 (U 1,896) | 3,310 (U 2,942) | 20,627 | 362,717 (U 314,375) | 11.6 (U 7.9) | - | nlohmann/json `json` | ordered_json | 3,156 | 5,280 | 16,247 | 922,463 | 15.0 | - | Glaze | generic | 3,767 | 6,532 | 24,351 | 940,280 | 16.2 | - | serde_json (Rust) | Value | 4,474 | 6,922 | 18,301 | 805,290 | 21.2 | + | **nlohmann/json `json_document`** | editable | 630 | 1,128 | 5,910 | 184,135 | 3.5 | + | sonic-cpp | Document [U] | – (U 662) | – (U 1,560) | – (U 8,647) | – (U 191,340) | – (U 3.5) | + | yyjson | insitu (copy) + mut copy, mut copy | 824 | 1,729 | 9,727 | 299,300 | 3.8 | + | sonic-rs (Rust) | Value | 1,201 | 2,416 | 7,958 | 421,718 | 6.9 | + | Boost.JSON | parse | 2,086 | 2,928 | 13,189 | 340,875 | 9.8 | + | simd-json (Rust) | borrowed (copy), owned (copy) | 1,924 | 4,575 | 15,746 | 435,817 | 9.6 | + | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 2,588 (U 2,120) | 3,273 (U 2,905) | 20,202 | 363,265 (U 307,430) | 12.0 (U 8.4) | + | nlohmann/json `json` | ordered_json, parse | 3,222 | 5,204 | 16,070 | 855,263 | 15.2 | + | serde_json (Rust) | Value | 4,036 | 7,181 | 17,371 | 843,034 | 16.9 | + | Glaze | generic (strict), generic [P] | 4,023 (P 3,901) | 6,662 | 23,242 | 724,016 | 18.0 | **minify** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse + dump | 497 | 1,028 | 5,930 | 156,014 | 2.6 | - | yyjson | insitu (copy) + write, read + write | 657 | 1,326 | 9,202 | 195,618 | 3.1 | - | sonic-cpp | Document + Serialize [U] | – (U 667) | – (U 1,568) | – (U 9,007) | – (U 174,144) | – (U 3.5) | - | sonic-rs (Rust) | Value | 988 | 2,093 | 7,775 | 217,697 | 5.3 | - | simdjson | DOM + to_string, minify [P] | 839 (P 128) | 1,588 (P 322) | 14,645 (P 469) | 292,317 (P 50,456) | 4.9 (P 0.6) | - | Boost.JSON | parse + serialize | 1,931 | 2,902 | 13,756 | 328,321 | 9.8 | - | simd-json (Rust) | borrowed (copy) | 1,924 | 4,375 | 15,278 | 419,474 | 8.7 | - | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U] | 2,963 (U 1,872) | 3,189 (U 2,490) | 21,761 | 406,899 (U 282,973) | 15.7 (U 11.1) | - | Glaze | generic, minify_json [P] | 3,647 (P 428) | 6,503 (P 1,144) | 25,082 (P 2,468) | 546,003 (P 94,867) | 16.1 (P 2.0) | - | nlohmann/json `json` | parse + dump | 3,980 | 6,495 | 17,573 | 730,814 | 16.5 | - | serde_json (Rust) | Value | 4,081 | 6,880 | 17,249 | 615,033 | 18.4 | + | **nlohmann/json `json_document`** | parse + dump | 503 | 1,045 | 5,569 | 156,948 | 2.6 | + | yyjson | insitu (copy) + write, read + write | 605 | 1,323 | 9,272 | 200,777 | 3.0 | + | sonic-cpp | Document + Serialize [U] | – (U 640) | – (U 1,558) | – (U 8,901) | – (U 175,992) | – (U 3.2) | + | simdjson | DOM + to_string, minify [P] | 792 (P 128) | 1,348 (P 331) | 8,324 (P 464) | 290,206 (P 47,486) | 4.7 (P 0.6) | + | sonic-rs (Rust) | Value | 1,003 | 2,174 | 7,753 | 217,354 | 5.5 | + | Boost.JSON | parse + serialize | 1,911 | 2,840 | 13,417 | 307,134 | 9.2 | + | simd-json (Rust) | borrowed (copy) | 1,878 | 4,655 | 15,955 | 419,412 | 9.5 | + | RapidJSON | Document + Writer, Document + Writer (no encoding check) [U], SAX to Writer, SAX to Writer (no encoding check) [U] | 2,733 (U 1,855) | 3,088 (U 2,516) | 21,466 (U 20,678) | 410,160 (U 295,852) | 15.2 (U 10.1) | + | nlohmann/json `json` | parse + dump | 3,741 | 6,096 | 16,580 | 721,380 | 15.1 | + | Glaze | generic (strict), minify_json [P] | 3,520 (P 425) | 6,525 (P 1,142) | 24,118 (P 2,391) | 500,684 (P 97,583) | 15.6 (P 2.0) | + | serde_json (Rust) | Value | 4,220 | 6,876 | 17,276 | 628,192 | 16.7 | **write** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | dump | 153 | 271 | 3,934 | 72,106 | 0.9 | - | yyjson | write | 216 | 331 | 3,620 | 76,733 | 1.2 | - | sonic-cpp | Serialize | 270 | 533 | 5,100 | 80,556 | 1.5 | - | Glaze | generic | 364 | 712 | 4,265 | 143,981 | 1.9 | - | nlohmann/json `json` | dump | 441 | 628 | 4,091 | 129,455 | 2.0 | - | sonic-rs (Rust) | Value | 442 | 935 | 3,954 | 100,889 | 2.6 | - | simd-json (Rust) | borrowed | 604 | 809 | 4,825 | 110,710 | 2.7 | - | serde_json (Rust) | Value | 563 | 882 | 3,979 | 120,716 | 2.9 | - | Boost.JSON | serialize | 478 | 1,015 | 5,750 | 137,840 | 2.5 | - | simdjson | to_string | 491 | 750 | 10,840 | 196,092 | 2.9 | - | RapidJSON | Writer | 746 | 1,032 | 8,773 | 150,334 | 4.3 | + | **nlohmann/json `json_document`** | dump | 153 | 272 | 3,979 | 68,836 | 0.9 | + | yyjson | write | 180 | 330 | 3,620 | 70,502 | 1.2 | + | sonic-cpp | Serialize | 262 | 532 | 5,268 | 74,547 | 1.4 | + | Glaze | generic | 336 | 663 | 3,685 | 127,928 | 1.8 | + | nlohmann/json `json` | dump | 440 | 636 | 4,063 | 119,266 | 2.0 | + | sonic-rs (Rust) | Value | 445 | 931 | 4,048 | 104,487 | 2.8 | + | simdjson | to_string | 451 | 598 | 5,334 | 174,144 | 2.8 | + | Boost.JSON | serialize | 459 | 1,012 | 6,253 | 126,330 | 2.4 | + | simd-json (Rust) | borrowed | 597 | 809 | 4,817 | 114,245 | 3.1 | + | serde_json (Rust) | Value | 560 | 848 | 3,964 | 129,473 | 3.2 | + | RapidJSON | Writer | 688 | 1,020 | 9,144 | 138,466 | 3.9 | ??? info "Times in µs on x86-64 with Clang 23" @@ -2040,96 +2090,96 @@ three declare the same fields. | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | accept, parse | 302 | 720 | 1,784 | 81,370 | 1.5 | - | sonic-rs (Rust) | IgnoredAny | 470 | 966 | 2,249 | 54,246 | 1.8 | - | simdjson | DOM | 311 | 736 | 3,343 | 115,626 | 1.8 | - | yyjson | insitu (copy), read | 379 | 896 | 2,851 | 124,180 | 1.6 | - | sonic-cpp | Document [U] | – (U 450) | – (U 1,026) | – (U 3,140) | – (U 98,200) | – (U 2.0) | - | Glaze | validate_json | 621 | 1,402 | 1,806 | 76,164 | 2.6 | - | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 634 (U 487) | 1,448 (U 1,370) | 2,402 (U 2,318) | 66,822 (U 59,801) | 2.4 (U 1.9) | - | Boost.JSON | SAX | 596 | 923 | 6,234 | 56,654 | 2.4 | - | nlohmann/json `json` | accept | 746 | 1,424 | 4,201 | 100,878 | 4.1 | - | simd-json (Rust) | tape (copy) | 592 | 1,426 | 4,303 | 211,716 | 2.8 | - | RapidJSON | SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,845 (U 1,227) | 2,150 (U 1,665) | 11,719 | 233,417 (U 156,744) | 8.6 (U 4.3) | + | **nlohmann/json `json_document`** | accept, parse | 305 | 715 | 2,019 | 83,361 | 1.4 | + | sonic-rs (Rust) | IgnoredAny | 482 | 969 | 2,489 | 55,486 | 1.8 | + | Boost.JSON | SAX, SAX (numbers: none) | 568 | 903 | 1,896 | 56,244 | 2.3 | + | yyjson | insitu (copy), read, read (raw numbers) | 380 | 918 | 2,533 | 126,565 | 1.6 | + | simdjson | DOM | 306 | 713 | 3,652 | 121,820 | 1.8 | + | sonic-cpp | Document [U] | – (U 450) | – (U 1,007) | – (U 3,351) | – (U 99,056) | – (U 1.9) | + | Glaze | validate_json | 617 | 1,370 | 1,990 | 81,604 | 2.5 | + | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 622 (U 480) | 1,440 (U 1,371) | 2,621 (U 2,538) | 65,602 (U 60,154) | 2.5 (U 1.9) | + | nlohmann/json `json` | accept | 736 | 1,417 | 4,605 | 95,644 | 4.0 | + | simd-json (Rust) | tape (copy) | 563 | 1,403 | 4,630 | 212,467 | 2.9 | + | RapidJSON | SAX, SAX (no encoding check) [U], SAX (raw numbers), SAX (raw numbers) (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,815 (U 1,174) | 2,123 (U 1,663) | 11,775 | 237,714 (U 161,724) | 8.4 (U 4.1) | **sum** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse | 378 | 891 | 4,151 | 89,689 | 1.9 | - | simdjson | DOM, On-Demand | 399 | 946 | 4,100 | 120,056 | 2.2 | - | sonic-rs (Rust) | visitor | 494 | 1,135 | 4,580 | 59,149 | 2.4 | - | yyjson | insitu (copy), read | 435 | 1,048 | 3,467 | 135,382 | 1.9 | - | Boost.JSON | SAX | 582 | 927 | 5,935 | 56,310 | 2.4 | - | sonic-cpp | Document [U] | – (U 504) | – (U 1,180) | – (U 3,736) | – (U 110,324) | – (U 2.2) | - | nlohmann/json `json` | sax | 784 | 1,466 | 5,345 | 101,437 | 4.1 | - | simd-json (Rust) | visitor (copy) | 722 | 1,686 | 5,191 | 220,582 | 3.8 | - | serde_json (Rust) | visitor | 1,318 | 2,299 | 7,610 | 123,810 | 4.3 | - | RapidJSON | SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,869 (U 1,237) | 2,172 (U 1,770) | 12,183 | 253,075 (U 163,826) | 8.4 (U 4.4) | - | Glaze | generic, lazy_json [P] | 3,890 (P 2,829) | 7,282 | 25,798 (P 17,578) | 501,805 (P 223,672) | 16.7 (P 5.9) | + | **nlohmann/json `json_document`** | parse | 373 | 893 | 4,353 | 89,554 | 1.9 | + | simdjson | DOM, On-Demand | 396 | 969 | 4,454 | 115,048 | 2.3 | + | yyjson | insitu (copy), read | 437 | 1,091 | 3,587 | 135,079 | 1.9 | + | sonic-rs (Rust) | visitor | 503 | 1,123 | 4,418 | 59,993 | 2.8 | + | Boost.JSON | SAX | 582 | 927 | 6,356 | 57,388 | 2.4 | + | sonic-cpp | Document [U] | – (U 506) | – (U 1,208) | – (U 4,034) | – (U 107,937) | – (U 2.3) | + | nlohmann/json `json` | sax | 750 | 1,488 | 5,684 | 95,696 | 4.1 | + | simd-json (Rust) | visitor (copy) | 668 | 1,688 | 5,134 | 224,411 | 4.0 | + | serde_json (Rust) | visitor | 1,311 | 2,316 | 7,241 | 130,249 | 5.1 | + | RapidJSON | SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,866 (U 1,233) | 2,308 (U 1,863) | 13,209 | 251,431 (U 169,921) | 8.5 (U 4.4) | + | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 2,516 | 4,350 | 13,015 | 311,560 (P 215,314) | 10.1 (P 6.0) | **select** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse, structs (from_json) | 324 | 728 | 1,784 | 89,731 | 1.6 | - | simdjson | DOM, On-Demand [P] | 330 (P 210) | 743 (P 610) | 3,291 (P 861) | 129,470 (P 48,548) | 2.0 (P 1.3) | - | yyjson | insitu (copy), read | 387 | 900 | 2,814 | 139,634 | 1.7 | - | sonic-rs (Rust) | structs | 557 | 1,023 | 2,247 | 91,996 | 2.0 | - | Glaze | structs (validate_skipped), structs [P] | 560 (P 345) | 1,329 (P 424) | 1,780 (P 463) | 93,674 (P 76,186) | 2.2 (P 1.7) | - | sonic-cpp | Document [U] | – (U 461) | – (U 1,024) | – (U 3,030) | – (U 109,906) | – (U 2.0) | - | serde_json (Rust) | from_utf8 + structs, structs [U] | 769 | 1,504 | 2,442 (U 2,323) | 108,386 | 3.1 (U 3.0) | - | simd-json (Rust) | structs (copy) | 730 | 1,658 | 4,915 | 266,073 | 3.6 | - | Boost.JSON | parse | 1,264 | 1,659 | 7,173 | 202,456 | 5.9 | - | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,901 (U 1,251) | 2,329 (U 1,936) | 11,814 | 251,223 (U 181,144) | 8.2 (U 4.3) | - | nlohmann/json `json` | parse, structs (from_json) | 3,654 | 5,494 | 11,583 | 641,176 | 15.2 | + | **nlohmann/json `json_document`** | parse | 324 | 729 | 1,795 | 94,289 | 1.6 | + | yyjson | insitu (copy), read (raw numbers) | 395 | 934 | 2,374 | 135,642 | 1.7 | + | simdjson | DOM, On-Demand [P] | 341 (P 186) | 723 (P 487) | 3,231 (P 703) | 128,975 (P 49,244) | 1.9 (P 1.3) | + | sonic-rs (Rust) | structs | 538 | 1,028 | 2,283 | 91,950 | 2.0 | + | Glaze | structs (validate_skipped), structs [P] | 563 (P 340) | 1,270 (P 412) | 1,790 (P 460) | 91,224 (P 70,238) | 2.2 (P 1.7) | + | sonic-cpp | Document [U] | – (U 486) | – (U 1,024) | – (U 3,201) | – (U 113,041) | – (U 2.1) | + | serde_json (Rust) | from_utf8 + structs, structs [U] | 722 | 1,559 | 2,585 (U 2,448) | 114,701 | 3.0 | + | Boost.JSON | parse, parse_into structs | 850 | 1,400 | 7,389 | 100,054 | 3.3 | + | simd-json (Rust) | structs (copy) | 740 | 1,802 | 4,997 | 258,566 | 3.7 | + | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,893 (U 1,189) | 2,322 (U 1,944) | 11,855 | 255,774 (U 189,496) | 8.4 (U 4.2) | + | nlohmann/json `json` | parse, structs (from_json) | 3,825 | 5,475 | 12,002 | 639,061 | 16.0 | **edit** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | editable | 534 | 1,100 | 5,935 | 208,247 | 3.0 | - | sonic-cpp | Document [U] | – (U 644) | – (U 1,508) | – (U 7,972) | – (U 184,491) | – (U 3.2) | - | yyjson | insitu (copy) + mut copy, mut copy | 912 | 1,686 | 7,407 | 318,770 | 4.0 | - | sonic-rs (Rust) | Value | 1,189 | 2,384 | 8,007 | 413,714 | 6.6 | - | Boost.JSON | parse | 1,722 | 2,614 | 12,953 | 346,073 | 8.5 | - | simd-json (Rust) | borrowed (copy), owned (copy) | 2,071 | 4,465 | 16,360 | 416,658 | 9.0 | - | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 2,565 (U 1,902) | 3,328 (U 2,859) | 22,449 (U 21,667) | 378,036 (U 321,177) | 11.8 (U 7.8) | - | nlohmann/json `json` | ordered_json, parse | 3,058 | 5,099 | 16,378 | 920,570 | 14.7 | - | serde_json (Rust) | Value | 4,474 | 6,922 | 18,301 | 805,290 | 21.2 | - | Glaze | generic | 4,278 | 7,989 | 30,869 | 1,095,800 | 19.5 | + | **nlohmann/json `json_document`** | editable | 523 | 1,093 | 6,109 | 179,999 | 3.0 | + | sonic-cpp | Document [U] | – (U 645) | – (U 1,481) | – (U 7,924) | – (U 185,114) | – (U 3.4) | + | yyjson | insitu (copy) + mut copy, mut copy | 816 | 1,710 | 7,258 | 296,347 | 3.9 | + | sonic-rs (Rust) | Value | 1,201 | 2,416 | 7,958 | 421,718 | 6.9 | + | Boost.JSON | parse | 1,725 | 2,594 | 13,178 | 343,065 | 8.5 | + | simd-json (Rust) | borrowed (copy), owned (copy) | 1,924 | 4,575 | 15,746 | 435,817 | 9.6 | + | RapidJSON | Document (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 2,486 (U 1,852) | 3,253 (U 2,889) | 21,592 | 397,189 (U 301,007) | 12.0 (U 7.9) | + | nlohmann/json `json` | ordered_json, parse | 2,810 | 5,096 | 16,935 | 864,150 | 14.4 | + | serde_json (Rust) | Value | 4,036 | 7,181 | 17,371 | 843,034 | 16.9 | + | Glaze | generic (strict), generic [P] | 4,192 | 8,087 | 30,621 | 868,944 | 20.1 | **minify** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse + dump | 474 | 993 | 5,445 | 153,155 | 2.4 | - | yyjson | insitu (copy) + write, read + write | 625 | 1,256 | 6,261 | 212,043 | 3.1 | - | sonic-cpp | Document + Serialize [U] | – (U 647) | – (U 1,487) | – (U 7,924) | – (U 182,940) | – (U 3.2) | - | sonic-rs (Rust) | Value | 988 | 2,093 | 7,775 | 217,697 | 5.3 | - | simdjson | DOM + to_string, minify [P] | 857 (P 103) | 1,543 (P 256) | 16,516 (P 373) | 326,881 (P 51,243) | 5.1 (P 0.5) | - | Boost.JSON | parse + serialize | 1,758 | 2,553 | 12,744 | 358,018 | 9.0 | - | simd-json (Rust) | borrowed (copy) | 1,924 | 4,375 | 15,278 | 419,474 | 8.7 | - | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U] | 2,465 (U 1,928) | 2,829 (U 2,416) | 22,132 | 374,258 (U 269,637) | 13.2 (U 9.5) | - | nlohmann/json `json` | parse + dump | 4,037 | 6,081 | 16,349 | 771,912 | 17.0 | - | serde_json (Rust) | Value | 4,081 | 6,880 | 17,249 | 615,033 | 18.4 | - | Glaze | generic, minify_json [P] | 4,215 (P 418) | 7,644 (P 1,062) | 29,762 (P 2,150) | 683,744 (P 93,265) | 18.7 (P 2.0) | + | **nlohmann/json `json_document`** | parse + dump | 472 | 993 | 5,467 | 152,456 | 2.5 | + | yyjson | insitu (copy) + write, read + write | 626 | 1,290 | 6,113 | 196,773 | 3.1 | + | sonic-cpp | Document + Serialize [U] | – (U 653) | – (U 1,491) | – (U 7,777) | – (U 172,744) | – (U 3.2) | + | simdjson | DOM + to_string, minify [P] | 824 (P 103) | 1,419 (P 256) | 8,134 (P 373) | 305,008 (P 47,751) | 4.9 (P 0.5) | + | sonic-rs (Rust) | Value | 1,003 | 2,174 | 7,753 | 217,354 | 5.5 | + | Boost.JSON | parse + serialize | 1,738 | 2,558 | 12,553 | 308,079 | 8.6 | + | simd-json (Rust) | borrowed (copy) | 1,878 | 4,655 | 15,955 | 419,412 | 9.5 | + | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U] | 2,403 (U 1,776) | 2,933 (U 2,429) | 21,919 | 359,464 (U 273,075) | 13.0 (U 9.5) | + | nlohmann/json `json` | parse + dump | 3,903 | 6,251 | 16,164 | 744,934 | 17.3 | + | serde_json (Rust) | Value | 4,220 | 6,876 | 17,276 | 628,192 | 16.7 | + | Glaze | generic (strict), minify_json [P] | 4,058 (P 413) | 8,169 (P 1,055) | 29,542 (P 2,139) | 615,992 (P 88,989) | 19.3 (P 2.0) | **write** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | dump | 152 | 272 | 3,634 | 68,840 | 0.9 | - | yyjson | write | 219 | 364 | 3,380 | 75,136 | 1.3 | - | sonic-cpp | Serialize | 231 | 475 | 4,851 | 69,344 | 1.2 | - | nlohmann/json `json` | dump | 445 | 590 | 4,523 | 118,446 | 1.9 | - | Glaze | generic | 413 | 725 | 4,239 | 137,011 | 2.1 | - | sonic-rs (Rust) | Value | 442 | 935 | 3,954 | 100,889 | 2.6 | - | Boost.JSON | serialize | 489 | 902 | 5,659 | 127,823 | 2.5 | - | simd-json (Rust) | borrowed | 604 | 809 | 4,825 | 110,710 | 2.7 | - | serde_json (Rust) | Value | 563 | 882 | 3,979 | 120,716 | 2.9 | - | simdjson | to_string | 551 | 803 | 12,977 | 183,837 | 3.2 | - | RapidJSON | Writer | 644 | 966 | 9,614 | 127,167 | 3.9 | + | **nlohmann/json `json_document`** | dump | 152 | 272 | 3,724 | 69,602 | 0.9 | + | yyjson | write | 215 | 350 | 3,419 | 78,246 | 1.3 | + | sonic-cpp | Serialize | 232 | 480 | 4,857 | 70,286 | 1.2 | + | nlohmann/json `json` | dump | 438 | 597 | 4,571 | 119,233 | 2.0 | + | Glaze | generic | 388 | 717 | 4,140 | 138,931 | 2.0 | + | sonic-rs (Rust) | Value | 445 | 931 | 4,048 | 104,487 | 2.8 | + | Boost.JSON | serialize | 488 | 903 | 5,752 | 132,633 | 2.6 | + | simdjson | to_string | 492 | 680 | 4,787 | 183,334 | 3.0 | + | serde_json (Rust) | Value | 560 | 848 | 3,964 | 129,473 | 3.2 | + | simd-json (Rust) | borrowed | 597 | 809 | 4,817 | 114,245 | 3.1 | + | RapidJSON | Writer | 639 | 961 | 9,785 | 132,023 | 3.6 | ### F. Behavior changes @@ -2436,12 +2486,16 @@ These are the checks behind the themes: - **Unchanged output.** For this post, we checked that 3.13.0 writes the same bytes as 3.12.0 in all five binary formats for 39 test files, and the same JSON text for `twitter.json` and `citm_catalog.json`. The changes of float output are listed in [Appendix F](#f-behavior-changes). +- **`json_document` against `json`.** A fuzzer parses every input with both and requires the same verdict, the same + value and the same error message, from a borrowed string and from an exact-size buffer without a closing NUL + ([`fuzzer-parse_json_view.cpp`](https://github.com/nlohmann/json/blob/develop/tests/src/fuzzer-parse_json_view.cpp)). - **Comparison** (theme 7). The single-pass `operator<` was compared with the old code on 68,121 pairs of values. - **Mutation checks.** Break a fast path on purpose (skip one byte too many, mark `"` as copyable) and make sure the tests notice. Marking the quote as copyable in the short-string table fails 4,551 assertions. - **The comparison with other libraries.** Before anything is timed, every way's result is checked: the same values, the same string bytes, the same sum of all numbers to the last bit, and an output that reads back as the expected - document ([Appendix E](#e-comparison-with-other-libraries)). + document. The expected values come from nlohmann/json; the Rust programs compute their own with serde_json, and + the two agree ([Appendix E](#e-comparison-with-other-libraries)). [5185]: https://github.com/nlohmann/json/pull/5185 [5233]: https://github.com/nlohmann/json/pull/5233 diff --git a/docs/mkdocs/docs/images/perf_blog_usecases_mac.svg b/docs/mkdocs/docs/images/perf_blog_usecases_mac.svg index 05bcf0353..ac433e3bc 100644 --- a/docs/mkdocs/docs/images/perf_blog_usecases_mac.svg +++ b/docs/mkdocs/docs/images/perf_blog_usecases_mac.svg @@ -1,6 +1,6 @@ Use cases: time of each library relative to the fastest, Apple M1 Max -Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.00; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00; nlohmann/json json_document minify: 1.00; nlohmann/json json_document write: 1.00; yyjson validate: 1.30; yyjson sum: 1.14; yyjson select: 1.29; yyjson edit: 1.48; yyjson minify: 1.24; yyjson write: 1.24; sonic-rs (Rust) validate: 1.79; sonic-rs (Rust) sum: 1.54; sonic-rs (Rust) select: 1.84; sonic-rs (Rust) edit: 2.09; sonic-rs (Rust) minify: 1.93; sonic-rs (Rust) write: 2.37; simdjson validate: 1.46; simdjson sum: 1.24; simdjson select: 1.48 (0.85 checking less, partial); simdjson edit: n/a; simdjson minify: 2.41 (0.19 checking less, partial); simdjson write: 4.02; simd-json (Rust) validate: 1.95; simd-json (Rust) sum: 1.65; simd-json (Rust) select: 2.35; simd-json (Rust) edit: 2.84; simd-json (Rust) minify: 3.39; simd-json (Rust) write: 3.13; sonic-cpp validate: no fully validating way (2.33 checking less, no U​TF-8); sonic-cpp sum: no fully validating way (1.85 checking less, no U​TF-8); sonic-cpp select: no fully validating way (2.30 checking less, no U​TF-8); sonic-cpp edit: no fully validating way (1.70 checking less, no U​TF-8); sonic-cpp minify: no fully validating way (2.02 checking less, no U​TF-8); sonic-cpp write: 1.59; Glaze validate: 1.88; Glaze sum: 5.58; Glaze select: 1.82 (0.83 checking less, partial); Glaze edit: 4.44; Glaze minify: 5.18 (1.04 checking less, partial); Glaze write: 2.21; Boost.J​SON validate: 2.87; Boost.J​SON sum: 2.00; Boost.J​SON select: 4.09; Boost.J​SON edit: 3.23; Boost.J​SON minify: 3.86; Boost.J​SON write: 3.68; serde_json (Rust) validate: 2.28 (2.06 checking less, no U​TF-8); serde_json (Rust) sum: 2.59; serde_json (Rust) select: 2.38 (2.24 checking less, no U​TF-8); serde_json (Rust) edit: 4.97; serde_json (Rust) minify: 5.80; serde_json (Rust) write: 2.95; nlohmann/json json validate: 2.65; nlohmann/json json sum: 1.96; nlohmann/json json select: 6.83; nlohmann/json json edit: 3.58; nlohmann/json json minify: 4.87; nlohmann/json json write: 2.05; RapidJSON validate: 6.21 (4.04 checking less, no U​TF-8); RapidJSON sum: 4.45 (3.02 checking less, no U​TF-8); RapidJSON select: 5.90 (3.85 checking less, no U​TF-8); RapidJSON edit: 4.85 (3.82 checking less, no U​TF-8); RapidJSON minify: 4.85 (4.54 checking less, no U​TF-8); RapidJSON write: 5.78. +Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.00; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00; nlohmann/json json_document minify: 1.00; nlohmann/json json_document write: 1.00; yyjson validate: 1.29; yyjson sum: 1.14; yyjson select: 1.29; yyjson edit: 1.48; yyjson minify: 1.25; yyjson write: 1.25; simdjson validate: 1.36; simdjson sum: 1.18; simdjson select: 1.34 (0.75 checking less, partial); simdjson edit: n/a; simdjson minify: 2.06 (0.18 checking less, partial); simdjson write: 3.26; sonic-rs (Rust) validate: 1.77; sonic-rs (Rust) sum: 1.54; sonic-rs (Rust) select: 1.85; sonic-rs (Rust) edit: 2.11; sonic-rs (Rust) minify: 1.95; sonic-rs (Rust) write: 2.41; sonic-cpp validate: no fully validating way (2.31 checking less, no U​TF-8); sonic-cpp sum: no fully validating way (1.85 checking less, no U​TF-8); sonic-cpp select: no fully validating way (2.32 checking less, no U​TF-8); sonic-cpp edit: no fully validating way (1.70 checking less, no U​TF-8); sonic-cpp minify: no fully validating way (2.04 checking less, no U​TF-8); sonic-cpp write: 1.62; simd-json (Rust) validate: 1.90; simd-json (Rust) sum: 1.63; simd-json (Rust) select: 2.40; simd-json (Rust) edit: 2.87; simd-json (Rust) minify: 3.43; simd-json (Rust) write: 3.14; Glaze validate: 1.86; Glaze sum: 3.85; Glaze select: 1.79 (0.82 checking less, partial); Glaze edit: 4.42; Glaze minify: 5.21 (1.03 checking less, partial); Glaze write: 2.24; Boost.J​SON validate: 2.34; Boost.J​SON sum: 1.98; Boost.J​SON select: 3.29; Boost.J​SON edit: 3.24; Boost.J​SON minify: 3.87; Boost.J​SON write: 3.75; serde_json (Rust) validate: 2.26 (2.05 checking less, no U​TF-8); serde_json (Rust) sum: 2.60; serde_json (Rust) select: 2.42 (2.27 checking less, no U​TF-8); serde_json (Rust) edit: 5.06; serde_json (Rust) minify: 5.92; serde_json (Rust) write: 2.99; nlohmann/json json validate: 2.64; nlohmann/json json sum: 1.96; nlohmann/json json select: 6.94; nlohmann/json json edit: 3.61; nlohmann/json json minify: 4.95; nlohmann/json json write: 2.09; RapidJSON validate: 6.13 (3.96 checking less, no U​TF-8); RapidJSON sum: 4.41 (2.99 checking less, no U​TF-8); RapidJSON select: 6.00 (3.90 checking less, no U​TF-8); RapidJSON edit: 4.86 (3.82 checking less, no U​TF-8); RapidJSON minify: 4.90 (4.55 checking less, no U​TF-8); RapidJSON write: 5.86. validate sum select @@ -8,339 +8,339 @@ minify write nlohmann/json json_document - + 1.00 - + 1.00 - + 1.00 - + 1.00 - + 1.00 - + 1.00 yyjson - + -1.30 +1.29 - + 1.14 - + 1.29 - + 1.48 - + -1.24 +1.25 - + -1.24 +1.25 -sonic-rs (Rust) - - -1.79 +simdjson + + +1.36 - - -1.54 + + +1.18 - - -1.84 + + +1.34 - - -2.09 - - - -1.93 - - - -2.37 - -simdjson - - -1.46 - - - -1.24 - - - -1.48 - - - -0.85 -P + + +0.75 +P - -n/a + +n/a - - -2.41 + + +2.06 - - -0.19 -P + + +0.18 +P - - -4.02 + + +3.26 -simd-json (Rust) - +sonic-rs (Rust) + + +1.77 + + + +1.54 + + + +1.85 + + + +2.11 + + + +1.95 + + + +2.41 + +sonic-cpp + -1.95 +2.31 +U - + -1.65 +1.85 +U - + -2.35 +2.32 +U - - -2.84 + + +1.70 +U - - -3.39 + + +2.04 +U - - -3.13 + + +1.62 -sonic-cpp - +simd-json (Rust) + -2.33 -U +1.90 - + -1.85 -U +1.63 - + -2.30 -U +2.40 - - -1.70 -U + + +2.87 - - -2.02 -U + + +3.43 - - -1.59 + + +3.14 Glaze - + -1.88 +1.86 - - -5.58 + + +3.85 - + -1.82 +1.79 - + -0.83 +0.82 P - + -4.44 +4.42 - + -5.18 +5.21 - + -1.04 +1.03 P - + -2.21 +2.24 Boost.J​SON - - -2.87 + + +2.34 - + -2.00 +1.98 - + -4.09 +3.29 - + -3.23 +3.24 - + -3.86 +3.87 - + -3.68 +3.75 serde_json (Rust) - + -2.28 +2.26 - + -2.06 +2.05 U - + -2.59 +2.60 - + -2.38 +2.42 - + -2.24 +2.27 U - - -4.97 + + +5.06 - + -5.80 +5.92 - + -2.95 +2.99 nlohmann/json json - + -2.65 +2.64 - + 1.96 - + -6.83 +6.94 - + -3.58 +3.61 - + -4.87 +4.95 - + -2.05 +2.09 RapidJSON - + -6.21 +6.13 - + -4.04 +3.96 U - + -4.45 +4.41 - + -3.02 +2.99 U - + -5.90 +6.00 - + -3.85 +3.90 U - + -4.85 +4.86 - + 3.82 U - + -4.85 +4.90 - + -4.54 +4.55 U - + -5.78 +5.86 time relative to the fastest fully validating library, less is better diff --git a/docs/mkdocs/docs/images/perf_blog_usecases_x86-clang.svg b/docs/mkdocs/docs/images/perf_blog_usecases_x86-clang.svg index 75ffa350d..08c4c8b57 100644 --- a/docs/mkdocs/docs/images/perf_blog_usecases_x86-clang.svg +++ b/docs/mkdocs/docs/images/perf_blog_usecases_x86-clang.svg @@ -1,6 +1,6 @@ Use cases: time of each library relative to the fastest, x86-64 with Clang 23 -Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.00; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00; nlohmann/json json_document minify: 1.00; nlohmann/json json_document write: 1.00; yyjson validate: 1.40; yyjson sum: 1.14; yyjson select: 1.38; yyjson edit: 1.50; yyjson minify: 1.28; yyjson write: 1.18; sonic-rs (Rust) validate: 1.15; sonic-rs (Rust) sum: 1.05; sonic-rs (Rust) select: 1.33; sonic-rs (Rust) edit: 1.90; sonic-rs (Rust) minify: 1.73; sonic-rs (Rust) write: 2.00; simdjson validate: 1.29; simdjson sum: 1.10; simdjson select: 1.29 (0.61 checking less, partial); simdjson edit: n/a; simdjson minify: 2.06 (0.19 checking less, partial); simdjson write: 3.18; sonic-cpp validate: no fully validating way (1.46 checking less, no U​TF-8); sonic-cpp sum: no fully validating way (1.18 checking less, no U​TF-8); sonic-cpp select: no fully validating way (1.43 checking less, no U​TF-8); sonic-cpp edit: no fully validating way (1.18 checking less, no U​TF-8); sonic-cpp minify: no fully validating way (1.37 checking less, no U​TF-8); sonic-cpp write: 1.37; Boost.J​SON validate: 1.58; Boost.J​SON sum: 1.10; Boost.J​SON select: 3.00; Boost.J​SON edit: 2.30; Boost.J​SON minify: 2.69; Boost.J​SON write: 2.36; simd-json (Rust) validate: 2.22; simd-json (Rust) sum: 1.83; simd-json (Rust) select: 2.54; simd-json (Rust) edit: 3.05; simd-json (Rust) minify: 3.42; simd-json (Rust) write: 2.24; serde_json (Rust) validate: 1.47 (1.31 checking less, no U​TF-8); serde_json (Rust) sum: 2.18; serde_json (Rust) select: 1.69; serde_json (Rust) edit: 5.01; serde_json (Rust) minify: 5.25; serde_json (Rust) write: 2.19; nlohmann/json json validate: 1.94; nlohmann/json json sum: 1.49; nlohmann/json json select: 7.92; nlohmann/json json edit: 4.24; nlohmann/json json minify: 5.30; nlohmann/json json write: 1.92; Glaze validate: 1.40; Glaze sum: 7.35 (5.04 checking less, partial); Glaze select: 1.35 (0.61 checking less, partial); Glaze edit: 6.32; Glaze minify: 6.39 (0.69 checking less, partial); Glaze write: 2.03; RapidJSON validate: 4.31 (3.29 checking less, no U​TF-8); RapidJSON sum: 3.16 (2.42 checking less, no U​TF-8); RapidJSON select: 4.32 (3.40 checking less, no U​TF-8); RapidJSON edit: 3.16 (2.69 checking less, no U​TF-8); RapidJSON minify: 3.48 (2.90 checking less, no U​TF-8); RapidJSON write: 2.93. +Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.00; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00; nlohmann/json json_document minify: 1.00; nlohmann/json json_document write: 1.00; yyjson validate: 1.32; yyjson sum: 1.16; yyjson select: 1.31; yyjson edit: 1.48; yyjson minify: 1.26; yyjson write: 1.17; sonic-cpp validate: no fully validating way (1.42 checking less, no U​TF-8); sonic-cpp sum: no fully validating way (1.20 checking less, no U​TF-8); sonic-cpp select: no fully validating way (1.46 checking less, no U​TF-8); sonic-cpp edit: no fully validating way (1.22 checking less, no U​TF-8); sonic-cpp minify: no fully validating way (1.35 checking less, no U​TF-8); sonic-cpp write: 1.37; simdjson validate: 1.28; simdjson sum: 1.11; simdjson select: 1.27 (0.53 checking less, partial); simdjson edit: n/a; simdjson minify: 1.65 (0.19 checking less, partial); simdjson write: 2.29; sonic-rs (Rust) validate: 1.15; sonic-rs (Rust) sum: 1.04; sonic-rs (Rust) select: 1.31; sonic-rs (Rust) edit: 1.98; sonic-rs (Rust) minify: 1.75; sonic-rs (Rust) write: 2.01; Boost.J​SON validate: 1.11; Boost.J​SON sum: 1.11; Boost.J​SON select: 2.17; Boost.J​SON edit: 2.38; Boost.J​SON minify: 2.58; Boost.J​SON write: 2.37; simd-json (Rust) validate: 2.15; simd-json (Rust) sum: 1.78; simd-json (Rust) select: 2.56; simd-json (Rust) edit: 3.13; simd-json (Rust) minify: 3.50; simd-json (Rust) write: 2.23; serde_json (Rust) validate: 1.43 (1.29 checking less, no U​TF-8); serde_json (Rust) sum: 2.17; serde_json (Rust) select: 1.70; serde_json (Rust) edit: 5.10; serde_json (Rust) minify: 5.33; serde_json (Rust) write: 2.19; Glaze validate: 1.39; Glaze sum: 4.30 (3.92 checking less, partial); Glaze select: 1.31 (0.58 checking less, partial); Glaze edit: 6.15; Glaze minify: 6.27 (0.68 checking less, partial); Glaze write: 1.97; nlohmann/json json validate: 1.88; nlohmann/json json sum: 1.47; nlohmann/json json select: 7.96; nlohmann/json json edit: 4.27; nlohmann/json json minify: 5.24; nlohmann/json json write: 1.91; RapidJSON validate: 4.14 (3.17 checking less, no U​TF-8); RapidJSON sum: 3.24 (2.50 checking less, no U​TF-8); RapidJSON select: 4.27 (3.38 checking less, no U​TF-8); RapidJSON edit: 3.24 (2.73 checking less, no U​TF-8); RapidJSON minify: 3.45 (2.85 checking less, no U​TF-8); RapidJSON write: 2.94. validate sum select @@ -8,339 +8,339 @@ minify write nlohmann/json json_document - + 1.00 - + 1.00 - + 1.00 - + 1.00 - + 1.00 - + 1.00 yyjson - + -1.40 +1.32 - - -1.14 + + +1.16 - + -1.38 +1.31 - + -1.50 +1.48 - + -1.28 +1.26 - + -1.18 +1.17 -sonic-rs (Rust) - +sonic-cpp + -1.15 +1.42 +U - - -1.05 + + +1.20 +U - + -1.33 +1.46 +U - - -1.90 + + +1.22 +U - - -1.73 + + +1.35 +U - - -2.00 + + +1.37 simdjson - + -1.29 +1.28 - + -1.10 +1.11 - + -1.29 +1.27 - + -0.61 +0.53 P n/a - + -2.06 +1.65 - + 0.19 P - - -3.18 + + +2.29 -sonic-cpp - +sonic-rs (Rust) + -1.46 -U +1.15 - - -1.18 -U + + +1.04 - + -1.43 -U +1.31 - - -1.18 -U + + +1.98 - - -1.37 -U + + +1.75 - - -1.37 + + +2.01 Boost.J​SON - - -1.58 + + +1.11 - + -1.10 +1.11 - - -3.00 + + +2.17 - + -2.30 +2.38 - + -2.69 +2.58 - + -2.36 +2.37 simd-json (Rust) - + -2.22 +2.15 - + -1.83 +1.78 - + -2.54 +2.56 - + -3.05 +3.13 - + -3.42 +3.50 - + -2.24 +2.23 serde_json (Rust) - + -1.47 +1.43 - + -1.31 +1.29 U - + -2.18 +2.17 - + -1.69 +1.70 - + -5.01 +5.10 - + -5.25 +5.33 - + 2.19 -nlohmann/json json - - -1.94 +Glaze + + +1.39 - - -1.49 + + +4.30 - - -7.92 + + +3.92 +P - - -4.24 + + +1.31 - - -5.30 + + +0.58 +P - + + +6.15 + + + +6.27 + + + +0.68 +P + + -1.92 +1.97 -Glaze - - -1.40 +nlohmann/json json + + +1.88 - - -7.35 + + +1.47 - - -5.04 -P + + +7.96 - - -1.35 + + +4.27 - - -0.61 -P + + +5.24 - - -6.32 - - - -6.39 - - - -0.69 -P - - + -2.03 +1.91 RapidJSON - + -4.31 +4.14 - + -3.29 +3.17 U - + -3.16 +3.24 - + -2.42 +2.50 U - + -4.32 +4.27 - + -3.40 +3.38 U - + -3.16 +3.24 - + -2.69 +2.73 U - + -3.48 +3.45 - + -2.90 +2.85 U - + -2.93 +2.94 time relative to the fastest fully validating library, less is better diff --git a/docs/mkdocs/docs/images/perf_blog_usecases_x86-gcc.svg b/docs/mkdocs/docs/images/perf_blog_usecases_x86-gcc.svg index 98913e359..3921ad1e6 100644 --- a/docs/mkdocs/docs/images/perf_blog_usecases_x86-gcc.svg +++ b/docs/mkdocs/docs/images/perf_blog_usecases_x86-gcc.svg @@ -1,6 +1,6 @@ Use cases: time of each library relative to the fastest, x86-64 with G​CC 16.2 -Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.10; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00; nlohmann/json json_document minify: 1.00; nlohmann/json json_document write: 1.00; yyjson validate: 1.53; yyjson sum: 1.32; yyjson select: 1.47; yyjson edit: 1.45; yyjson minify: 1.28; yyjson write: 1.07; sonic-rs (Rust) validate: 1.17; sonic-rs (Rust) sum: 1.15; sonic-rs (Rust) select: 1.31; sonic-rs (Rust) edit: 1.92; sonic-rs (Rust) minify: 1.67; sonic-rs (Rust) write: 1.98; simdjson validate: 1.27; simdjson sum: 1.00; simdjson select: 1.26 (0.62 checking less, partial); simdjson edit: n/a; simdjson minify: 1.87 (0.18 checking less, partial); simdjson write: 2.84; sonic-cpp validate: no fully validating way (1.41 checking less, no U​TF-8); sonic-cpp sum: no fully validating way (1.25 checking less, no U​TF-8); sonic-cpp select: no fully validating way (1.36 checking less, no U​TF-8); sonic-cpp edit: no fully validating way (1.21 checking less, no U​TF-8); sonic-cpp minify: no fully validating way (1.34 checking less, no U​TF-8); sonic-cpp write: 1.50; Boost.J​SON validate: 1.67; Boost.J​SON sum: 1.26; Boost.J​SON select: 3.04; Boost.J​SON edit: 2.24; Boost.J​SON minify: 2.57; Boost.J​SON write: 2.25; simd-json (Rust) validate: 2.26; simd-json (Rust) sum: 1.99; simd-json (Rust) select: 2.52; simd-json (Rust) edit: 3.09; simd-json (Rust) minify: 3.31; simd-json (Rust) write: 2.22; serde_json (Rust) validate: 1.49 (1.33 checking less, no U​TF-8); serde_json (Rust) sum: 2.38; serde_json (Rust) select: 1.67; serde_json (Rust) edit: 5.07; serde_json (Rust) minify: 5.07; serde_json (Rust) write: 2.17; RapidJSON validate: 3.34 (3.06 checking less, no U​TF-8); RapidJSON sum: 2.70 (2.46 checking less, no U​TF-8); RapidJSON select: 3.27 (3.10 checking less, no U​TF-8); RapidJSON edit: 2.64 (2.54 checking less, no U​TF-8); RapidJSON minify: 3.37 (2.78 checking less, no U​TF-8); RapidJSON write: 2.95; Glaze validate: 1.76; Glaze sum: 5.98 (5.38 checking less, partial); Glaze select: 1.71 (0.59 checking less, partial); Glaze edit: 5.05; Glaze minify: 4.82 (0.75 checking less, partial); Glaze write: 1.90; nlohmann/json json validate: 2.06; nlohmann/json json sum: 1.67; nlohmann/json json select: 7.98; nlohmann/json json edit: 4.16; nlohmann/json json minify: 5.23; nlohmann/json json write: 1.87. +Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.09; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00; nlohmann/json json_document minify: 1.00; nlohmann/json json_document write: 1.00; yyjson validate: 1.37; yyjson sum: 1.34; yyjson select: 1.36; yyjson edit: 1.49; yyjson minify: 1.27; yyjson write: 1.09; sonic-cpp validate: no fully validating way (1.40 checking less, no U​TF-8); sonic-cpp sum: no fully validating way (1.29 checking less, no U​TF-8); sonic-cpp select: no fully validating way (1.38 checking less, no U​TF-8); sonic-cpp edit: no fully validating way (1.24 checking less, no U​TF-8); sonic-cpp minify: no fully validating way (1.36 checking less, no U​TF-8); sonic-cpp write: 1.50; simdjson validate: 1.27; simdjson sum: 1.00; simdjson select: 1.26 (0.53 checking less, partial); simdjson edit: n/a; simdjson minify: 1.61 (0.18 checking less, partial); simdjson write: 2.23; sonic-rs (Rust) validate: 1.20; sonic-rs (Rust) sum: 1.15; sonic-rs (Rust) select: 1.32; sonic-rs (Rust) edit: 2.01; sonic-rs (Rust) minify: 1.74; sonic-rs (Rust) write: 2.04; Boost.J​SON validate: 1.19; Boost.J​SON sum: 1.30; Boost.J​SON select: 2.14; Boost.J​SON edit: 2.34; Boost.J​SON minify: 2.56; Boost.J​SON write: 2.25; simd-json (Rust) validate: 2.24; simd-json (Rust) sum: 1.97; simd-json (Rust) select: 2.60; simd-json (Rust) edit: 3.18; simd-json (Rust) minify: 3.48; simd-json (Rust) write: 2.26; serde_json (Rust) validate: 1.50 (1.35 checking less, no U​TF-8); serde_json (Rust) sum: 2.40; serde_json (Rust) select: 1.72; serde_json (Rust) edit: 5.17; serde_json (Rust) minify: 5.30; serde_json (Rust) write: 2.22; Glaze validate: 1.75; Glaze sum: 4.38 (4.19 checking less, partial); Glaze select: 1.68 (0.58 checking less, partial); Glaze edit: 4.91; Glaze minify: 4.87 (0.76 checking less, partial); Glaze write: 1.97; RapidJSON validate: 3.37 (3.08 checking less, no U​TF-8); RapidJSON sum: 2.74 (2.52 checking less, no U​TF-8); RapidJSON select: 3.31 (3.09 checking less, no U​TF-8); RapidJSON edit: 2.78 (2.66 checking less, no U​TF-8); RapidJSON minify: 3.39 (2.81 checking less, no U​TF-8); RapidJSON write: 2.93; nlohmann/json json validate: 2.08; nlohmann/json json sum: 1.70; nlohmann/json json select: 7.88; nlohmann/json json edit: 4.26; nlohmann/json json minify: 5.18; nlohmann/json json write: 1.85. validate sum select @@ -8,339 +8,339 @@ minify write nlohmann/json json_document - + 1.00 - + -1.10 +1.09 - + 1.00 - + 1.00 - + 1.00 - + 1.00 yyjson - - -1.53 + + +1.37 - + -1.32 +1.34 - + -1.47 +1.36 - + -1.45 +1.49 - + -1.28 +1.27 - + -1.07 +1.09 -sonic-rs (Rust) - +sonic-cpp + -1.17 +1.40 +U - - -1.15 + + +1.29 +U - + -1.31 +1.38 +U - - -1.92 + + +1.24 +U - - -1.67 + + +1.36 +U - + -1.98 +1.50 simdjson - + 1.27 - + 1.00 - + 1.26 - + -0.62 +0.53 P n/a - + -1.87 +1.61 - + 0.18 P - - -2.84 + + +2.23 -sonic-cpp - +sonic-rs (Rust) + -1.41 -U +1.20 - + -1.25 -U +1.15 - + -1.36 -U +1.32 - - -1.21 -U + + +2.01 - - -1.34 -U + + +1.74 - - -1.50 + + +2.04 Boost.J​SON - - -1.67 + + +1.19 - + -1.26 +1.30 - - -3.04 + + +2.14 - + -2.24 +2.34 - + -2.57 +2.56 - + 2.25 simd-json (Rust) - + -2.26 +2.24 - + -1.99 +1.97 - + -2.52 +2.60 - + -3.09 +3.18 - + -3.31 +3.48 - + -2.22 +2.26 serde_json (Rust) - + -1.49 +1.50 - + -1.33 +1.35 U - + -2.38 +2.40 - + -1.67 +1.72 - + -5.07 +5.17 - + -5.07 +5.30 - + -2.17 +2.22 -RapidJSON - - -3.34 +Glaze + + +1.75 - - -3.06 -U - - + -2.70 +4.38 - - -2.46 -U + + +4.19 +P - - -3.27 + + +1.68 - - -3.10 -U + + +0.58 +P - - -2.64 + + +4.91 - - -2.54 -U - - + -3.37 +4.87 - - -2.78 -U + + +0.76 +P - - -2.95 + + +1.97 -Glaze - - -1.76 +RapidJSON + + +3.37 - - -5.98 + + +3.08 +U - - -5.38 -P + + +2.74 - - -1.71 + + +2.52 +U - - -0.59 -P + + +3.31 - - -5.05 + + +3.09 +U - + + +2.78 + + + +2.66 +U + + -4.82 +3.39 - - -0.75 -P + + +2.81 +U - - -1.90 + + +2.93 nlohmann/json json - + -2.06 +2.08 - + -1.67 +1.70 - + -7.98 +7.88 - + -4.16 +4.26 - + -5.23 +5.18 - + -1.87 +1.85 time relative to the fastest fully validating library, less is better diff --git a/docs/mkdocs/docs/images/perf_blog_usecases_x86-gcc13.svg b/docs/mkdocs/docs/images/perf_blog_usecases_x86-gcc13.svg index 53ad85187..746372e6e 100644 --- a/docs/mkdocs/docs/images/perf_blog_usecases_x86-gcc13.svg +++ b/docs/mkdocs/docs/images/perf_blog_usecases_x86-gcc13.svg @@ -1,6 +1,6 @@ Use cases: time of each library relative to the fastest, x86-64 with G​CC 13 -Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.11; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00; nlohmann/json json_document minify: 1.00; nlohmann/json json_document write: 1.00; yyjson validate: 1.68; yyjson sum: 1.47; yyjson select: 1.63; yyjson edit: 1.56; yyjson minify: 1.35; yyjson write: 1.14; sonic-rs (Rust) validate: 1.12; sonic-rs (Rust) sum: 1.14; sonic-rs (Rust) select: 1.28; sonic-rs (Rust) edit: 1.88; sonic-rs (Rust) minify: 1.65; sonic-rs (Rust) write: 1.94; simdjson validate: 1.31; simdjson sum: 1.00; simdjson select: 1.30 (0.69 checking less, partial); simdjson edit: n/a; simdjson minify: 1.86 (0.21 checking less, partial); simdjson write: 2.86; sonic-cpp validate: no fully validating way (1.45 checking less, no U​TF-8); sonic-cpp sum: no fully validating way (1.32 checking less, no U​TF-8); sonic-cpp select: no fully validating way (1.42 checking less, no U​TF-8); sonic-cpp edit: no fully validating way (1.22 checking less, no U​TF-8); sonic-cpp minify: no fully validating way (1.36 checking less, no U​TF-8); sonic-cpp write: 1.50; Boost.J​SON validate: 1.62; Boost.J​SON sum: 1.32; Boost.J​SON select: 3.26; Boost.J​SON edit: 2.44; Boost.J​SON minify: 2.70; Boost.J​SON write: 2.39; simd-json (Rust) validate: 2.17; simd-json (Rust) sum: 1.98; simd-json (Rust) select: 2.44; simd-json (Rust) edit: 3.03; simd-json (Rust) minify: 3.27; simd-json (Rust) write: 2.17; serde_json (Rust) validate: 1.43 (1.28 checking less, no U​TF-8); serde_json (Rust) sum: 2.37; serde_json (Rust) select: 1.62; serde_json (Rust) edit: 4.96; serde_json (Rust) minify: 5.01; serde_json (Rust) write: 2.12; Glaze validate: 1.33; Glaze sum: 6.46 (5.20 checking less, partial); Glaze select: 1.35 (0.58 checking less, partial); Glaze edit: 5.23; Glaze minify: 5.12 (0.70 checking less, partial); Glaze write: 1.92; nlohmann/json json validate: 2.00; nlohmann/json json sum: 1.73; nlohmann/json json select: 7.68; nlohmann/json json edit: 4.27; nlohmann/json json minify: 5.15; nlohmann/json json write: 1.88; RapidJSON validate: 3.97 (3.13 checking less, no U​TF-8); RapidJSON sum: 3.21 (2.54 checking less, no U​TF-8); RapidJSON select: 3.98 (3.24 checking less, no U​TF-8); RapidJSON edit: 3.02 (2.63 checking less, no U​TF-8); RapidJSON minify: 3.65 (2.79 checking less, no U​TF-8); RapidJSON write: 3.05. +Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.12; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00; nlohmann/json json_document minify: 1.00; nlohmann/json json_document write: 1.00; yyjson validate: 1.34; yyjson sum: 1.47; yyjson select: 1.29; yyjson edit: 1.52; yyjson minify: 1.34; yyjson write: 1.08; sonic-cpp validate: no fully validating way (1.40 checking less, no U​TF-8); sonic-cpp sum: no fully validating way (1.33 checking less, no U​TF-8); sonic-cpp select: no fully validating way (1.42 checking less, no U​TF-8); sonic-cpp edit: no fully validating way (1.22 checking less, no U​TF-8); sonic-cpp minify: no fully validating way (1.36 checking less, no U​TF-8); sonic-cpp write: 1.48; simdjson validate: 1.26; simdjson sum: 1.00; simdjson select: 1.23 (0.53 checking less, partial); simdjson edit: n/a; simdjson minify: 1.54 (0.21 checking less, partial); simdjson write: 2.17; sonic-rs (Rust) validate: 1.16; sonic-rs (Rust) sum: 1.13; sonic-rs (Rust) select: 1.27; sonic-rs (Rust) edit: 1.88; sonic-rs (Rust) minify: 1.68; sonic-rs (Rust) write: 1.98; Boost.J​SON validate: 1.18; Boost.J​SON sum: 1.32; Boost.J​SON select: 2.15; Boost.J​SON edit: 2.44; Boost.J​SON minify: 2.64; Boost.J​SON write: 2.38; simd-json (Rust) validate: 2.17; simd-json (Rust) sum: 1.94; simd-json (Rust) select: 2.50; simd-json (Rust) edit: 2.97; simd-json (Rust) minify: 3.36; simd-json (Rust) write: 2.20; serde_json (Rust) validate: 1.44 (1.30 checking less, no U​TF-8); serde_json (Rust) sum: 2.36; serde_json (Rust) select: 1.66; serde_json (Rust) edit: 4.84; serde_json (Rust) minify: 5.12; serde_json (Rust) write: 2.15; Glaze validate: 1.33; Glaze sum: 4.42 (4.12 checking less, partial); Glaze select: 1.34 (0.55 checking less, partial); Glaze edit: 4.91; Glaze minify: 4.96 (0.70 checking less, partial); Glaze write: 1.74; nlohmann/json json validate: 2.01; nlohmann/json json sum: 1.75; nlohmann/json json select: 7.62; nlohmann/json json edit: 4.15; nlohmann/json json minify: 4.94; nlohmann/json json write: 1.86; RapidJSON validate: 3.89 (3.04 checking less, no U​TF-8); RapidJSON sum: 3.27 (2.57 checking less, no U​TF-8); RapidJSON select: 3.84 (3.14 checking less, no U​TF-8); RapidJSON edit: 2.99 (2.65 checking less, no U​TF-8); RapidJSON minify: 3.57 (2.81 checking less, no U​TF-8); RapidJSON write: 2.97. validate sum select @@ -8,339 +8,339 @@ minify write nlohmann/json json_document - + 1.00 - + -1.11 +1.12 - + 1.00 - + 1.00 - + 1.00 - + 1.00 yyjson - - -1.68 + + +1.34 - + 1.47 - - -1.63 + + +1.29 - + -1.56 +1.52 - + -1.35 +1.34 - + -1.14 +1.08 -sonic-rs (Rust) - - -1.12 +sonic-cpp + + +1.40 +U - - -1.14 + + +1.33 +U - + -1.28 +1.42 +U - - -1.88 + + +1.22 +U - - -1.65 + + +1.36 +U - - -1.94 + + +1.48 simdjson - + -1.31 +1.26 - + 1.00 - + -1.30 +1.23 - + -0.69 +0.53 P n/a - + -1.86 +1.54 - + 0.21 P - - -2.86 + + +2.17 -sonic-cpp - +sonic-rs (Rust) + -1.45 -U +1.16 - - -1.32 -U + + +1.13 - + -1.42 -U +1.27 - - -1.22 -U + + +1.88 - - -1.36 -U + + +1.68 - - -1.50 + + +1.98 Boost.J​SON - - -1.62 + + +1.18 - + 1.32 - - -3.26 + + +2.15 - + 2.44 - + -2.70 +2.64 - + -2.39 +2.38 simd-json (Rust) - + 2.17 - + -1.98 +1.94 - + -2.44 +2.50 - + -3.03 +2.97 - + -3.27 +3.36 - + -2.17 +2.20 serde_json (Rust) - + -1.43 +1.44 - + -1.28 +1.30 U - + -2.37 +2.36 - + -1.62 +1.66 - + -4.96 +4.84 - + -5.01 +5.12 - + -2.12 +2.15 Glaze - + 1.33 - - -6.46 + + +4.42 - - -5.20 + + +4.12 P - + -1.35 +1.34 - + -0.58 +0.55 P - - -5.23 + + +4.91 - - -5.12 + + +4.96 - + 0.70 P - + -1.92 +1.74 nlohmann/json json - + -2.00 +2.01 - + -1.73 +1.75 - + -7.68 +7.62 - + -4.27 +4.15 - - -5.15 + + +4.94 - + -1.88 +1.86 RapidJSON - + -3.97 +3.89 - + -3.13 +3.04 U - + -3.21 +3.27 - + -2.54 +2.57 U - + -3.98 +3.84 - + -3.24 +3.14 U - + -3.02 +2.99 - + -2.63 +2.65 U - + -3.65 +3.57 - + -2.79 +2.81 U - + -3.05 +2.97 time relative to the fastest fully validating library, less is better diff --git a/docs/mkdocs/scripts/figures/data/perf_usecases_mac.json b/docs/mkdocs/scripts/figures/data/perf_usecases_mac.json index 3aa074030..66880e654 100644 --- a/docs/mkdocs/scripts/figures/data/perf_usecases_mac.json +++ b/docs/mkdocs/scripts/figures/data/perf_usecases_mac.json @@ -4,25 +4,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 175.8, + "us": 176.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 175.8, + "us": 176.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 174.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 174.8, "level": "full" }, "variants": { "read (reused)": { - "us": 172.8, + "us": 174.8, "level": "full" }, "parse": { - "us": 175.8, + "us": 176.2, "level": "full" }, "accept": { - "us": 181.9, + "us": 180.5, "level": "full" } } @@ -30,43 +40,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 481.0, + "us": 470.8, "level": "full" }, "best_any": { "variant": "accept", - "us": 481.0, + "us": 470.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 481.0, + "us": 470.8, "level": "full" }, "parse": { - "us": 1343.2, + "us": 1356.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 180.5, + "variant": "read", + "us": 177.8, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 180.5, + "variant": "read", + "us": 177.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 180.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 180.4, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 180.5, + "read": { + "us": 177.8, "level": "full" }, - "read": { - "us": 189.3, + "insitu (copy)": { + "us": 179.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 180.4, + "level": "full" + }, + "read (raw numbers)": { + "us": 190.2, "level": "full" } } @@ -74,21 +104,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 221.0, + "us": 198.6, "level": "full" }, "best_any": { "variant": "DOM", - "us": 221.0, + "us": 198.6, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 192.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 192.8, "level": "full" }, "variants": { "DOM (reused)": { - "us": 203.8, + "us": 192.8, "level": "full" }, "DOM": { - "us": 221.0, + "us": 198.6, "level": "full" } } @@ -97,12 +137,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 379.5, + "us": 379.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 379.5, + "us": 379.0, "level": "no UTF-8" } } @@ -110,43 +152,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 328.6, + "us": 329.0, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 328.6, + "us": 329.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 328.6, + "us": 329.0, + "level": "full" + }, + "generic (double, strict)": { + "us": 911.5, + "level": "full" + }, + "generic (double)": { + "us": 914.5, + "level": "partial" + }, + "generic (strict)": { + "us": 1265.0, "level": "full" }, "generic": { - "us": 1256.1, - "level": "full" + "us": 1266.4, + "level": "partial" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 536.2, + "variant": "SAX (numbers: none)", + "us": 530.4, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 536.2, + "variant": "SAX (numbers: none)", + "us": 530.4, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 529.4, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 529.4, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 529.4, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 530.4, + "level": "full" + }, "SAX": { - "us": 536.2, + "us": 531.8, + "level": "full" + }, + "parse (numbers: none)": { + "us": 852.2, "level": "full" }, "parse": { - "us": 881.4, + "us": 856.9, + "level": "full" + }, + "parser (reused)": { + "us": 859.6, "level": "full" } } @@ -154,37 +236,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1313.9, + "us": 1310.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 704.0, + "us": 695.3, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1353.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1180.1, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 704.0, + "us": 695.3, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1161.5, + "us": 1153.7, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1156.1, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1180.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1191.1, + "us": 1186.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1313.9, + "us": 1310.7, "level": "full" }, "SAX": { - "us": 1325.5, + "us": 1316.0, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 1326.1, "level": "full" }, "Document": { - "us": 1354.5, + "us": 1351.4, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1353.8, "level": "full" } } @@ -192,25 +300,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 457.3, + "us": 451.8, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 353.8, + "us": 353.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 353.8, + "us": 353.6, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 457.3, + "us": 451.8, "level": "full" }, "Value": { - "us": 1679.0, + "us": 1637.8, "level": "full" } } @@ -218,21 +328,23 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 329.0, + "us": 325.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 329.0, + "us": 325.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 329.0, + "us": 325.7, "level": "full" }, "IgnoredAny": { - "us": 431.3, + "us": 418.6, "level": "full" } } @@ -240,25 +352,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 304.1, + "us": 289.0, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 304.1, + "us": 289.0, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 284.6, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 284.6, "level": "full" }, "variants": { "tape (reused)": { - "us": 296.0, + "us": 284.6, "level": "full" }, "tape (copy)": { - "us": 304.1, + "us": 289.0, "level": "full" }, "borrowed (copy)": { - "us": 574.3, + "us": 560.5, "level": "full" } } @@ -268,25 +390,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 358.9, + "us": 360.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 358.9, + "us": 360.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 359.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 359.3, "level": "full" }, "variants": { "read (reused)": { - "us": 358.0, + "us": 359.3, "level": "full" }, "parse": { - "us": 358.9, + "us": 360.0, "level": "full" }, "accept": { - "us": 359.5, + "us": 360.5, "level": "full" } } @@ -294,21 +426,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 897.2, + "us": 907.3, "level": "full" }, "best_any": { "variant": "accept", - "us": 897.2, + "us": 907.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 897.2, + "us": 907.3, "level": "full" }, "parse": { - "us": 2402.2, + "us": 2420.0, "level": "full" } } @@ -316,21 +450,39 @@ "yyjson": { "best": { "variant": "read", - "us": 472.8, + "us": 470.7, "level": "full" }, "best_any": { "variant": "read", - "us": 472.8, + "us": 470.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 481.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 481.5, "level": "full" }, "variants": { "read": { - "us": 472.8, + "us": 470.7, "level": "full" }, "insitu (copy)": { - "us": 475.1, + "us": 471.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 481.5, + "level": "full" + }, + "read (raw numbers)": { + "us": 534.8, "level": "full" } } @@ -338,21 +490,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 492.7, + "us": 448.5, "level": "full" }, "best_any": { "variant": "DOM", - "us": 492.7, + "us": 448.5, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 446.7, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 446.7, "level": "full" }, "variants": { "DOM (reused)": { - "us": 487.2, + "us": 446.7, "level": "full" }, "DOM": { - "us": 492.7, + "us": 448.5, "level": "full" } } @@ -361,12 +523,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 982.0, + "us": 981.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 982.0, + "us": 981.7, "level": "no UTF-8" } } @@ -374,43 +538,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 853.4, + "us": 853.6, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 853.4, + "us": 853.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 853.4, + "us": 853.6, + "level": "full" + }, + "generic (double, strict)": { + "us": 1930.4, + "level": "full" + }, + "generic (double)": { + "us": 1939.9, + "level": "partial" + }, + "generic (strict)": { + "us": 2703.5, "level": "full" }, "generic": { - "us": 2724.2, - "level": "full" + "us": 2707.8, + "level": "partial" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 1017.2, + "variant": "SAX (numbers: none)", + "us": 991.1, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 1017.2, + "variant": "SAX (numbers: none)", + "us": 991.1, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 1018.8, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 1018.8, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 991.1, + "level": "full" + }, "SAX": { - "us": 1017.2, + "us": 1018.1, + "level": "full" + }, + "SAX (reused)": { + "us": 1018.8, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1459.5, + "level": "full" + }, + "parser (reused)": { + "us": 1479.4, "level": "full" }, "parse": { - "us": 1485.2, + "us": 1480.3, "level": "full" } } @@ -418,37 +622,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1568.2, + "us": 1567.6, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1149.5, + "us": 1145.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1683.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1607.9, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1149.5, + "us": 1145.0, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1548.0, + "us": 1547.3, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1568.2, + "us": 1567.6, "level": "full" }, + "SAX (raw numbers) (no encoding check)": { + "us": 1599.5, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1607.9, + "level": "no UTF-8" + }, "Document (no encoding check)": { - "us": 1613.3, + "us": 1610.0, "level": "no UTF-8" }, "SAX": { - "us": 1633.8, + "us": 1634.7, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1683.0, "level": "full" }, "Document": { - "us": 1691.6, + "us": 1687.3, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 1687.8, "level": "full" } } @@ -456,25 +686,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 1104.6, + "us": 1102.8, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 1052.5, + "us": 1046.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 1052.5, + "us": 1046.7, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 1104.6, + "us": 1102.8, "level": "full" }, "Value": { - "us": 2762.2, + "us": 2783.1, "level": "full" } } @@ -482,21 +714,23 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 684.5, + "us": 680.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 684.5, + "us": 680.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 684.5, + "us": 680.8, "level": "full" }, "IgnoredAny": { - "us": 800.2, + "us": 798.3, "level": "full" } } @@ -504,25 +738,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 709.2, + "us": 698.4, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 709.2, + "us": 698.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 704.6, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 704.6, "level": "full" }, "variants": { "tape (copy)": { - "us": 709.2, + "us": 698.4, "level": "full" }, "tape (reused)": { - "us": 717.2, + "us": 704.6, "level": "full" }, "borrowed (copy)": { - "us": 1619.1, + "us": 1605.5, "level": "full" } } @@ -532,25 +776,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 943.2, + "us": 959.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 943.2, + "us": 959.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 959.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 959.0, "level": "full" }, "variants": { "read (reused)": { - "us": 942.6, + "us": 959.0, "level": "full" }, "parse": { - "us": 943.2, + "us": 959.4, "level": "full" }, "accept": { - "us": 943.5, + "us": 959.6, "level": "full" } } @@ -558,43 +812,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 2462.9, + "us": 2509.5, "level": "full" }, "best_any": { "variant": "accept", - "us": 2462.9, + "us": 2509.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 2462.9, + "us": 2509.5, "level": "full" }, "parse": { - "us": 5933.9, + "us": 5915.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 1492.7, + "variant": "insitu (copy)", + "us": 1485.8, "level": "full" }, "best_any": { - "variant": "read", - "us": 1492.7, + "variant": "insitu (copy)", + "us": 1485.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1488.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1488.4, "level": "full" }, "variants": { - "read": { - "us": 1492.7, + "insitu (copy)": { + "us": 1485.8, "level": "full" }, - "insitu (copy)": { - "us": 1493.2, + "read (reused allocator)": { + "us": 1488.4, + "level": "full" + }, + "read": { + "us": 1489.5, + "level": "full" + }, + "read (raw numbers)": { + "us": 1782.6, "level": "full" } } @@ -602,21 +876,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 2103.5, + "us": 1885.4, "level": "full" }, "best_any": { "variant": "DOM", - "us": 2103.5, + "us": 1885.4, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1884.1, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 1884.1, "level": "full" }, "variants": { "DOM (reused)": { - "us": 2099.0, + "us": 1884.1, "level": "full" }, "DOM": { - "us": 2103.5, + "us": 1885.4, "level": "full" } } @@ -625,12 +909,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 2577.2, + "us": 2574.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 2577.2, + "us": 2574.6, "level": "no UTF-8" } } @@ -638,43 +924,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1301.7, + "us": 1301.8, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1301.7, + "us": 1301.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 1301.7, + "us": 1301.8, "level": "full" }, + "generic (double, strict)": { + "us": 5853.4, + "level": "full" + }, + "generic (double)": { + "us": 5892.2, + "level": "partial" + }, "generic": { - "us": 9338.5, + "us": 9209.6, + "level": "partial" + }, + "generic (strict)": { + "us": 9226.6, "level": "full" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 3064.7, + "variant": "SAX (numbers: none)", + "us": 1465.7, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 3064.7, + "variant": "SAX (numbers: none)", + "us": 1465.7, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 3016.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 3016.0, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 1465.7, + "level": "full" + }, + "parse (numbers: none)": { + "us": 2075.3, + "level": "full" + }, + "SAX (reused)": { + "us": 3016.0, + "level": "full" + }, "SAX": { - "us": 3064.7, + "us": 3016.1, + "level": "full" + }, + "parser (reused)": { + "us": 3609.2, "level": "full" }, "parse": { - "us": 3639.3, + "us": 3621.0, "level": "full" } } @@ -682,37 +1008,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 6870.7, + "us": 6786.8, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 6850.9, + "us": 6741.5, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 7293.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 7293.5, + "level": "full" + }, "variants": { "insitu (copy) (no encoding check)": { - "us": 6850.9, + "us": 6741.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 6870.7, + "us": 6786.8, "level": "full" }, "SAX": { - "us": 6973.5, + "us": 6940.0, "level": "full" }, "SAX (no encoding check)": { - "us": 7014.5, + "us": 6949.8, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 7363.0, + "Document (reused allocator)": { + "us": 7293.5, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 7294.6, "level": "no UTF-8" }, "Document": { - "us": 7363.7, + "us": 7304.8, + "level": "full" + }, + "Document (no encoding check)": { + "us": 7306.1, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 9426.8, + "level": "no UTF-8" + }, + "SAX (raw numbers)": { + "us": 9440.3, "level": "full" } } @@ -720,25 +1072,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 1531.6, + "us": 1556.0, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 1459.4, + "us": 1450.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 1459.4, + "us": 1450.7, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 1531.6, + "us": 1556.0, "level": "full" }, "Value": { - "us": 7364.3, + "us": 7410.8, "level": "full" } } @@ -746,21 +1100,23 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 1929.8, + "us": 1939.1, "level": "full" }, "best_any": { "variant": "Value", - "us": 1929.8, + "us": 1939.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1929.8, + "us": 1939.1, "level": "full" }, "IgnoredAny": { - "us": 2101.4, + "us": 2086.8, "level": "full" } } @@ -768,25 +1124,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 2286.3, + "us": 2278.5, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 2286.3, + "us": 2278.5, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 2260.5, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 2260.5, "level": "full" }, "variants": { - "tape (copy)": { - "us": 2286.3, + "tape (reused)": { + "us": 2260.5, "level": "full" }, - "tape (reused)": { - "us": 2286.9, + "tape (copy)": { + "us": 2278.5, "level": "full" }, "borrowed (copy)": { - "us": 5042.7, + "us": 4931.8, "level": "full" } } @@ -796,25 +1162,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 22861.7, + "us": 22552.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 22861.7, + "us": 22552.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 22197.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 22197.0, "level": "full" }, "variants": { "read (reused)": { - "us": 22432.7, + "us": 22197.0, "level": "full" }, "parse": { - "us": 22861.7, + "us": 22552.6, "level": "full" }, "accept": { - "us": 22905.3, + "us": 22560.4, "level": "full" } } @@ -822,21 +1198,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 63383.2, + "us": 62073.5, "level": "full" }, "best_any": { "variant": "accept", - "us": 63383.2, + "us": 62073.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 63383.2, + "us": 62073.5, "level": "full" }, "parse": { - "us": 168548.6, + "us": 167178.7, "level": "full" } } @@ -844,21 +1222,39 @@ "yyjson": { "best": { "variant": "read", - "us": 30541.9, + "us": 30278.1, "level": "full" }, "best_any": { "variant": "read", - "us": 30541.9, + "us": 30278.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 30337.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 30337.9, "level": "full" }, "variants": { "read": { - "us": 30541.9, + "us": 30278.1, "level": "full" }, "insitu (copy)": { - "us": 30802.0, + "us": 30296.8, + "level": "full" + }, + "read (reused allocator)": { + "us": 30337.9, + "level": "full" + }, + "read (raw numbers)": { + "us": 30509.8, "level": "full" } } @@ -866,21 +1262,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 27311.2, + "us": 28367.7, "level": "full" }, "best_any": { "variant": "DOM", - "us": 27311.2, + "us": 28367.7, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 28341.1, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 28341.1, "level": "full" }, "variants": { "DOM (reused)": { - "us": 27216.0, + "us": 28341.1, "level": "full" }, "DOM": { - "us": 27311.2, + "us": 28367.7, "level": "full" } } @@ -889,12 +1295,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 41571.0, + "us": 40690.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 41571.0, + "us": 40690.7, "level": "no UTF-8" } } @@ -902,43 +1310,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 46471.0, + "us": 44971.5, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 46471.0, + "us": 44971.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 46471.0, + "us": 44971.5, "level": "full" }, + "generic (double, strict)": { + "us": 87852.9, + "level": "full" + }, + "generic (double)": { + "us": 88171.6, + "level": "partial" + }, "generic": { - "us": 138804.5, + "us": 129464.7, + "level": "partial" + }, + "generic (strict)": { + "us": 130412.0, "level": "full" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 55101.7, + "variant": "SAX (numbers: none)", + "us": 53807.2, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 55101.7, + "variant": "SAX (numbers: none)", + "us": 53807.2, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 53803.1, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 53803.1, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 53803.1, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 53807.2, + "level": "full" + }, "SAX": { - "us": 55101.7, + "us": 53820.7, + "level": "full" + }, + "parser (reused)": { + "us": 88387.0, + "level": "full" + }, + "parse (numbers: none)": { + "us": 88553.9, "level": "full" }, "parse": { - "us": 91723.6, + "us": 88589.8, "level": "full" } } @@ -946,37 +1394,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 142654.0, + "us": 139322.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 65583.7, + "us": 63151.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 154337.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 140854.9, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 65583.7, + "us": 63151.8, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 136132.7, + "us": 133814.9, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 134159.0, "level": "no UTF-8" }, "insitu (copy)": { - "us": 142654.0, + "us": 139322.7, "level": "full" }, + "Document (reused allocator) (no encoding check)": { + "us": 140854.9, + "level": "no UTF-8" + }, "Document (no encoding check)": { - "us": 145067.4, + "us": 142658.0, "level": "no UTF-8" }, "SAX": { - "us": 153768.0, + "us": 151130.8, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 151443.2, + "level": "full" + }, + "Document (reused allocator)": { + "us": 154337.4, "level": "full" }, "Document": { - "us": 159581.8, + "us": 155660.8, "level": "full" } } @@ -984,25 +1458,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 47547.4, + "us": 46517.3, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 44881.2, + "us": 44984.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 44881.2, + "us": 44984.1, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 47547.4, + "us": 46517.3, "level": "full" }, "Value": { - "us": 184053.2, + "us": 177841.9, "level": "full" } } @@ -1010,21 +1486,23 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 32168.6, + "us": 31450.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 32168.6, + "us": 31450.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 32168.6, + "us": 31450.0, "level": "full" }, "IgnoredAny": { - "us": 49018.3, + "us": 47199.4, "level": "full" } } @@ -1032,25 +1510,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 39592.1, + "us": 38874.0, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 39592.1, + "us": 38874.0, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 38477.2, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 38477.2, "level": "full" }, "variants": { "tape (reused)": { - "us": 39367.1, + "us": 38477.2, "level": "full" }, "tape (copy)": { - "us": 39592.1, + "us": 38874.0, "level": "full" }, "borrowed (copy)": { - "us": 61088.8, + "us": 59785.6, "level": "full" } } @@ -1060,25 +1548,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 1.0, + "us": 0.9, "level": "full" }, "best_any": { "variant": "accept", - "us": 1.0, + "us": 0.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 0.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 0.9, "level": "full" }, "variants": { - "read (reused)": { + "accept": { "us": 0.9, "level": "full" }, - "accept": { - "us": 1.0, + "parse": { + "us": 0.9, "level": "full" }, - "parse": { - "us": 1.0, + "read (reused)": { + "us": 0.9, "level": "full" } } @@ -1094,13 +1592,15 @@ "us": 2.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { "us": 2.4, "level": "full" }, "parse": { - "us": 7.4, + "us": 7.5, "level": "full" } } @@ -1116,7 +1616,21 @@ "us": 0.9, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 0.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 0.8, + "level": "full" + }, "variants": { + "read (reused allocator)": { + "us": 0.8, + "level": "full" + }, "read": { "us": 0.9, "level": "full" @@ -1124,18 +1638,32 @@ "insitu (copy)": { "us": 0.9, "level": "full" + }, + "read (raw numbers)": { + "us": 0.9, + "level": "full" } } }, "simdjson": { "best": { "variant": "DOM", - "us": 1.1, + "us": 1.0, "level": "full" }, "best_any": { "variant": "DOM", - "us": 1.1, + "us": 1.0, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 0.9, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 0.9, "level": "full" }, "variants": { @@ -1144,7 +1672,7 @@ "level": "full" }, "DOM": { - "us": 1.1, + "us": 1.0, "level": "full" } } @@ -1156,6 +1684,8 @@ "us": 1.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { "us": 1.6, @@ -1174,12 +1704,26 @@ "us": 1.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { "us": 1.4, "level": "full" }, + "generic (double)": { + "us": 4.4, + "level": "partial" + }, + "generic (double, strict)": { + "us": 4.5, + "level": "full" + }, "generic": { + "us": 6.4, + "level": "partial" + }, + "generic (strict)": { "us": 6.4, "level": "full" } @@ -1196,13 +1740,39 @@ "us": 2.3, "level": "full" }, + "best_reused": { + "variant": "SAX (reused)", + "us": 2.3, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 2.3, + "level": "full" + }, "variants": { "SAX": { "us": 2.3, "level": "full" }, + "SAX (numbers: none)": { + "us": 2.3, + "level": "full" + }, + "SAX (reused)": { + "us": 2.3, + "level": "full" + }, + "parser (reused)": { + "us": 3.5, + "level": "full" + }, "parse": { - "us": 3.8, + "us": 3.7, + "level": "full" + }, + "parse (numbers: none)": { + "us": 3.7, "level": "full" } } @@ -1218,6 +1788,16 @@ "us": 2.6, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 6.3, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 5.4, + "level": "no UTF-8" + }, "variants": { "insitu (copy) (no encoding check)": { "us": 2.6, @@ -1227,6 +1807,14 @@ "us": 5.2, "level": "no UTF-8" }, + "SAX (raw numbers) (no encoding check)": { + "us": 5.4, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 5.4, + "level": "no UTF-8" + }, "Document (no encoding check)": { "us": 5.9, "level": "no UTF-8" @@ -1235,6 +1823,14 @@ "us": 6.1, "level": "full" }, + "SAX (raw numbers)": { + "us": 6.2, + "level": "full" + }, + "Document (reused allocator)": { + "us": 6.3, + "level": "full" + }, "insitu (copy)": { "us": 6.4, "level": "full" @@ -1256,6 +1852,8 @@ "us": 1.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { "us": 1.7, @@ -1282,13 +1880,15 @@ "us": 1.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { "us": 1.4, "level": "full" }, "IgnoredAny": { - "us": 1.7, + "us": 1.8, "level": "full" } } @@ -1304,6 +1904,16 @@ "us": 1.7, "level": "full" }, + "best_reused": { + "variant": "tape (reused)", + "us": 1.4, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 1.4, + "level": "full" + }, "variants": { "tape (reused)": { "us": 1.4, @@ -1314,7 +1924,779 @@ "level": "full" }, "borrowed (copy)": { - "us": 3.1, + "us": 3.2, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 156.6, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 156.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 155.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 155.1, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 155.1, + "level": "full" + }, + "parse": { + "us": 156.6, + "level": "full" + }, + "accept": { + "us": 159.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 413.2, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 413.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 413.2, + "level": "full" + }, + "parse": { + "us": 1319.9, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 159.5, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 159.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 156.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 156.3, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 156.3, + "level": "full" + }, + "read": { + "us": 159.5, + "level": "full" + }, + "insitu (copy)": { + "us": 159.7, + "level": "full" + }, + "read (raw numbers)": { + "us": 170.6, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 171.0, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 171.0, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 177.0, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 177.0, + "level": "full" + }, + "variants": { + "DOM": { + "us": 171.0, + "level": "full" + }, + "DOM (reused)": { + "us": 177.0, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 254.2, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 254.2, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 271.2, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 271.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 271.2, + "level": "full" + }, + "generic (double, strict)": { + "us": 824.2, + "level": "full" + }, + "generic (double)": { + "us": 826.9, + "level": "partial" + }, + "generic": { + "us": 1163.1, + "level": "partial" + }, + "generic (strict)": { + "us": 1164.8, + "level": "full" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 452.6, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 452.6, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 452.2, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 452.2, + "level": "full" + }, + "variants": { + "SAX (reused)": { + "us": 452.2, + "level": "full" + }, + "SAX": { + "us": 452.6, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 454.8, + "level": "full" + }, + "parse (numbers: none)": { + "us": 761.9, + "level": "full" + }, + "parser (reused)": { + "us": 767.7, + "level": "full" + }, + "parse": { + "us": 774.5, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1073.2, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 470.3, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1167.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1009.5, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 470.3, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 959.2, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 976.3, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1009.5, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1016.1, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1073.2, + "level": "full" + }, + "SAX": { + "us": 1125.1, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 1141.8, + "level": "full" + }, + "Document": { + "us": 1164.8, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1167.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 388.9, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 291.8, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 291.8, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 388.9, + "level": "full" + }, + "Value": { + "us": 1507.4, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 235.7, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 235.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 235.7, + "level": "full" + }, + "IgnoredAny": { + "us": 315.3, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 250.5, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 250.5, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 249.4, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 249.4, + "level": "full" + }, + "variants": { + "tape (reused)": { + "us": 249.4, + "level": "full" + }, + "tape (copy)": { + "us": 250.5, + "level": "full" + }, + "borrowed (copy)": { + "us": 533.5, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 243.6, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 243.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 243.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 243.3, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 243.3, + "level": "full" + }, + "parse": { + "us": 243.6, + "level": "full" + }, + "accept": { + "us": 244.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 765.8, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 765.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 765.8, + "level": "full" + }, + "parse": { + "us": 2299.2, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 280.3, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 280.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 280.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 280.7, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 280.3, + "level": "full" + }, + "read": { + "us": 280.5, + "level": "full" + }, + "read (reused allocator)": { + "us": 280.7, + "level": "full" + }, + "read (raw numbers)": { + "us": 344.8, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 324.1, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 324.1, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 319.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 319.8, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 319.8, + "level": "full" + }, + "DOM": { + "us": 324.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 539.9, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 539.9, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 461.2, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 461.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 461.2, + "level": "full" + }, + "generic (double, strict)": { + "us": 1578.1, + "level": "full" + }, + "generic (double)": { + "us": 1580.2, + "level": "partial" + }, + "generic (strict)": { + "us": 2359.3, + "level": "full" + }, + "generic": { + "us": 2361.8, + "level": "partial" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 435.5, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 435.5, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 455.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 455.0, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 435.5, + "level": "full" + }, + "SAX (reused)": { + "us": 455.0, + "level": "full" + }, + "SAX": { + "us": 455.6, + "level": "full" + }, + "parse (numbers: none)": { + "us": 928.6, + "level": "full" + }, + "parser (reused)": { + "us": 939.9, + "level": "full" + }, + "parse": { + "us": 943.9, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX", + "us": 1110.8, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 745.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1229.7, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1139.5, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 745.2, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1008.0, + "level": "no UTF-8" + }, + "SAX": { + "us": 1110.8, + "level": "full" + }, + "insitu (copy)": { + "us": 1113.2, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1136.1, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1139.5, + "level": "no UTF-8" + }, + "Document": { + "us": 1216.0, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1229.7, + "level": "full" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1279.2, + "level": "no UTF-8" + }, + "SAX (raw numbers)": { + "us": 1320.5, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 488.2, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 471.6, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 471.6, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 488.2, + "level": "full" + }, + "Value": { + "us": 2265.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 380.5, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 380.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 380.5, + "level": "full" + }, + "IgnoredAny": { + "us": 570.4, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 445.1, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 445.1, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 442.8, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 442.8, + "level": "full" + }, + "variants": { + "tape (reused)": { + "us": 442.8, + "level": "full" + }, + "tape (copy)": { + "us": 445.1, + "level": "full" + }, + "borrowed (copy)": { + "us": 1348.4, "level": "full" } } @@ -1326,21 +2708,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 226.5, + "us": 225.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 226.5, + "us": 225.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 220.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 220.1, "level": "full" }, "variants": { "read (reused)": { - "us": 218.0, + "us": 220.1, "level": "full" }, "parse": { - "us": 226.5, + "us": 225.3, "level": "full" } } @@ -1348,21 +2740,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 461.0, + "us": 460.8, "level": "full" }, "best_any": { "variant": "sax", - "us": 461.0, + "us": 460.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 461.0, + "us": 460.8, "level": "full" }, "parse": { - "us": 1408.0, + "us": 1425.0, "level": "full" } } @@ -1370,51 +2764,75 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 229.1, + "us": 229.5, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 229.1, + "us": 229.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 231.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 231.0, "level": "full" }, "variants": { "insitu (copy)": { - "us": 229.1, + "us": 229.5, + "level": "full" + }, + "read (reused allocator)": { + "us": 231.0, "level": "full" }, "read": { - "us": 239.5, + "us": 232.3, "level": "full" } } }, "simdjson": { "best": { - "variant": "On-Demand", - "us": 256.4, + "variant": "DOM", + "us": 239.0, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 256.4, + "variant": "DOM", + "us": 239.0, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 242.5, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 242.5, "level": "full" }, "variants": { + "DOM": { + "us": 239.0, + "level": "full" + }, "DOM (reused)": { - "us": 250.0, + "us": 242.5, "level": "full" }, "On-Demand (reused)": { - "us": 251.4, + "us": 245.2, "level": "full" }, "On-Demand": { - "us": 256.4, - "level": "full" - }, - "DOM": { - "us": 266.6, + "us": 255.1, "level": "full" } } @@ -1423,56 +2841,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 427.0, + "us": 427.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 427.0, + "us": 427.7, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 1322.6, + "variant": "generic (double, strict)", + "us": 977.1, "level": "full" }, "best_any": { - "variant": "generic", - "us": 1322.6, + "variant": "generic (double, strict)", + "us": 977.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { + "generic (double, strict)": { + "us": 977.1, + "level": "full" + }, + "generic (double)": { + "us": 977.8, + "level": "partial" + }, "generic": { - "us": 1322.6, + "us": 1327.8, + "level": "partial" + }, + "generic (strict)": { + "us": 1329.6, "level": "full" }, "lazy_json": { - "us": 1968.7, + "us": 1955.7, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 537.2, + "us": 533.4, "level": "full" }, "best_any": { "variant": "SAX", - "us": 537.2, + "us": 533.4, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 534.5, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 534.5, "level": "full" }, "variants": { "SAX": { - "us": 537.2, + "us": 533.4, + "level": "full" + }, + "SAX (reused)": { + "us": 534.5, + "level": "full" + }, + "parser (reused)": { + "us": 906.6, "level": "full" }, "parse": { - "us": 921.2, + "us": 907.8, "level": "full" } } @@ -1480,37 +2935,55 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 1331.0, + "us": 1311.4, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 754.6, + "us": 741.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1389.7, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1227.0, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 754.6, + "us": 741.8, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1165.8, + "us": 1159.0, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1227.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1238.4, + "us": 1236.3, "level": "no UTF-8" }, "SAX": { - "us": 1331.0, + "us": 1311.4, "level": "full" }, "insitu (copy)": { - "us": 1360.8, + "us": 1359.7, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1389.7, "level": "full" }, "Document": { - "us": 1404.8, + "us": 1394.6, "level": "full" } } @@ -1518,21 +2991,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 664.8, + "us": 651.5, "level": "full" }, "best_any": { "variant": "visitor", - "us": 664.8, + "us": 651.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 664.8, + "us": 651.5, "level": "full" }, "Value": { - "us": 1693.8, + "us": 1689.7, "level": "full" } } @@ -1540,21 +3015,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 372.2, + "us": 363.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 372.2, + "us": 363.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 372.2, + "us": 363.8, "level": "full" }, "Value": { - "us": 473.2, + "us": 464.0, "level": "full" } } @@ -1562,25 +3039,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 372.5, + "us": 354.4, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 372.5, + "us": 354.4, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 649.2, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 649.2, "level": "full" }, "variants": { "visitor (copy)": { - "us": 372.5, - "level": "full" - }, - "borrowed (reused)": { - "us": 659.5, + "us": 354.4, "level": "full" }, "borrowed (copy)": { - "us": 662.0, + "us": 645.3, + "level": "full" + }, + "borrowed (reused)": { + "us": 649.2, "level": "full" } } @@ -1590,21 +3077,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 480.4, + "us": 481.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 480.4, + "us": 481.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 480.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 480.7, "level": "full" }, "variants": { "read (reused)": { - "us": 478.5, + "us": 480.7, "level": "full" }, "parse": { - "us": 480.4, + "us": 481.6, "level": "full" } } @@ -1612,21 +3109,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 928.0, + "us": 930.0, "level": "full" }, "best_any": { "variant": "sax", - "us": 928.0, + "us": 930.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 928.0, + "us": 930.0, "level": "full" }, "parse": { - "us": 2539.5, + "us": 2554.5, "level": "full" } } @@ -1634,21 +3133,35 @@ "yyjson": { "best": { "variant": "read", - "us": 572.6, + "us": 570.1, "level": "full" }, "best_any": { "variant": "read", - "us": 572.6, + "us": 570.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 571.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 571.2, "level": "full" }, "variants": { "read": { - "us": 572.6, + "us": 570.1, + "level": "full" + }, + "read (reused allocator)": { + "us": 571.2, "level": "full" }, "insitu (copy)": { - "us": 575.5, + "us": 577.5, "level": "full" } } @@ -1656,29 +3169,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 607.5, + "us": 570.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 607.5, + "us": 570.0, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 570.2, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 570.2, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 607.1, - "level": "full" - }, "On-Demand": { - "us": 607.5, + "us": 570.0, "level": "full" }, "On-Demand (reused)": { - "us": 612.7, + "us": 570.2, + "level": "full" + }, + "DOM (reused)": { + "us": 582.4, "level": "full" }, "DOM": { - "us": 615.5, + "us": 583.3, "level": "full" } } @@ -1687,56 +3210,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 1090.6, + "us": 1083.4, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1090.6, + "us": 1083.4, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 2845.3, + "variant": "generic (double, strict)", + "us": 2067.6, "level": "full" }, "best_any": { - "variant": "generic", - "us": 2845.3, + "variant": "generic (double, strict)", + "us": 2067.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 2845.3, + "generic (double, strict)": { + "us": 2067.6, "level": "full" }, + "generic (double)": { + "us": 2074.5, + "level": "partial" + }, + "generic (strict)": { + "us": 2836.1, + "level": "full" + }, + "generic": { + "us": 2841.4, + "level": "partial" + }, "lazy_json": { - "us": 8045.7, + "us": 8201.3, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 1019.8, + "us": 1005.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 1019.8, + "us": 1005.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 1004.7, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 1004.7, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 1004.7, + "level": "full" + }, "SAX": { - "us": 1019.8, + "us": 1005.0, + "level": "full" + }, + "parser (reused)": { + "us": 1573.4, "level": "full" }, "parse": { - "us": 1579.0, + "us": 1574.7, "level": "full" } } @@ -1744,37 +3304,55 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 1626.4, + "us": 1623.1, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1258.2, + "us": 1256.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1796.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1718.2, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1258.2, + "us": 1256.5, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1552.3, + "us": 1551.1, "level": "no UTF-8" }, "SAX": { - "us": 1626.4, + "us": 1623.1, "level": "full" }, "insitu (copy)": { - "us": 1684.4, + "us": 1682.3, "level": "full" }, - "Document (no encoding check)": { - "us": 1716.5, + "Document (reused allocator) (no encoding check)": { + "us": 1718.2, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 1720.5, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1796.0, + "level": "full" + }, "Document": { - "us": 1801.0, + "us": 1802.2, "level": "full" } } @@ -1782,21 +3360,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 1228.8, + "us": 1241.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 1228.8, + "us": 1241.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 1228.8, + "us": 1241.8, "level": "full" }, "Value": { - "us": 2888.8, + "us": 2921.4, "level": "full" } } @@ -1804,21 +3384,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 778.0, + "us": 777.5, "level": "full" }, "best_any": { "variant": "visitor", - "us": 778.0, + "us": 777.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 778.0, + "us": 777.5, "level": "full" }, "Value": { - "us": 1014.4, + "us": 1008.5, "level": "full" } } @@ -1826,25 +3408,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 866.5, + "us": 865.8, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 866.5, + "us": 865.8, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 1734.3, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 1734.3, "level": "full" }, "variants": { "visitor (copy)": { - "us": 866.5, + "us": 865.8, "level": "full" }, "borrowed (copy)": { - "us": 1721.5, + "us": 1729.8, "level": "full" }, "borrowed (reused)": { - "us": 1726.2, + "us": 1734.3, "level": "full" } } @@ -1854,21 +3446,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 1803.9, + "us": 1818.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 1803.9, + "us": 1818.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1816.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1816.5, "level": "full" }, "variants": { "read (reused)": { - "us": 1800.5, + "us": 1816.5, "level": "full" }, "parse": { - "us": 1803.9, + "us": 1818.0, "level": "full" } } @@ -1876,73 +3478,99 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 3099.6, + "us": 3127.0, "level": "full" }, "best_any": { "variant": "sax", - "us": 3099.6, + "us": 3127.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 3099.6, + "us": 3127.0, "level": "full" }, "parse": { - "us": 6329.8, + "us": 6302.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 1936.9, + "variant": "insitu (copy)", + "us": 1931.4, "level": "full" }, "best_any": { - "variant": "read", - "us": 1936.9, + "variant": "insitu (copy)", + "us": 1931.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1939.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1939.8, "level": "full" }, "variants": { - "read": { - "us": 1936.9, + "insitu (copy)": { + "us": 1931.4, "level": "full" }, - "insitu (copy)": { - "us": 1938.1, + "read": { + "us": 1938.7, + "level": "full" + }, + "read (reused allocator)": { + "us": 1939.8, "level": "full" } } }, "simdjson": { "best": { - "variant": "DOM", - "us": 2594.0, + "variant": "On-Demand", + "us": 2371.8, "level": "full" }, "best_any": { - "variant": "DOM", - "us": 2594.0, + "variant": "On-Demand", + "us": 2371.8, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 2378.0, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 2378.0, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 2593.4, - "level": "full" - }, - "DOM": { - "us": 2594.0, - "level": "full" - }, "On-Demand": { - "us": 2602.9, + "us": 2371.8, "level": "full" }, "On-Demand (reused)": { - "us": 2605.9, + "us": 2378.0, + "level": "full" + }, + "DOM (reused)": { + "us": 2413.6, + "level": "full" + }, + "DOM": { + "us": 2413.7, "level": "full" } } @@ -1951,56 +3579,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 2976.1, + "us": 2956.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 2976.1, + "us": 2956.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 9777.2, + "variant": "generic (double, strict)", + "us": 6253.6, "level": "full" }, "best_any": { - "variant": "generic", - "us": 9777.2, + "variant": "generic (double, strict)", + "us": 6253.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 9777.2, + "generic (double, strict)": { + "us": 6253.6, "level": "full" }, + "generic (double)": { + "us": 6320.4, + "level": "partial" + }, + "generic (strict)": { + "us": 9603.8, + "level": "full" + }, + "generic": { + "us": 9604.6, + "level": "partial" + }, "lazy_json": { - "us": 12003.5, + "us": 11967.2, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 3046.2, + "us": 3029.1, "level": "full" }, "best_any": { "variant": "SAX", - "us": 3046.2, + "us": 3029.1, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 3028.9, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 3028.9, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 3028.9, + "level": "full" + }, "SAX": { - "us": 3046.2, + "us": 3029.1, + "level": "full" + }, + "parser (reused)": { + "us": 3987.0, "level": "full" }, "parse": { - "us": 4025.2, + "us": 4001.2, "level": "full" } } @@ -2008,37 +3673,55 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 6924.1, + "us": 6913.4, "level": "full" }, "best_any": { "variant": "SAX", - "us": 6924.1, + "us": 6913.4, "level": "full" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 7669.6, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7662.9, + "level": "no UTF-8" + }, "variants": { "SAX": { - "us": 6924.1, + "us": 6913.4, "level": "full" }, "SAX (no encoding check)": { - "us": 6935.7, + "us": 6917.8, "level": "no UTF-8" }, "insitu (copy)": { - "us": 7166.7, + "us": 7129.8, "level": "full" }, "insitu (copy) (no encoding check)": { - "us": 7207.5, + "us": 7135.2, "level": "no UTF-8" }, + "Document (reused allocator) (no encoding check)": { + "us": 7662.9, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 7669.6, + "level": "full" + }, "Document (no encoding check)": { - "us": 7788.1, + "us": 7670.7, "level": "no UTF-8" }, "Document": { - "us": 7797.6, + "us": 7681.4, "level": "full" } } @@ -2046,21 +3729,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 4813.2, + "us": 4771.9, "level": "full" }, "best_any": { "variant": "visitor", - "us": 4813.2, + "us": 4771.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 4813.2, + "us": 4771.9, "level": "full" }, "Value": { - "us": 7817.7, + "us": 7805.8, "level": "full" } } @@ -2068,21 +3753,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 2695.0, + "us": 2702.9, "level": "full" }, "best_any": { "variant": "visitor", - "us": 2695.0, + "us": 2702.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 2695.0, + "us": 2702.9, "level": "full" }, "Value": { - "us": 3710.6, + "us": 3706.6, "level": "full" } } @@ -2090,25 +3777,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 2726.7, + "us": 2716.8, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 2726.7, + "us": 2716.8, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 5296.7, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 5296.7, "level": "full" }, "variants": { "visitor (copy)": { - "us": 2726.7, + "us": 2716.8, "level": "full" }, "borrowed (reused)": { - "us": 5296.8, + "us": 5296.7, "level": "full" }, "borrowed (copy)": { - "us": 5313.5, + "us": 5347.0, "level": "full" } } @@ -2118,21 +3815,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 29207.8, + "us": 28721.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 29207.8, + "us": 28721.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 28369.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 28369.1, "level": "full" }, "variants": { "read (reused)": { - "us": 28674.4, + "us": 28369.1, "level": "full" }, "parse": { - "us": 29207.8, + "us": 28721.2, "level": "full" } } @@ -2140,43 +3847,59 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 63271.9, + "us": 62755.5, "level": "full" }, "best_any": { "variant": "sax", - "us": 63271.9, + "us": 62755.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 63271.9, + "us": 62755.5, "level": "full" }, "parse": { - "us": 176051.1, + "us": 172882.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 37916.0, + "variant": "read", + "us": 37534.4, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 37916.0, + "variant": "read", + "us": 37534.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 37378.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 37378.5, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 37916.0, + "read (reused allocator)": { + "us": 37378.5, "level": "full" }, "read": { - "us": 37930.5, + "us": 37534.4, + "level": "full" + }, + "insitu (copy)": { + "us": 37783.0, "level": "full" } } @@ -2184,29 +3907,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 33706.4, + "us": 34562.0, "level": "full" }, "best_any": { "variant": "DOM", - "us": 33706.4, + "us": 34562.0, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 34531.2, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 34531.2, "level": "full" }, "variants": { "DOM (reused)": { - "us": 33585.6, + "us": 34531.2, "level": "full" }, "DOM": { - "us": 33706.4, + "us": 34562.0, "level": "full" }, "On-Demand (reused)": { - "us": 34159.6, + "us": 35158.9, "level": "full" }, "On-Demand": { - "us": 34206.4, + "us": 35178.8, "level": "full" } } @@ -2215,56 +3948,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 48840.5, + "us": 48063.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 48840.5, + "us": 48063.5, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 151441.2, + "variant": "generic (double, strict)", + "us": 98851.2, "level": "full" }, "best_any": { - "variant": "generic", - "us": 151441.2, - "level": "full" + "variant": "generic (double)", + "us": 98843.6, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 151441.2, + "generic (double)": { + "us": 98843.6, + "level": "partial" + }, + "generic (double, strict)": { + "us": 98851.2, "level": "full" }, + "generic (strict)": { + "us": 139678.8, + "level": "full" + }, + "generic": { + "us": 141721.8, + "level": "partial" + }, "lazy_json": { - "us": 154503.6, + "us": 147590.2, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 54817.8, + "us": 53595.3, "level": "full" }, "best_any": { "variant": "SAX", - "us": 54817.8, + "us": 53595.3, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 53613.7, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 53613.7, "level": "full" }, "variants": { "SAX": { - "us": 54817.8, + "us": 53595.3, + "level": "full" + }, + "SAX (reused)": { + "us": 53613.7, + "level": "full" + }, + "parser (reused)": { + "us": 94579.6, "level": "full" }, "parse": { - "us": 98010.2, + "us": 94782.5, "level": "full" } } @@ -2272,37 +4042,55 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 149474.4, + "us": 145744.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 72381.0, + "us": 70079.4, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 161763.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 147751.2, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 72381.0, + "us": 70079.4, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 135928.1, + "us": 133460.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 149474.4, + "us": 145744.3, "level": "full" }, + "Document (reused allocator) (no encoding check)": { + "us": 147751.2, + "level": "no UTF-8" + }, "SAX": { - "us": 151362.3, + "us": 149355.8, "level": "full" }, "Document (no encoding check)": { - "us": 152099.7, + "us": 150178.5, "level": "no UTF-8" }, + "Document (reused allocator)": { + "us": 161763.8, + "level": "full" + }, "Document": { - "us": 166281.8, + "us": 164806.4, "level": "full" } } @@ -2310,21 +4098,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 66093.2, + "us": 66567.5, "level": "full" }, "best_any": { "variant": "visitor", - "us": 66093.2, + "us": 66567.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 66093.2, + "us": 66567.5, "level": "full" }, "Value": { - "us": 182706.2, + "us": 184407.0, "level": "full" } } @@ -2332,21 +4122,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 41462.0, + "us": 41360.7, "level": "full" }, "best_any": { "variant": "visitor", - "us": 41462.0, + "us": 41360.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 41462.0, + "us": 41360.7, "level": "full" }, "Value": { - "us": 47602.0, + "us": 47265.9, "level": "full" } } @@ -2354,25 +4146,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 48505.6, + "us": 47518.5, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 48505.6, + "us": 47518.5, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 66783.5, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 66783.5, "level": "full" }, "variants": { "visitor (copy)": { - "us": 48505.6, + "us": 47518.5, "level": "full" }, "borrowed (reused)": { - "us": 66327.5, + "us": 66783.5, "level": "full" }, "borrowed (copy)": { - "us": 66625.4, + "us": 66830.5, "level": "full" } } @@ -2390,6 +4192,16 @@ "us": 1.2, "level": "full" }, + "best_reused": { + "variant": "read (reused)", + "us": 1.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1.1, + "level": "full" + }, "variants": { "read (reused)": { "us": 1.1, @@ -2412,13 +4224,15 @@ "us": 2.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { "us": 2.5, "level": "full" }, "parse": { - "us": 7.7, + "us": 7.9, "level": "full" } } @@ -2434,6 +4248,16 @@ "us": 1.1, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.1, + "level": "full" + }, "variants": { "read": { "us": 1.1, @@ -2442,6 +4266,10 @@ "insitu (copy)": { "us": 1.1, "level": "full" + }, + "read (reused allocator)": { + "us": 1.1, + "level": "full" } } }, @@ -2456,9 +4284,19 @@ "us": 1.3, "level": "full" }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.1, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 1.1, + "level": "full" + }, "variants": { "DOM (reused)": { - "us": 1.2, + "us": 1.1, "level": "full" }, "On-Demand (reused)": { @@ -2482,6 +4320,8 @@ "us": 1.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { "us": 1.9, @@ -2491,8 +4331,8 @@ }, "Glaze": { "best": { - "variant": "generic", - "us": 6.7, + "variant": "generic (double, strict)", + "us": 4.8, "level": "full" }, "best_any": { @@ -2500,15 +4340,32 @@ "us": 3.5, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "lazy_json": { "us": 3.5, "level": "partial" }, + "generic (double)": { + "us": 4.8, + "level": "partial" + }, + "generic (double, strict)": { + "us": 4.8, + "level": "full" + }, "generic": { - "us": 6.7, + "us": 6.8, + "level": "partial" + }, + "generic (strict)": { + "us": 6.8, "level": "full" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { @@ -2522,11 +4379,29 @@ "us": 2.3, "level": "full" }, + "best_reused": { + "variant": "SAX (reused)", + "us": 2.3, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 2.3, + "level": "full" + }, "variants": { "SAX": { "us": 2.3, "level": "full" }, + "SAX (reused)": { + "us": 2.3, + "level": "full" + }, + "parser (reused)": { + "us": 3.7, + "level": "full" + }, "parse": { "us": 4.0, "level": "full" @@ -2544,6 +4419,16 @@ "us": 2.9, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 6.6, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 5.6, + "level": "no UTF-8" + }, "variants": { "insitu (copy) (no encoding check)": { "us": 2.9, @@ -2553,18 +4438,26 @@ "us": 5.3, "level": "no UTF-8" }, + "Document (reused allocator) (no encoding check)": { + "us": 5.6, + "level": "no UTF-8" + }, "SAX": { "us": 6.1, "level": "full" }, "Document (no encoding check)": { - "us": 6.2, + "us": 6.1, "level": "no UTF-8" }, "insitu (copy)": { "us": 6.6, "level": "full" }, + "Document (reused allocator)": { + "us": 6.6, + "level": "full" + }, "Document": { "us": 7.0, "level": "full" @@ -2582,13 +4475,15 @@ "us": 2.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { "us": 2.5, "level": "full" }, "Value": { - "us": 7.5, + "us": 7.7, "level": "full" } } @@ -2596,17 +4491,19 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 1.6, + "us": 1.7, "level": "full" }, "best_any": { "variant": "visitor", - "us": 1.6, + "us": 1.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 1.6, + "us": 1.7, "level": "full" }, "Value": { @@ -2626,17 +4523,765 @@ "us": 2.0, "level": "full" }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 3.4, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 3.4, + "level": "full" + }, "variants": { "visitor (copy)": { "us": 2.0, "level": "full" }, "borrowed (reused)": { - "us": 3.3, + "us": 3.4, "level": "full" }, "borrowed (copy)": { - "us": 3.6, + "us": 3.7, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 205.8, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 205.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 199.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 199.8, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 199.8, + "level": "full" + }, + "parse": { + "us": 205.8, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 418.0, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 418.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 418.0, + "level": "full" + }, + "parse": { + "us": 1384.6, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 209.5, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 209.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 205.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 205.8, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 205.8, + "level": "full" + }, + "insitu (copy)": { + "us": 209.5, + "level": "full" + }, + "read": { + "us": 210.2, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 226.0, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 226.0, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 218.0, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 218.0, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 218.0, + "level": "full" + }, + "On-Demand (reused)": { + "us": 220.8, + "level": "full" + }, + "DOM": { + "us": 226.0, + "level": "full" + }, + "On-Demand": { + "us": 228.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 303.8, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 303.8, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 890.0, + "level": "full" + }, + "best_any": { + "variant": "generic (double, strict)", + "us": 890.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (double, strict)": { + "us": 890.0, + "level": "full" + }, + "generic (double)": { + "us": 891.2, + "level": "partial" + }, + "generic (strict)": { + "us": 1227.1, + "level": "full" + }, + "generic": { + "us": 1235.7, + "level": "partial" + }, + "lazy_json": { + "us": 1333.4, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 452.0, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 452.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 449.8, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 449.8, + "level": "full" + }, + "variants": { + "SAX (reused)": { + "us": 449.8, + "level": "full" + }, + "SAX": { + "us": 452.0, + "level": "full" + }, + "parser (reused)": { + "us": 817.7, + "level": "full" + }, + "parse": { + "us": 824.5, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX", + "us": 1118.5, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 523.3, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1217.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1055.9, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 523.3, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 966.9, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1055.9, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1066.7, + "level": "no UTF-8" + }, + "SAX": { + "us": 1118.5, + "level": "full" + }, + "insitu (copy)": { + "us": 1119.8, + "level": "full" + }, + "Document": { + "us": 1216.0, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1217.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 480.3, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 480.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 480.3, + "level": "full" + }, + "Value": { + "us": 1505.8, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 258.2, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 258.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 258.2, + "level": "full" + }, + "Value": { + "us": 375.1, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 326.2, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 326.2, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 619.1, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 619.1, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 326.2, + "level": "full" + }, + "borrowed (copy)": { + "us": 616.4, + "level": "full" + }, + "borrowed (reused)": { + "us": 619.1, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 365.4, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 365.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 364.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 364.9, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 364.9, + "level": "full" + }, + "parse": { + "us": 365.4, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 791.0, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 791.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 791.0, + "level": "full" + }, + "parse": { + "us": 2431.1, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 380.7, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 380.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 380.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 380.6, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 380.6, + "level": "full" + }, + "read": { + "us": 380.7, + "level": "full" + }, + "insitu (copy)": { + "us": 383.8, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "On-Demand", + "us": 434.3, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 434.3, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 439.4, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 439.4, + "level": "full" + }, + "variants": { + "On-Demand": { + "us": 434.3, + "level": "full" + }, + "On-Demand (reused)": { + "us": 439.4, + "level": "full" + }, + "DOM": { + "us": 453.2, + "level": "full" + }, + "DOM (reused)": { + "us": 455.5, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 646.0, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 646.0, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 1719.4, + "level": "full" + }, + "best_any": { + "variant": "generic (double, strict)", + "us": 1719.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (double, strict)": { + "us": 1719.4, + "level": "full" + }, + "generic (double)": { + "us": 1719.6, + "level": "partial" + }, + "generic (strict)": { + "us": 2499.7, + "level": "full" + }, + "generic": { + "us": 2507.6, + "level": "partial" + }, + "lazy_json": { + "us": 2640.0, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 455.8, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 455.8, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 455.6, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 455.6, + "level": "full" + }, + "variants": { + "SAX (reused)": { + "us": 455.6, + "level": "full" + }, + "SAX": { + "us": 455.8, + "level": "full" + }, + "parser (reused)": { + "us": 1034.8, + "level": "full" + }, + "parse": { + "us": 1038.3, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX", + "us": 1126.0, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 858.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1340.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1248.1, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 858.6, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1036.5, + "level": "no UTF-8" + }, + "SAX": { + "us": 1126.0, + "level": "full" + }, + "insitu (copy)": { + "us": 1221.2, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1248.1, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1256.0, + "level": "no UTF-8" + }, + "Document": { + "us": 1325.0, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1340.5, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 681.8, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 681.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 681.8, + "level": "full" + }, + "Value": { + "us": 2423.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 526.5, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 526.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 526.5, + "level": "full" + }, + "Value": { + "us": 707.3, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 616.3, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 616.3, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 1471.7, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 1471.7, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 616.3, + "level": "full" + }, + "borrowed (reused)": { + "us": 1471.7, + "level": "full" + }, + "borrowed (copy)": { + "us": 1473.5, "level": "full" } } @@ -2647,26 +5292,36 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "structs (from_json)", - "us": 187.0, + "variant": "parse", + "us": 180.8, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 187.0, + "variant": "parse", + "us": 180.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 179.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 179.1, "level": "full" }, "variants": { "read (reused)": { - "us": 178.9, - "level": "full" - }, - "structs (from_json)": { - "us": 187.0, + "us": 179.1, "level": "full" }, "parse": { - "us": 188.3, + "us": 180.8, + "level": "full" + }, + "structs (from_json)": { + "us": 184.0, "level": "full" } } @@ -2674,43 +5329,63 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 1356.7, + "us": 1367.8, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 1356.7, + "us": 1367.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 1356.7, + "us": 1367.8, "level": "full" }, "parse": { - "us": 1364.2, + "us": 1372.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", + "variant": "read", "us": 188.0, "level": "full" }, "best_any": { - "variant": "insitu (copy)", + "variant": "read", "us": 188.0, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 194.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 194.2, + "level": "full" + }, "variants": { - "insitu (copy)": { + "read": { "us": 188.0, "level": "full" }, - "read": { - "us": 201.0, + "insitu (copy)": { + "us": 190.1, + "level": "full" + }, + "read (reused allocator)": { + "us": 194.2, + "level": "full" + }, + "read (raw numbers)": { + "us": 204.9, "level": "full" } } @@ -2718,29 +5393,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 231.0, + "us": 197.0, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 144.0, + "variant": "On-Demand structs", + "us": 125.7, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 205.2, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 134.8, "level": "partial" }, "variants": { + "On-Demand structs": { + "us": 125.7, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 128.9, + "level": "partial" + }, "On-Demand (reused)": { - "us": 141.7, + "us": 134.8, "level": "partial" }, "On-Demand": { - "us": 144.0, + "us": 137.0, "level": "partial" }, - "DOM (reused)": { - "us": 210.1, + "DOM": { + "us": 197.0, "level": "full" }, - "DOM": { - "us": 231.0, + "DOM (reused)": { + "us": 205.2, "level": "full" } } @@ -2749,12 +5442,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 385.0, + "us": 384.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 385.0, + "us": 384.5, "level": "no UTF-8" } } @@ -2762,77 +5457,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 311.9, + "us": 311.4, "level": "full" }, "best_any": { "variant": "structs", - "us": 238.2, + "us": 239.2, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 238.2, + "us": 239.2, "level": "partial" }, "structs (validate_skipped)": { - "us": 311.9, + "us": 311.4, "level": "full" }, "lazy_json": { - "us": 716.5, + "us": 707.0, "level": "partial" }, - "generic": { - "us": 1339.2, + "generic (double, strict)": { + "us": 979.2, "level": "full" + }, + "generic (double)": { + "us": 980.3, + "level": "partial" + }, + "generic (strict)": { + "us": 1329.0, + "level": "full" + }, + "generic": { + "us": 1329.6, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 888.8, + "variant": "parse_into structs", + "us": 619.6, "level": "full" }, "best_any": { - "variant": "parse", - "us": 888.8, + "variant": "parse_into structs", + "us": 619.6, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 875.5, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 875.5, "level": "full" }, "variants": { + "parse_into structs": { + "us": 619.6, + "level": "full" + }, + "parser (reused)": { + "us": 875.5, + "level": "full" + }, "parse": { - "us": 888.8, + "us": 876.1, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1319.0, + "us": 1314.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 703.2, + "us": 697.4, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1347.3, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1182.8, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 703.2, + "us": 697.4, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1182.8, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1201.8, + "us": 1191.5, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1203.7, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1319.0, + "us": 1314.2, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1347.3, "level": "full" }, "Document": { - "us": 1386.4, + "us": 1349.2, + "level": "full" + }, + "Document (raw numbers)": { + "us": 1368.5, "level": "full" } } @@ -2840,25 +5599,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 482.8, + "us": 479.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 415.7, + "us": 410.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 415.7, + "us": 410.5, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 482.8, + "us": 479.5, "level": "full" }, "Value": { - "us": 1654.8, + "us": 1660.9, "level": "full" } } @@ -2866,21 +5627,23 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 340.3, + "us": 332.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 340.3, + "us": 332.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 340.3, + "us": 332.7, "level": "full" }, "structs": { - "us": 410.5, + "us": 404.0, "level": "full" } } @@ -2888,21 +5651,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 374.7, + "us": 364.1, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 374.7, + "us": 364.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 374.7, + "us": 364.1, "level": "full" }, "borrowed (copy)": { - "us": 574.4, + "us": 564.7, "level": "full" } } @@ -2912,47 +5677,59 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 367.3, + "us": 362.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 367.3, + "us": 362.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 362.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 362.6, "level": "full" }, "variants": { "read (reused)": { - "us": 365.9, + "us": 362.6, "level": "full" }, "parse": { - "us": 367.3, + "us": 362.9, "level": "full" }, "structs (from_json)": { - "us": 382.7, + "us": 378.8, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 2439.3, + "variant": "parse", + "us": 2434.8, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 2439.3, + "variant": "parse", + "us": 2434.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 2439.3, + "parse": { + "us": 2434.8, "level": "full" }, - "parse": { - "us": 2440.5, + "structs (from_json)": { + "us": 2441.5, "level": "full" } } @@ -2960,21 +5737,39 @@ "yyjson": { "best": { "variant": "read", - "us": 480.7, + "us": 475.8, "level": "full" }, "best_any": { "variant": "read", - "us": 480.7, + "us": 475.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 486.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 486.6, "level": "full" }, "variants": { "read": { - "us": 480.7, + "us": 475.8, "level": "full" }, "insitu (copy)": { - "us": 482.3, + "us": 480.6, + "level": "full" + }, + "read (reused allocator)": { + "us": 486.6, + "level": "full" + }, + "read (raw numbers)": { + "us": 536.6, "level": "full" } } @@ -2982,29 +5777,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 509.8, + "us": 447.1, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 499.8, + "us": 351.6, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 449.5, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 351.0, "level": "partial" }, "variants": { - "DOM (reused)": { - "us": 496.9, - "level": "full" - }, "On-Demand (reused)": { - "us": 497.6, + "us": 351.0, "level": "partial" }, "On-Demand": { - "us": 499.8, + "us": 351.6, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 354.8, + "level": "partial" + }, + "On-Demand structs": { + "us": 370.5, "level": "partial" }, "DOM": { - "us": 509.8, + "us": 447.1, + "level": "full" + }, + "DOM (reused)": { + "us": 449.5, "level": "full" } } @@ -3013,12 +5826,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 992.3, + "us": 988.8, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 992.3, + "us": 988.8, "level": "no UTF-8" } } @@ -3026,77 +5841,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 872.9, + "us": 848.3, "level": "full" }, "best_any": { "variant": "structs", - "us": 252.5, + "us": 253.1, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 252.5, + "us": 253.1, "level": "partial" }, "structs (validate_skipped)": { - "us": 872.9, + "us": 848.3, + "level": "full" + }, + "generic (double, strict)": { + "us": 1959.7, + "level": "full" + }, + "generic (double)": { + "us": 1966.3, + "level": "partial" + }, + "generic (strict)": { + "us": 2730.7, "level": "full" }, "generic": { - "us": 2776.5, - "level": "full" + "us": 2736.3, + "level": "partial" }, "lazy_json": { - "us": 5160.2, + "us": 5138.8, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 1489.8, + "variant": "parse_into structs", + "us": 1205.5, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1489.8, + "variant": "parse_into structs", + "us": 1205.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1485.9, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1485.9, "level": "full" }, "variants": { + "parse_into structs": { + "us": 1205.5, + "level": "full" + }, + "parser (reused)": { + "us": 1485.9, + "level": "full" + }, "parse": { - "us": 1489.8, + "us": 1488.4, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1571.5, + "us": 1573.5, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1146.5, + "us": 1147.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1689.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1611.8, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1146.5, + "us": 1147.7, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1571.5, + "us": 1573.5, "level": "full" }, - "Document (no encoding check)": { - "us": 1618.2, + "Document (reused allocator) (no encoding check)": { + "us": 1611.8, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 1612.2, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1688.5, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1689.1, + "level": "full" + }, "Document": { - "us": 1694.8, + "us": 1692.5, + "level": "full" + }, + "Document (raw numbers)": { + "us": 1771.7, "level": "full" } } @@ -3104,25 +5983,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 1121.2, + "us": 1124.6, "level": "full" }, "best_any": { "variant": "structs", - "us": 1081.5, + "us": 1084.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1081.5, + "us": 1084.2, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 1121.2, + "us": 1124.6, "level": "full" }, "Value": { - "us": 2776.9, + "us": 2795.6, "level": "full" } } @@ -3130,21 +6011,23 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 700.3, + "us": 690.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 700.3, + "us": 690.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 700.3, + "us": 690.8, "level": "full" }, "structs": { - "us": 813.4, + "us": 812.8, "level": "full" } } @@ -3152,21 +6035,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 870.6, + "us": 913.8, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 870.6, + "us": 913.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 870.6, + "us": 913.8, "level": "full" }, "borrowed (copy)": { - "us": 1625.3, + "us": 1615.4, "level": "full" } } @@ -3175,26 +6060,36 @@ "canada": { "nlohmann json_document": { "best": { - "variant": "structs (from_json)", - "us": 987.3, + "variant": "parse", + "us": 959.4, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 987.3, + "variant": "parse", + "us": 959.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 959.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 959.1, "level": "full" }, "variants": { "read (reused)": { - "us": 986.8, - "level": "full" - }, - "structs (from_json)": { - "us": 987.3, + "us": 959.1, "level": "full" }, "parse": { - "us": 988.0, + "us": 959.4, + "level": "full" + }, + "structs (from_json)": { + "us": 959.5, "level": "full" } } @@ -3202,43 +6097,63 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 6066.1, + "us": 5915.4, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 6066.1, + "us": 5915.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 6066.1, + "us": 5915.4, "level": "full" }, "parse": { - "us": 6082.1, + "us": 5927.8, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 1493.3, + "variant": "insitu (copy)", + "us": 1488.0, "level": "full" }, "best_any": { - "variant": "read", - "us": 1493.3, + "variant": "insitu (copy)", + "us": 1488.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1491.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1491.1, "level": "full" }, "variants": { - "read": { - "us": 1493.3, + "insitu (copy)": { + "us": 1488.0, "level": "full" }, - "insitu (copy)": { - "us": 1496.6, + "read": { + "us": 1490.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 1491.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 1722.9, "level": "full" } } @@ -3246,29 +6161,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 2104.2, + "us": 1882.3, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 645.5, + "variant": "On-Demand (key selectors)", + "us": 563.8, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1881.9, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 563.9, "level": "partial" }, "variants": { + "On-Demand (key selectors)": { + "us": 563.8, + "level": "partial" + }, "On-Demand (reused)": { - "us": 644.9, + "us": 563.9, "level": "partial" }, "On-Demand": { - "us": 645.5, + "us": 564.5, + "level": "partial" + }, + "On-Demand structs": { + "us": 693.5, "level": "partial" }, "DOM (reused)": { - "us": 2100.2, + "us": 1881.9, "level": "full" }, "DOM": { - "us": 2104.2, + "us": 1882.3, "level": "full" } } @@ -3277,12 +6210,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 2589.7, + "us": 2579.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 2589.7, + "us": 2579.5, "level": "no UTF-8" } } @@ -3290,103 +6225,169 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1303.8, + "us": 1301.6, "level": "full" }, "best_any": { "variant": "structs", - "us": 315.8, + "us": 310.4, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 315.8, + "us": 310.4, "level": "partial" }, "structs (validate_skipped)": { - "us": 1303.8, + "us": 1301.6, "level": "full" }, "lazy_json": { - "us": 1999.2, + "us": 1992.2, "level": "partial" }, - "generic": { - "us": 9439.7, + "generic (double, strict)": { + "us": 5870.5, "level": "full" + }, + "generic (double)": { + "us": 5940.6, + "level": "partial" + }, + "generic (strict)": { + "us": 9211.5, + "level": "full" + }, + "generic": { + "us": 9225.8, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 3631.5, + "us": 3619.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 3631.5, + "us": 3619.3, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 3608.4, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 3608.4, "level": "full" }, "variants": { + "parser (reused)": { + "us": 3608.4, + "level": "full" + }, "parse": { - "us": 3631.5, + "us": 3619.3, + "level": "full" + }, + "parse_into structs": { + "us": 3749.0, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 6762.4, + "us": 6750.2, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 6762.4, + "us": 6750.2, "level": "full" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 7298.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7288.5, + "level": "no UTF-8" + }, "variants": { "insitu (copy)": { - "us": 6762.4, + "us": 6750.2, "level": "full" }, "insitu (copy) (no encoding check)": { - "us": 6780.9, + "us": 6757.5, "level": "no UTF-8" }, + "Document (reused allocator) (no encoding check)": { + "us": 7288.5, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 7298.0, + "level": "full" + }, "Document": { - "us": 7359.2, + "us": 7298.4, "level": "full" }, "Document (no encoding check)": { - "us": 7361.9, + "us": 7303.7, "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 9383.5, + "level": "no UTF-8" + }, + "Document (raw numbers)": { + "us": 9431.5, + "level": "full" } } }, "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 1532.5, + "us": 1559.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 1458.2, + "us": 1454.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1458.2, + "us": 1454.6, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 1532.5, + "us": 1559.5, "level": "full" }, "Value": { - "us": 7393.5, + "us": 7393.3, "level": "full" } } @@ -3394,21 +6395,23 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 1938.4, + "us": 1936.4, "level": "full" }, "best_any": { "variant": "Value", - "us": 1938.4, + "us": 1936.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1938.4, + "us": 1936.4, "level": "full" }, "structs": { - "us": 2091.8, + "us": 2073.5, "level": "full" } } @@ -3416,21 +6419,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 2660.2, + "us": 2656.7, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 2660.2, + "us": 2656.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 2660.2, + "us": 2656.7, "level": "full" }, "borrowed (copy)": { - "us": 4963.5, + "us": 4952.7, "level": "full" } } @@ -3440,25 +6445,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 24408.9, + "us": 24308.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 24408.9, + "us": 24308.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 23863.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 23863.5, "level": "full" }, "variants": { "read (reused)": { - "us": 23968.9, + "us": 23863.5, "level": "full" }, "parse": { - "us": 24408.9, + "us": 24308.0, "level": "full" }, "structs (from_json)": { - "us": 30627.1, + "us": 30153.9, "level": "full" } } @@ -3466,43 +6481,63 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 179365.5, + "us": 180550.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 179365.5, + "us": 180550.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 179365.5, + "us": 180550.9, "level": "full" }, "structs (from_json)": { - "us": 181709.3, + "us": 182340.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 33546.2, + "variant": "read (raw numbers)", + "us": 32182.5, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 33546.2, + "variant": "read (raw numbers)", + "us": 32182.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 32896.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 32896.5, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 33546.2, + "read (raw numbers)": { + "us": 32182.5, + "level": "full" + }, + "read (reused allocator)": { + "us": 32896.5, "level": "full" }, "read": { - "us": 33827.5, + "us": 32945.9, + "level": "full" + }, + "insitu (copy)": { + "us": 33278.6, "level": "full" } } @@ -3510,29 +6545,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 32074.8, + "us": 30172.9, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 18600.9, + "us": 19313.0, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 30252.7, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 19257.0, "level": "partial" }, "variants": { - "On-Demand": { - "us": 18600.9, + "On-Demand (reused)": { + "us": 19257.0, "level": "partial" }, - "On-Demand (reused)": { - "us": 18784.8, + "On-Demand": { + "us": 19313.0, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 21823.8, + "level": "partial" + }, + "On-Demand structs": { + "us": 26955.2, "level": "partial" }, "DOM": { - "us": 32074.8, + "us": 30172.9, "level": "full" }, "DOM (reused)": { - "us": 32321.7, + "us": 30252.7, "level": "full" } } @@ -3541,12 +6594,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 46921.7, + "us": 45319.8, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 46921.7, + "us": 45319.8, "level": "no UTF-8" } } @@ -3554,77 +6609,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 51045.7, + "us": 45909.0, "level": "full" }, "best_any": { "variant": "structs", - "us": 41037.3, + "us": 36348.3, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 41037.3, + "us": 36348.3, "level": "partial" }, "structs (validate_skipped)": { - "us": 51045.7, + "us": 45909.0, "level": "full" }, - "lazy_json": { - "us": 105379.2, + "generic (double, strict)": { + "us": 94735.8, + "level": "full" + }, + "generic (double)": { + "us": 94993.0, "level": "partial" }, - "generic": { - "us": 142630.0, + "lazy_json": { + "us": 98254.1, + "level": "partial" + }, + "generic (strict)": { + "us": 137092.8, "level": "full" + }, + "generic": { + "us": 138273.2, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 96756.8, + "variant": "parse_into structs", + "us": 66538.0, "level": "full" }, "best_any": { - "variant": "parse", - "us": 96756.8, + "variant": "parse_into structs", + "us": 66538.0, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 93973.1, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 93973.1, "level": "full" }, "variants": { + "parse_into structs": { + "us": 66538.0, + "level": "full" + }, + "parser (reused)": { + "us": 93973.1, + "level": "full" + }, "parse": { - "us": 96756.8, + "us": 94202.2, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 142740.2, + "us": 141640.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 66762.8, + "us": 65799.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 158768.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 142618.6, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 66762.8, + "us": 65799.2, "level": "no UTF-8" }, "insitu (copy)": { - "us": 142740.2, + "us": 141640.2, "level": "full" }, - "Document (no encoding check)": { - "us": 149260.4, + "Document (reused allocator) (no encoding check)": { + "us": 142618.6, "level": "no UTF-8" }, + "Document (raw numbers) (no encoding check)": { + "us": 145130.8, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 145318.8, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 158768.5, + "level": "full" + }, + "Document (raw numbers)": { + "us": 159796.0, + "level": "full" + }, "Document": { - "us": 162645.3, + "us": 160544.3, "level": "full" } } @@ -3632,25 +6751,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 63634.7, + "us": 62378.0, "level": "full" }, "best_any": { "variant": "from_utf8 + structs", - "us": 63634.7, + "us": 62378.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "from_utf8 + structs": { - "us": 63634.7, + "us": 62378.0, "level": "full" }, "structs": { - "us": 69672.1, + "us": 69059.3, "level": "no UTF-8" }, "Value": { - "us": 186130.3, + "us": 185477.0, "level": "full" } } @@ -3658,21 +6779,23 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 41202.8, + "us": 40660.1, "level": "full" }, "best_any": { "variant": "Value", - "us": 41202.8, + "us": 40660.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 41202.8, + "us": 40660.1, "level": "full" }, "structs": { - "us": 54535.4, + "us": 53704.8, "level": "full" } } @@ -3680,21 +6803,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 57877.0, + "us": 57697.4, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 57877.0, + "us": 57697.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 57877.0, + "us": 57697.4, "level": "full" }, "borrowed (copy)": { - "us": 64256.1, + "us": 64360.8, "level": "full" } } @@ -3712,6 +6837,16 @@ "us": 1.0, "level": "full" }, + "best_reused": { + "variant": "read (reused)", + "us": 1.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1.0, + "level": "full" + }, "variants": { "parse": { "us": 1.0, @@ -3738,6 +6873,8 @@ "us": 7.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (from_json)": { "us": 7.5, @@ -3760,7 +6897,21 @@ "us": 1.1, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.0, + "level": "full" + }, "variants": { + "read (reused allocator)": { + "us": 1.0, + "level": "full" + }, "read": { "us": 1.1, "level": "full" @@ -3768,35 +6919,57 @@ "insitu (copy)": { "us": 1.1, "level": "full" + }, + "read (raw numbers)": { + "us": 1.1, + "level": "full" } } }, "simdjson": { "best": { "variant": "DOM", - "us": 1.2, + "us": 1.1, "level": "full" }, "best_any": { - "variant": "On-Demand", + "variant": "On-Demand (key selectors)", + "us": 0.7, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.0, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", "us": 0.8, "level": "partial" }, "variants": { - "On-Demand (reused)": { + "On-Demand (key selectors)": { "us": 0.7, "level": "partial" }, - "On-Demand": { + "On-Demand (reused)": { + "us": 0.8, + "level": "partial" + }, + "On-Demand structs": { "us": 0.8, "level": "partial" }, "DOM (reused)": { - "us": 1.1, + "us": 1.0, "level": "full" }, + "On-Demand": { + "us": 1.0, + "level": "partial" + }, "DOM": { - "us": 1.2, + "us": 1.1, "level": "full" } } @@ -3808,6 +6981,8 @@ "us": 1.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { "us": 1.7, @@ -3823,12 +6998,14 @@ }, "best_any": { "variant": "structs", - "us": 1.1, + "us": 1.2, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1.1, + "us": 1.2, "level": "partial" }, "structs (validate_skipped)": { @@ -3839,28 +7016,64 @@ "us": 1.9, "level": "partial" }, + "generic (double)": { + "us": 5.1, + "level": "partial" + }, + "generic (double, strict)": { + "us": 5.1, + "level": "full" + }, + "generic (strict)": { + "us": 7.0, + "level": "full" + }, "generic": { "us": 7.1, - "level": "full" + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 3.8, + "variant": "parse_into structs", + "us": 2.7, "level": "full" }, "best_any": { - "variant": "parse", - "us": 3.8, + "variant": "parse_into structs", + "us": 2.7, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 3.5, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 3.5, "level": "full" }, "variants": { + "parse_into structs": { + "us": 2.7, + "level": "full" + }, + "parser (reused)": { + "us": 3.5, + "level": "full" + }, "parse": { "us": 3.8, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { @@ -3871,23 +7084,49 @@ }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 2.7, + "us": 2.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 6.3, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 5.4, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 2.7, + "us": 2.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 5.4, "level": "no UTF-8" }, "Document (no encoding check)": { "us": 6.0, "level": "no UTF-8" }, + "Document (raw numbers) (no encoding check)": { + "us": 6.1, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 6.3, + "level": "full" + }, "insitu (copy)": { "us": 6.4, "level": "full" }, "Document": { + "us": 6.7, + "level": "full" + }, + "Document (raw numbers)": { "us": 6.9, "level": "full" } @@ -3896,7 +7135,7 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 2.2, + "us": 2.3, "level": "full" }, "best_any": { @@ -3904,13 +7143,15 @@ "us": 1.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 1.9, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 2.2, + "us": 2.3, "level": "full" }, "Value": { @@ -3922,21 +7163,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 1.6, + "us": 1.7, "level": "full" }, "best_any": { "variant": "structs", - "us": 1.6, + "us": 1.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1.6, + "us": 1.7, "level": "full" }, "Value": { - "us": 1.6, + "us": 1.7, "level": "full" } } @@ -3944,21 +7187,791 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 2.0, + "us": 2.1, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 2.0, + "us": 2.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 2.0, + "us": 2.1, "level": "full" }, "borrowed (copy)": { - "us": 3.2, + "us": 3.3, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 162.4, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 162.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 160.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 160.5, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 160.5, + "level": "full" + }, + "parse": { + "us": 162.4, + "level": "full" + }, + "structs (from_json)": { + "us": 166.2, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "structs (from_json)", + "us": 1322.5, + "level": "full" + }, + "best_any": { + "variant": "structs (from_json)", + "us": 1322.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (from_json)": { + "us": 1322.5, + "level": "full" + }, + "parse": { + "us": 1323.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 168.6, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 168.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 165.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 165.1, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 165.1, + "level": "full" + }, + "insitu (copy)": { + "us": 168.6, + "level": "full" + }, + "read": { + "us": 170.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 184.3, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 178.5, + "level": "full" + }, + "best_any": { + "variant": "On-Demand structs", + "us": 107.8, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 180.5, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 119.2, + "level": "partial" + }, + "variants": { + "On-Demand structs": { + "us": 107.8, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 112.9, + "level": "partial" + }, + "On-Demand": { + "us": 118.4, + "level": "partial" + }, + "On-Demand (reused)": { + "us": 119.2, + "level": "partial" + }, + "DOM": { + "us": 178.5, + "level": "full" + }, + "DOM (reused)": { + "us": 180.5, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 261.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 261.1, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "structs (validate_skipped)", + "us": 263.8, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 215.7, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 215.7, + "level": "partial" + }, + "structs (validate_skipped)": { + "us": 263.8, + "level": "full" + }, + "lazy_json": { + "us": 441.6, + "level": "partial" + }, + "generic (double, strict)": { + "us": 888.7, + "level": "full" + }, + "generic (double)": { + "us": 892.4, + "level": "partial" + }, + "generic": { + "us": 1228.6, + "level": "partial" + }, + "generic (strict)": { + "us": 1228.6, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse_into structs", + "us": 542.3, + "level": "full" + }, + "best_any": { + "variant": "parse_into structs", + "us": 542.3, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 779.2, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 779.2, + "level": "full" + }, + "variants": { + "parse_into structs": { + "us": 542.3, + "level": "full" + }, + "parser (reused)": { + "us": 779.2, + "level": "full" + }, + "parse": { + "us": 791.6, + "level": "full" + } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1076.3, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 475.9, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1172.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1013.3, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 475.9, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1013.3, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1028.9, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1041.5, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1076.3, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1172.2, + "level": "full" + }, + "Document": { + "us": 1172.8, + "level": "full" + }, + "Document (raw numbers)": { + "us": 1194.8, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + structs", + "us": 411.5, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 327.7, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 327.7, + "level": "no UTF-8" + }, + "from_utf8 + structs": { + "us": 411.5, + "level": "full" + }, + "Value": { + "us": 1484.4, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 242.4, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 242.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 242.4, + "level": "full" + }, + "structs": { + "us": 301.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "structs (copy)", + "us": 328.5, + "level": "full" + }, + "best_any": { + "variant": "structs (copy)", + "us": 328.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (copy)": { + "us": 328.5, + "level": "full" + }, + "borrowed (copy)": { + "us": 528.5, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 247.0, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 247.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 246.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 246.6, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 246.6, + "level": "full" + }, + "parse": { + "us": 247.0, + "level": "full" + }, + "structs (from_json)": { + "us": 263.2, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse", + "us": 2314.5, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 2314.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 2314.5, + "level": "full" + }, + "structs (from_json)": { + "us": 2325.2, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 287.2, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 287.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 286.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 286.9, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 286.9, + "level": "full" + }, + "read": { + "us": 287.2, + "level": "full" + }, + "insitu (copy)": { + "us": 288.4, + "level": "full" + }, + "read (raw numbers)": { + "us": 343.8, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 321.2, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 221.5, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 320.8, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 218.9, + "level": "partial" + }, + "variants": { + "On-Demand (reused)": { + "us": 218.9, + "level": "partial" + }, + "On-Demand": { + "us": 221.5, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 223.6, + "level": "partial" + }, + "On-Demand structs": { + "us": 238.7, + "level": "partial" + }, + "DOM (reused)": { + "us": 320.8, + "level": "full" + }, + "DOM": { + "us": 321.2, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 548.5, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 548.5, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "structs (validate_skipped)", + "us": 469.1, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 131.8, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 131.8, + "level": "partial" + }, + "structs (validate_skipped)": { + "us": 469.1, + "level": "full" + }, + "lazy_json": { + "us": 1270.5, + "level": "partial" + }, + "generic (double)": { + "us": 1610.3, + "level": "partial" + }, + "generic (double, strict)": { + "us": 1610.9, + "level": "full" + }, + "generic": { + "us": 2402.8, + "level": "partial" + }, + "generic (strict)": { + "us": 2409.7, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse_into structs", + "us": 691.3, + "level": "full" + }, + "best_any": { + "variant": "parse_into structs", + "us": 691.3, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 948.3, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 948.3, + "level": "full" + }, + "variants": { + "parse_into structs": { + "us": 691.3, + "level": "full" + }, + "parse": { + "us": 947.5, + "level": "full" + }, + "parser (reused)": { + "us": 948.3, + "level": "full" + } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1119.4, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 749.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1237.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1143.9, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 749.8, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1119.4, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1143.9, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1149.5, + "level": "no UTF-8" + }, + "Document": { + "us": 1217.2, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1237.8, + "level": "full" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1364.6, + "level": "no UTF-8" + }, + "Document (raw numbers)": { + "us": 1427.0, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + structs", + "us": 522.5, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 518.3, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 518.3, + "level": "no UTF-8" + }, + "from_utf8 + structs": { + "us": 522.5, + "level": "full" + }, + "Value": { + "us": 2293.7, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 393.9, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 393.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 393.9, + "level": "full" + }, + "structs": { + "us": 586.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "structs (copy)", + "us": 663.0, + "level": "full" + }, + "best_any": { + "variant": "structs (copy)", + "us": 663.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (copy)": { + "us": 663.0, + "level": "full" + }, + "borrowed (copy)": { + "us": 1370.3, "level": "full" } } @@ -3970,21 +7983,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 279.6, + "us": 281.0, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 279.6, + "us": 281.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 279.6, + "us": 281.0, "level": "full" }, "editable": { - "us": 289.7, + "us": 282.7, "level": "full" } } @@ -3992,43 +8007,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 1269.3, + "us": 1269.6, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 1269.3, + "us": 1269.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 1269.3, + "us": 1269.6, "level": "full" }, "parse": { - "us": 1614.5, + "us": 1628.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 437.9, + "variant": "mut copy", + "us": 438.4, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 437.9, + "variant": "mut copy", + "us": 438.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 437.9, + "mut copy": { + "us": 438.4, "level": "full" }, - "mut copy": { - "us": 456.2, + "insitu (copy) + mut copy": { + "us": 439.8, "level": "full" } } @@ -4037,48 +8056,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 489.5, + "us": 481.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 489.5, + "us": 481.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 1503.3, + "variant": "generic (strict)", + "us": 1526.0, "level": "full" }, "best_any": { "variant": "generic", - "us": 1503.3, - "level": "full" + "us": 1515.6, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 1503.3, + "us": 1515.6, + "level": "partial" + }, + "generic (strict)": { + "us": 1526.0, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 1367.2, + "us": 1362.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 1367.2, + "us": 1362.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 1367.2, + "us": 1362.9, "level": "full" } } @@ -4086,29 +8119,31 @@ "RapidJSON": { "best": { "variant": "Document", - "us": 1917.3, + "us": 1913.9, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1348.7, + "us": 1350.4, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 1348.7, + "us": 1350.4, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1754.6, + "us": 1750.9, "level": "no UTF-8" }, "Document": { - "us": 1917.3, + "us": 1913.9, "level": "full" }, "insitu (copy)": { - "us": 1933.7, + "us": 1929.5, "level": "full" } } @@ -4116,17 +8151,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 2000.6, + "us": 2008.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 2000.6, + "us": 2008.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2000.6, + "us": 2008.8, "level": "full" } } @@ -4134,17 +8171,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 633.9, + "us": 633.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 633.9, + "us": 633.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 633.9, + "us": 633.8, "level": "full" } } @@ -4152,21 +8191,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 933.5, + "us": 948.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 933.5, + "us": 948.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 933.5, + "us": 948.5, "level": "full" }, "owned (copy)": { - "us": 1366.5, + "us": 1369.9, "level": "full" } } @@ -4175,22 +8216,24 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 558.7, + "variant": "editable", + "us": 557.0, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 558.7, + "variant": "editable", + "us": 557.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 558.7, + "editable": { + "us": 557.0, "level": "full" }, - "editable": { - "us": 560.3, + "editable (source numbers)": { + "us": 557.6, "level": "full" } } @@ -4198,43 +8241,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2376.2, + "us": 2337.2, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2376.2, + "us": 2337.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 2376.2, + "us": 2337.2, "level": "full" }, "parse": { - "us": 2730.8, + "us": 2739.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 899.9, + "variant": "insitu (copy) + mut copy", + "us": 897.2, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 899.9, + "variant": "insitu (copy) + mut copy", + "us": 897.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "mut copy": { - "us": 899.9, + "insitu (copy) + mut copy": { + "us": 897.2, "level": "full" }, - "insitu (copy) + mut copy": { - "us": 903.8, + "mut copy": { + "us": 897.5, "level": "full" } } @@ -4243,48 +8290,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 1227.2, + "us": 1219.8, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1227.2, + "us": 1219.8, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 3223.4, + "variant": "generic (strict)", + "us": 3206.0, "level": "full" }, "best_any": { - "variant": "generic", - "us": 3223.4, + "variant": "generic (strict)", + "us": 3206.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 3223.4, + "generic (strict)": { + "us": 3206.0, "level": "full" + }, + "generic": { + "us": 3217.2, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 1999.4, + "us": 1994.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 1999.4, + "us": 1994.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 1999.4, + "us": 1994.7, "level": "full" } } @@ -4292,29 +8353,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2404.2, + "us": 2398.9, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1986.8, + "us": 1974.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 1986.8, + "us": 1974.0, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2404.2, + "us": 2398.9, "level": "full" }, "Document (no encoding check)": { - "us": 2431.6, + "us": 2430.4, "level": "no UTF-8" }, "Document": { - "us": 2524.0, + "us": 2515.0, "level": "full" } } @@ -4322,17 +8385,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 3287.0, + "us": 3316.2, "level": "full" }, "best_any": { "variant": "Value", - "us": 3287.0, + "us": 3316.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 3287.0, + "us": 3316.2, "level": "full" } } @@ -4340,17 +8405,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 1264.1, + "us": 1256.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 1264.1, + "us": 1256.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1264.1, + "us": 1256.8, "level": "full" } } @@ -4358,21 +8425,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 2110.9, + "us": 2102.2, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 2110.9, + "us": 2102.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 2110.9, + "us": 2102.2, "level": "full" }, "owned (copy)": { - "us": 2613.2, + "us": 2642.9, "level": "full" } } @@ -4382,21 +8451,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 1462.5, + "us": 1462.2, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 1462.5, + "us": 1462.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 1462.5, + "us": 1462.2, "level": "full" }, "editable": { - "us": 2742.3, + "us": 2747.1, "level": "full" } } @@ -4404,21 +8475,23 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 8194.4, + "us": 8183.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 8194.4, + "us": 8183.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 8194.4, + "us": 8183.3, "level": "full" }, "ordered_json": { - "us": 8333.0, + "us": 8285.3, "level": "full" } } @@ -4426,21 +8499,23 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 3693.8, + "us": 3681.3, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 3693.8, + "us": 3681.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) + mut copy": { - "us": 3693.8, + "us": 3681.3, "level": "full" }, "mut copy": { - "us": 3697.7, + "us": 3697.2, "level": "full" } } @@ -4449,48 +8524,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 5655.3, + "us": 5623.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 5655.3, + "us": 5623.1, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 11125.3, + "variant": "generic (strict)", + "us": 10930.3, "level": "full" }, "best_any": { "variant": "generic", - "us": 11125.3, - "level": "full" + "us": 10903.0, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 11125.3, + "us": 10903.0, + "level": "partial" + }, + "generic (strict)": { + "us": 10930.3, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 6541.6, + "us": 6500.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 6541.6, + "us": 6500.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 6541.6, + "us": 6500.2, "level": "full" } } @@ -4498,47 +8587,51 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 13880.1, + "us": 13710.8, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 13880.1, - "level": "full" + "variant": "insitu (copy) (no encoding check)", + "us": 13705.6, + "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy)": { - "us": 13880.1, - "level": "full" - }, "insitu (copy) (no encoding check)": { - "us": 13964.7, + "us": 13705.6, "level": "no UTF-8" }, - "Document": { - "us": 14450.3, + "insitu (copy)": { + "us": 13710.8, "level": "full" }, "Document (no encoding check)": { - "us": 14498.4, + "us": 14232.8, "level": "no UTF-8" + }, + "Document": { + "us": 14275.5, + "level": "full" } } }, "serde_json": { "best": { "variant": "Value", - "us": 9670.1, + "us": 9666.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 9670.1, + "us": 9666.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 9670.1, + "us": 9666.5, "level": "full" } } @@ -4546,17 +8639,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 4378.8, + "us": 4395.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 4378.8, + "us": 4395.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 4378.8, + "us": 4395.7, "level": "full" } } @@ -4564,21 +8659,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 7695.4, + "us": 7654.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 7695.4, + "us": 7654.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 7695.4, + "us": 7654.5, "level": "full" }, "owned (copy)": { - "us": 7696.9, + "us": 7656.5, "level": "full" } } @@ -4588,21 +8685,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 58265.3, + "us": 57355.0, "level": "full" }, "best_any": { "variant": "editable", - "us": 58265.3, + "us": 57355.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable": { - "us": 58265.3, + "us": 57355.0, "level": "full" }, "editable (source numbers)": { - "us": 58343.2, + "us": 57488.6, "level": "full" } } @@ -4610,43 +8709,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 173089.2, + "us": 173043.8, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 173089.2, + "us": 173043.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 173089.2, + "us": 173043.8, "level": "full" }, "parse": { - "us": 275845.7, + "us": 243365.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 84446.8, + "variant": "insitu (copy) + mut copy", + "us": 83160.3, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 84446.8, + "variant": "insitu (copy) + mut copy", + "us": 83160.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "mut copy": { - "us": 84446.8, + "insitu (copy) + mut copy": { + "us": 83160.3, "level": "full" }, - "insitu (copy) + mut copy": { - "us": 84978.3, + "mut copy": { + "us": 83304.3, "level": "full" } } @@ -4655,48 +8758,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 63940.2, + "us": 62390.4, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 63940.2, + "us": 62390.4, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 187293.5, + "variant": "generic (strict)", + "us": 177272.1, "level": "full" }, "best_any": { "variant": "generic", - "us": 187293.5, - "level": "full" + "us": 176000.5, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 187293.5, + "us": 176000.5, + "level": "partial" + }, + "generic (strict)": { + "us": 177272.1, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 157555.0, + "us": 154406.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 157555.0, + "us": 154406.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 157555.0, + "us": 154406.2, "level": "full" } } @@ -4704,29 +8821,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 224650.0, + "us": 220628.6, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 148238.6, + "us": 144275.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 148238.6, + "us": 144275.2, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 224099.0, + "us": 220291.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 224650.0, + "us": 220628.6, "level": "full" }, "Document": { - "us": 238121.3, + "us": 236029.4, "level": "full" } } @@ -4734,17 +8853,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 248681.1, + "us": 251930.6, "level": "full" }, "best_any": { "variant": "Value", - "us": 248681.1, + "us": 251930.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 248681.1, + "us": 251930.6, "level": "full" } } @@ -4752,17 +8873,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 140693.4, + "us": 140935.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 140693.4, + "us": 140935.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 140693.4, + "us": 140935.8, "level": "full" } } @@ -4770,21 +8893,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 111832.4, + "us": 110693.4, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 111832.4, + "us": 110693.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 111832.4, + "us": 110693.4, "level": "full" }, "owned (copy)": { - "us": 192828.3, + "us": 182773.4, "level": "full" } } @@ -4802,6 +8927,8 @@ "us": 1.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable": { "us": 1.9, @@ -4816,21 +8943,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 7.1, + "us": 7.0, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 7.1, + "us": 7.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 7.1, + "us": 7.0, "level": "full" }, "parse": { - "us": 8.6, + "us": 8.7, "level": "full" } } @@ -4846,6 +8975,8 @@ "us": 2.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "mut copy": { "us": 2.4, @@ -4861,48 +8992,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 2.6, + "us": 2.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 2.6, + "us": 2.5, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", + "variant": "generic (strict)", "us": 8.2, "level": "full" }, "best_any": { "variant": "generic", "us": 8.2, - "level": "full" + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { + "us": 8.2, + "level": "partial" + }, + "generic (strict)": { "us": 8.2, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 6.6, + "us": 6.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 6.6, + "us": 6.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 6.6, + "us": 6.5, "level": "full" } } @@ -4910,17 +9055,19 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 10.3, + "us": 10.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 6.5, + "us": 6.4, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 6.5, + "us": 6.4, "level": "no UTF-8" }, "Document (no encoding check)": { @@ -4928,11 +9075,11 @@ "level": "no UTF-8" }, "insitu (copy)": { - "us": 10.3, + "us": 10.2, "level": "full" }, "Document": { - "us": 10.5, + "us": 10.4, "level": "full" } } @@ -4940,17 +9087,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 9.3, + "us": 9.6, "level": "full" }, "best_any": { "variant": "Value", - "us": 9.3, + "us": 9.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 9.3, + "us": 9.6, "level": "full" } } @@ -4966,6 +9115,8 @@ "us": 3.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { "us": 3.8, @@ -4976,21 +9127,491 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 5.3, + "us": 5.4, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 5.3, + "us": 5.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 5.3, + "us": 5.4, "level": "full" }, "owned (copy)": { - "us": 7.6, + "us": 7.7, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "editable", + "us": 261.8, + "level": "full" + }, + "best_any": { + "variant": "editable", + "us": 261.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "editable": { + "us": 261.8, + "level": "full" + }, + "editable (source numbers)": { + "us": 262.2, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "ordered_json", + "us": 1234.3, + "level": "full" + }, + "best_any": { + "variant": "ordered_json", + "us": 1234.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "ordered_json": { + "us": 1234.3, + "level": "full" + }, + "parse": { + "us": 1583.0, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy) + mut copy", + "us": 416.9, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) + mut copy", + "us": 416.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) + mut copy": { + "us": 416.9, + "level": "full" + }, + "mut copy": { + "us": 417.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 357.0, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 357.0, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 1419.2, + "level": "full" + }, + "best_any": { + "variant": "generic", + "us": 1412.3, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 1412.3, + "level": "partial" + }, + "generic (strict)": { + "us": 1419.2, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse", + "us": 1265.9, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 1265.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 1265.9, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1680.5, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1121.2, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1121.2, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1580.1, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1680.5, + "level": "full" + }, + "Document": { + "us": 1729.0, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 1876.8, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 1876.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 1876.8, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 539.1, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 539.1, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 539.1, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 913.3, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 913.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 913.3, + "level": "full" + }, + "owned (copy)": { + "us": 1350.8, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "editable (source numbers)", + "us": 441.5, + "level": "full" + }, + "best_any": { + "variant": "editable (source numbers)", + "us": 441.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "editable (source numbers)": { + "us": 441.5, + "level": "full" + }, + "editable": { + "us": 441.6, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "ordered_json", + "us": 2212.6, + "level": "full" + }, + "best_any": { + "variant": "ordered_json", + "us": 2212.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "ordered_json": { + "us": 2212.6, + "level": "full" + }, + "parse": { + "us": 2622.3, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "mut copy", + "us": 705.3, + "level": "full" + }, + "best_any": { + "variant": "mut copy", + "us": 705.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "mut copy": { + "us": 705.3, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 705.5, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 774.8, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 774.8, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 2864.9, + "level": "full" + }, + "best_any": { + "variant": "generic (strict)", + "us": 2864.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (strict)": { + "us": 2864.9, + "level": "full" + }, + "generic": { + "us": 2867.5, + "level": "partial" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse", + "us": 1459.5, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 1459.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 1459.5, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1944.3, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1573.0, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1573.0, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1944.3, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1956.5, + "level": "no UTF-8" + }, + "Document": { + "us": 2036.9, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 2840.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 2840.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 2840.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 971.7, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 971.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 971.7, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 1879.4, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 1879.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 1879.4, + "level": "full" + }, + "owned (copy)": { + "us": 2396.3, "level": "full" } } @@ -5002,25 +9623,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 253.5, + "us": 252.8, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 253.5, + "us": 252.8, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 248.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 248.5, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 249.9, + "us": 248.5, "level": "full" }, "parse + dump (source numbers)": { - "us": 253.5, + "us": 252.8, "level": "full" }, "parse + dump": { - "us": 263.5, + "us": 254.1, "level": "full" } } @@ -5028,17 +9659,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 1591.6, + "us": 1598.8, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 1591.6, + "us": 1598.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 1591.6, + "us": 1598.8, "level": "full" } } @@ -5046,21 +9679,39 @@ "yyjson": { "best": { "variant": "insitu (copy) + write", - "us": 289.0, + "us": 289.2, "level": "full" }, "best_any": { "variant": "insitu (copy) + write", - "us": 289.0, + "us": 289.2, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 294.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 294.8, "level": "full" }, "variants": { "insitu (copy) + write": { - "us": 289.0, + "us": 289.2, "level": "full" }, "read + write": { - "us": 305.5, + "us": 291.3, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 294.8, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 307.5, "level": "full" } } @@ -5068,25 +9719,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 589.5, + "us": 567.0, "level": "full" }, "best_any": { "variant": "minify", - "us": 65.0, + "us": 61.3, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 553.2, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 553.2, + "level": "full" + }, "variants": { "minify": { - "us": 65.0, + "us": 61.3, "level": "partial" }, "DOM (reused) + to_string": { - "us": 566.1, + "us": 553.2, "level": "full" }, "DOM + to_string": { - "us": 589.5, + "us": 567.0, "level": "full" } } @@ -5095,52 +9756,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 496.8, + "us": 495.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 496.8, + "us": 495.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 1488.2, + "variant": "generic (strict)", + "us": 1500.7, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 283.1, + "us": 279.2, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 283.1, + "us": 279.2, "level": "partial" }, "generic": { - "us": 1488.2, + "us": 1493.4, + "level": "partial" + }, + "generic (strict)": { + "us": 1500.7, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1391.4, + "us": 1378.5, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1391.4, + "us": 1378.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1375.8, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1375.8, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 1375.8, + "level": "full" + }, "parse + serialize": { - "us": 1391.4, + "us": 1378.5, "level": "full" } } @@ -5148,37 +9835,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 1497.0, + "us": 1499.0, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 1309.7, + "us": 1299.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 1972.7, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 1798.8, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 1309.7, + "us": 1299.5, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1331.0, + "us": 1319.4, "level": "no UTF-8" }, "SAX to Writer": { - "us": 1497.0, + "us": 1499.0, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 1516.0, + "us": 1513.5, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 1792.6, + "us": 1792.0, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 1798.8, "level": "no UTF-8" }, "Document + Writer": { - "us": 1968.7, + "us": 1960.9, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 1972.7, "level": "full" } } @@ -5186,17 +9891,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 1999.3, + "us": 2004.2, "level": "full" }, "best_any": { "variant": "Value", - "us": 1999.3, + "us": 2004.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1999.3, + "us": 2004.2, "level": "full" } } @@ -5204,17 +9911,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 545.8, + "us": 535.3, "level": "full" }, "best_any": { "variant": "Value", - "us": 545.8, + "us": 535.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 545.8, + "us": 535.3, "level": "full" } } @@ -5222,17 +9931,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 958.7, + "us": 951.9, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 958.7, + "us": 951.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 958.7, + "us": 951.9, "level": "full" } } @@ -5241,26 +9952,36 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 491.9, + "variant": "parse + dump", + "us": 492.2, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 491.9, + "variant": "parse + dump", + "us": 492.2, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 492.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 492.2, "level": "full" }, "variants": { - "parse + dump (source numbers)": { - "us": 491.9, + "parse + dump": { + "us": 492.2, "level": "full" }, "read + dump (reused)": { - "us": 493.6, + "us": 492.2, "level": "full" }, - "parse + dump": { - "us": 495.6, + "parse + dump (source numbers)": { + "us": 493.6, "level": "full" } } @@ -5268,17 +9989,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 2694.2, + "us": 2716.4, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 2694.2, + "us": 2716.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 2694.2, + "us": 2716.4, "level": "full" } } @@ -5286,21 +10009,39 @@ "yyjson": { "best": { "variant": "insitu (copy) + write", - "us": 640.0, + "us": 635.1, "level": "full" }, "best_any": { "variant": "insitu (copy) + write", - "us": 640.0, + "us": 635.1, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 647.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 647.2, "level": "full" }, "variants": { "insitu (copy) + write": { - "us": 640.0, + "us": 635.1, "level": "full" }, "read + write": { - "us": 642.7, + "us": 640.0, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 647.2, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 707.2, "level": "full" } } @@ -5308,25 +10049,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 989.6, + "us": 920.2, "level": "full" }, "best_any": { "variant": "minify", - "us": 177.8, + "us": 168.2, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 904.6, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 904.6, + "level": "full" + }, "variants": { "minify": { - "us": 177.8, + "us": 168.2, "level": "partial" }, "DOM (reused) + to_string": { - "us": 981.2, + "us": 904.6, "level": "full" }, "DOM + to_string": { - "us": 989.6, + "us": 920.2, "level": "full" } } @@ -5335,52 +10086,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1219.0, + "us": 1218.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1219.0, + "us": 1218.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 3208.1, + "variant": "generic (strict)", + "us": 3178.8, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 740.4, + "us": 726.3, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 740.4, + "us": 726.3, "level": "partial" }, - "generic": { - "us": 3208.1, + "generic (strict)": { + "us": 3178.8, "level": "full" + }, + "generic": { + "us": 3180.0, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1986.8, + "us": 1983.8, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1986.8, + "us": 1983.8, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1982.5, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1982.5, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 1982.5, + "level": "full" + }, "parse + serialize": { - "us": 1986.8, + "us": 1983.8, "level": "full" } } @@ -5388,37 +10165,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 1796.8, + "us": 1797.3, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 1698.6, + "us": 1697.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2519.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2442.6, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 1698.6, + "us": 1697.0, "level": "no UTF-8" }, "SAX to Writer": { - "us": 1796.8, + "us": 1797.3, "level": "full" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1942.8, + "us": 1936.6, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 2045.4, + "us": 2050.5, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 2431.0, + "us": 2431.9, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2442.6, "level": "no UTF-8" }, "Document + Writer": { - "us": 2519.4, + "us": 2510.9, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 2519.5, "level": "full" } } @@ -5426,17 +10221,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 3239.8, + "us": 3290.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 3239.8, + "us": 3290.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 3239.8, + "us": 3290.5, "level": "full" } } @@ -5444,17 +10241,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 1138.6, + "us": 1134.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 1138.6, + "us": 1134.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1138.6, + "us": 1134.5, "level": "full" } } @@ -5462,17 +10261,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 2097.0, + "us": 2111.0, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 2097.0, + "us": 2111.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 2097.0, + "us": 2111.0, "level": "full" } } @@ -5482,25 +10283,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 1341.0, + "us": 1357.7, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 1341.0, + "us": 1357.7, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 2577.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 2577.3, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 1341.0, - "level": "full" - }, - "parse + dump": { - "us": 2566.2, + "us": 1357.7, "level": "full" }, "read + dump (reused)": { - "us": 2566.9, + "us": 2577.3, + "level": "full" + }, + "parse + dump": { + "us": 2577.7, "level": "full" } } @@ -5508,39 +10319,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 8279.6, + "us": 8185.0, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 8279.6, + "us": 8185.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 8279.6, + "us": 8185.0, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 3212.9, + "variant": "read (raw numbers) + write", + "us": 2515.7, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 3212.9, + "variant": "read (raw numbers) + write", + "us": 2515.7, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 3209.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 3209.3, "level": "full" }, "variants": { + "read (raw numbers) + write": { + "us": 2515.7, + "level": "full" + }, "read + write": { - "us": 3212.9, + "us": 3208.7, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 3209.3, "level": "full" }, "insitu (copy) + write": { - "us": 3216.8, + "us": 3210.4, "level": "full" } } @@ -5548,25 +10379,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 8949.4, + "us": 5025.8, "level": "full" }, "best_any": { "variant": "minify", - "us": 235.7, + "us": 227.5, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 5044.3, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 5044.3, + "level": "full" + }, "variants": { "minify": { - "us": 235.7, + "us": 227.5, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 8934.7, + "DOM + to_string": { + "us": 5025.8, "level": "full" }, - "DOM + to_string": { - "us": 8949.4, + "DOM (reused) + to_string": { + "us": 5044.3, "level": "full" } } @@ -5575,52 +10416,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 5657.8, + "us": 5627.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 5657.8, + "us": 5627.7, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 11075.5, + "variant": "generic (strict)", + "us": 10937.3, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 1808.5, + "us": 1705.3, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 1808.5, + "us": 1705.3, "level": "partial" }, "generic": { - "us": 11075.5, + "us": 10932.2, + "level": "partial" + }, + "generic (strict)": { + "us": 10937.3, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 6585.9, + "us": 6504.8, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 6585.9, + "us": 6504.8, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 6492.0, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 6492.0, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 6492.0, + "level": "full" + }, "parse + serialize": { - "us": 6585.9, + "us": 6504.8, "level": "full" } } @@ -5628,37 +10495,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 10856.1, + "us": 10872.4, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers)", - "us": 10856.1, + "variant": "SAX to Writer (raw numbers) (no encoding check)", + "us": 10848.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 14254.1, "level": "full" }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 14198.7, + "level": "no UTF-8" + }, "variants": { + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 10848.5, + "level": "no UTF-8" + }, "SAX to Writer (raw numbers)": { - "us": 10856.1, + "us": 10872.4, "level": "full" }, - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 10926.6, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 14198.7, "level": "no UTF-8" }, "Document + Writer": { - "us": 14455.2, + "us": 14204.8, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 14508.8, + "us": 14214.2, "level": "no UTF-8" }, + "Document + Writer (reused allocator)": { + "us": 14254.1, + "level": "full" + }, "SAX to Writer": { - "us": 15537.8, + "us": 15425.5, "level": "full" }, "SAX to Writer (no encoding check)": { - "us": 15564.8, + "us": 15441.1, "level": "no UTF-8" } } @@ -5666,17 +10551,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 9748.2, + "us": 9792.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 9748.2, + "us": 9792.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 9748.2, + "us": 9792.5, "level": "full" } } @@ -5684,17 +10571,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 4365.8, + "us": 4376.6, "level": "full" }, "best_any": { "variant": "Value", - "us": 4365.8, + "us": 4376.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 4365.8, + "us": 4376.6, "level": "full" } } @@ -5702,17 +10591,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 7743.3, + "us": 7657.9, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 7743.3, + "us": 7657.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 7743.3, + "us": 7657.9, "level": "full" } } @@ -5721,26 +10612,36 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 37792.5, + "variant": "parse + dump", + "us": 37096.5, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 37792.5, + "variant": "parse + dump", + "us": 37096.5, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 36773.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 36773.4, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 37330.5, - "level": "full" - }, - "parse + dump (source numbers)": { - "us": 37792.5, + "us": 36773.4, "level": "full" }, "parse + dump": { - "us": 37935.8, + "us": 37096.5, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 37278.1, "level": "full" } } @@ -5748,39 +10649,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 200923.1, + "us": 201406.9, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 200923.1, + "us": 201406.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 200923.1, + "us": 201406.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 50740.5, + "variant": "insitu (copy) + write", + "us": 50039.3, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 50740.5, + "variant": "insitu (copy) + write", + "us": 50039.3, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 49960.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 49960.1, "level": "full" }, "variants": { - "read + write": { - "us": 50740.5, + "read + write (reused allocator)": { + "us": 49960.1, "level": "full" }, "insitu (copy) + write": { - "us": 50812.1, + "us": 50039.3, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 50378.1, + "level": "full" + }, + "read + write": { + "us": 50484.5, "level": "full" } } @@ -5788,25 +10709,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 82231.7, + "us": 81799.5, "level": "full" }, "best_any": { "variant": "minify", - "us": 5929.0, + "us": 5682.3, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 81483.0, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 81483.0, + "level": "full" + }, "variants": { "minify": { - "us": 5929.0, + "us": 5682.3, "level": "partial" }, "DOM (reused) + to_string": { - "us": 82027.3, + "us": 81483.0, "level": "full" }, "DOM + to_string": { - "us": 82231.7, + "us": 81799.5, "level": "full" } } @@ -5815,52 +10746,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 61948.5, + "us": 60548.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 61948.5, + "us": 60548.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 172917.3, + "variant": "generic (strict)", + "us": 168732.8, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 39975.5, + "us": 39268.1, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 39975.5, + "us": 39268.1, "level": "partial" }, "generic": { - "us": 172917.3, + "us": 165865.5, + "level": "partial" + }, + "generic (strict)": { + "us": 168732.8, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 154714.4, + "us": 151127.4, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 154714.4, + "us": 151127.4, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 150855.8, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 150855.8, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 150855.8, + "level": "full" + }, "parse + serialize": { - "us": 154714.4, + "us": 151127.4, "level": "full" } } @@ -5868,37 +10825,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 181502.0, + "us": 180015.2, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 167460.8, + "variant": "SAX to Writer (no encoding check)", + "us": 164086.3, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 237517.6, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 222919.4, "level": "no UTF-8" }, "variants": { - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 167460.8, + "SAX to Writer (no encoding check)": { + "us": 164086.3, "level": "no UTF-8" }, - "SAX to Writer (no encoding check)": { - "us": 167920.2, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 164353.2, "level": "no UTF-8" }, "SAX to Writer": { - "us": 181502.0, + "us": 180015.2, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 182128.9, + "us": 180059.2, "level": "full" }, - "Document + Writer (no encoding check)": { - "us": 227713.6, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 222919.4, "level": "no UTF-8" }, + "Document + Writer (no encoding check)": { + "us": 223145.4, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 237517.6, + "level": "full" + }, "Document + Writer": { - "us": 242784.5, + "us": 239633.5, "level": "full" } } @@ -5906,17 +10881,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 227300.9, + "us": 227369.3, "level": "full" }, "best_any": { "variant": "Value", - "us": 227300.9, + "us": 227369.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 227300.9, + "us": 227369.3, "level": "full" } } @@ -5924,17 +10901,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 64830.1, + "us": 64832.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 64830.1, + "us": 64832.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 64830.1, + "us": 64832.5, "level": "full" } } @@ -5942,17 +10921,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 107444.2, + "us": 108129.8, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 107444.2, + "us": 108129.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 107444.2, + "us": 108129.8, "level": "full" } } @@ -5962,25 +10943,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump", - "us": 1.5, + "us": 1.4, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 1.5, + "us": 1.4, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 1.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 1.4, "level": "full" }, "variants": { - "read + dump (reused)": { + "parse + dump": { "us": 1.4, "level": "full" }, - "parse + dump": { - "us": 1.5, + "parse + dump (source numbers)": { + "us": 1.4, "level": "full" }, - "parse + dump (source numbers)": { - "us": 1.5, + "read + dump (reused)": { + "us": 1.4, "level": "full" } } @@ -5988,17 +10979,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 8.5, + "us": 8.7, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 8.5, + "us": 8.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 8.5, + "us": 8.7, "level": "full" } } @@ -6014,7 +11007,21 @@ "us": 1.6, "level": "full" }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 1.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 1.5, + "level": "full" + }, "variants": { + "read + write (reused allocator)": { + "us": 1.5, + "level": "full" + }, "read + write": { "us": 1.6, "level": "full" @@ -6022,13 +11029,17 @@ "insitu (copy) + write": { "us": 1.6, "level": "full" + }, + "read (raw numbers) + write": { + "us": 1.7, + "level": "full" } } }, "simdjson": { "best": { "variant": "DOM + to_string", - "us": 3.7, + "us": 3.6, "level": "full" }, "best_any": { @@ -6036,17 +11047,27 @@ "us": 0.3, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 3.3, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 3.3, + "level": "full" + }, "variants": { "minify": { "us": 0.3, "level": "partial" }, "DOM (reused) + to_string": { - "us": 3.5, + "us": 3.3, "level": "full" }, "DOM + to_string": { - "us": 3.7, + "us": 3.6, "level": "full" } } @@ -6058,6 +11079,8 @@ "us": 2.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { "us": 2.5, @@ -6067,8 +11090,8 @@ }, "Glaze": { "best": { - "variant": "generic", - "us": 7.8, + "variant": "generic (strict)", + "us": 7.9, "level": "full" }, "best_any": { @@ -6076,6 +11099,8 @@ "us": 1.3, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { "us": 1.3, @@ -6083,24 +11108,46 @@ }, "generic": { "us": 7.8, + "level": "partial" + }, + "generic (strict)": { + "us": 7.9, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 6.8, + "us": 6.7, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 6.8, + "us": 6.7, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 6.4, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 6.4, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 6.4, + "level": "full" + }, "parse + serialize": { - "us": 6.8, + "us": 6.7, "level": "full" } } @@ -6116,6 +11163,16 @@ "us": 7.3, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 10.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 9.4, + "level": "no UTF-8" + }, "variants": { "SAX to Writer (no encoding check)": { "us": 7.3, @@ -6130,13 +11187,21 @@ "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 8.2, + "us": 8.1, "level": "full" }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 9.4, + "level": "no UTF-8" + }, "Document + Writer (no encoding check)": { "us": 9.8, "level": "no UTF-8" }, + "Document + Writer (reused allocator)": { + "us": 10.4, + "level": "full" + }, "Document + Writer": { "us": 10.7, "level": "full" @@ -6146,17 +11211,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 9.2, + "us": 9.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 9.2, + "us": 9.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 9.2, + "us": 9.5, "level": "full" } } @@ -6164,17 +11231,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2.9, + "us": 3.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 2.9, + "us": 3.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2.9, + "us": 3.0, "level": "full" } } @@ -6182,17 +11251,679 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 5.4, + "us": 5.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 5.4, + "us": 5.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 5.5, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse + dump (source numbers)", + "us": 233.6, + "level": "full" + }, + "best_any": { + "variant": "parse + dump (source numbers)", + "us": 233.6, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 229.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 229.7, "level": "full" }, + "variants": { + "read + dump (reused)": { + "us": 229.7, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 233.6, + "level": "full" + }, + "parse + dump": { + "us": 235.9, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse + dump", + "us": 1564.3, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 1564.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse + dump": { + "us": 1564.3, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy) + write", + "us": 267.7, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) + write", + "us": 267.7, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 263.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 263.8, + "level": "full" + }, + "variants": { + "read + write (reused allocator)": { + "us": 263.8, + "level": "full" + }, + "insitu (copy) + write": { + "us": 267.7, + "level": "full" + }, + "read + write": { + "us": 268.5, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 283.7, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM + to_string", + "us": 540.8, + "level": "full" + }, + "best_any": { + "variant": "minify", + "us": 45.2, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 523.3, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 523.3, + "level": "full" + }, + "variants": { + "minify": { + "us": 45.2, + "level": "partial" + }, + "DOM (reused) + to_string": { + "us": 523.3, + "level": "full" + }, + "DOM + to_string": { + "us": 540.8, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document + Serialize", + "us": 371.8, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document + Serialize": { + "us": 371.8, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 1391.8, + "level": "full" + }, + "best_any": { + "variant": "minify_json", + "us": 241.7, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "minify_json": { + "us": 241.7, + "level": "partial" + }, + "generic": { + "us": 1388.5, + "level": "partial" + }, + "generic (strict)": { + "us": 1391.8, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse + serialize", + "us": 1281.4, + "level": "full" + }, + "best_any": { + "variant": "parse + serialize", + "us": 1281.4, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1278.0, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1278.0, + "level": "full" + }, + "variants": { + "parser (reused) + serialize": { + "us": 1278.0, + "level": "full" + }, + "parse + serialize": { + "us": 1281.4, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX to Writer", + "us": 1352.4, + "level": "full" + }, + "best_any": { + "variant": "SAX to Writer (no encoding check)", + "us": 1228.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 1772.9, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 1619.3, + "level": "no UTF-8" + }, + "variants": { + "SAX to Writer (no encoding check)": { + "us": 1228.2, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 1249.3, + "level": "no UTF-8" + }, + "SAX to Writer": { + "us": 1352.4, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 1368.5, + "level": "full" + }, + "Document + Writer (no encoding check)": { + "us": 1618.0, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 1619.3, + "level": "no UTF-8" + }, + "Document + Writer": { + "us": 1770.0, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 1772.9, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 1864.4, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 1864.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 1864.4, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 457.7, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 457.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 457.7, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 923.7, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 923.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 5.4, + "us": 923.7, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse + dump", + "us": 377.0, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 377.0, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 376.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 376.3, + "level": "full" + }, + "variants": { + "read + dump (reused)": { + "us": 376.3, + "level": "full" + }, + "parse + dump": { + "us": 377.0, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 378.1, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse + dump", + "us": 2595.6, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 2595.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse + dump": { + "us": 2595.6, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy) + write", + "us": 445.4, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) + write", + "us": 445.4, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 447.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 447.1, + "level": "full" + }, + "variants": { + "insitu (copy) + write": { + "us": 445.4, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 447.1, + "level": "full" + }, + "read + write": { + "us": 450.6, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 517.7, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM + to_string", + "us": 795.1, + "level": "full" + }, + "best_any": { + "variant": "minify", + "us": 48.5, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 774.3, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 774.3, + "level": "full" + }, + "variants": { + "minify": { + "us": 48.5, + "level": "partial" + }, + "DOM (reused) + to_string": { + "us": 774.3, + "level": "full" + }, + "DOM + to_string": { + "us": 795.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document + Serialize", + "us": 780.3, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document + Serialize": { + "us": 780.3, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 2846.2, + "level": "full" + }, + "best_any": { + "variant": "minify_json", + "us": 439.2, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "minify_json": { + "us": 439.2, + "level": "partial" + }, + "generic (strict)": { + "us": 2846.2, + "level": "full" + }, + "generic": { + "us": 2857.7, + "level": "partial" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse + serialize", + "us": 1449.3, + "level": "full" + }, + "best_any": { + "variant": "parse + serialize", + "us": 1449.3, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1441.5, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1441.5, + "level": "full" + }, + "variants": { + "parser (reused) + serialize": { + "us": 1441.5, + "level": "full" + }, + "parse + serialize": { + "us": 1449.3, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX to Writer", + "us": 1457.4, + "level": "full" + }, + "best_any": { + "variant": "SAX to Writer (no encoding check)", + "us": 1396.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2074.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2003.0, + "level": "no UTF-8" + }, + "variants": { + "SAX to Writer (no encoding check)": { + "us": 1396.6, + "level": "no UTF-8" + }, + "SAX to Writer": { + "us": 1457.4, + "level": "full" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 1703.8, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers)": { + "us": 1776.0, + "level": "full" + }, + "Document + Writer (no encoding check)": { + "us": 1953.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2003.0, + "level": "no UTF-8" + }, + "Document + Writer": { + "us": 2044.7, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 2074.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 2763.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 2763.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 2763.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 825.5, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 825.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 825.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 1841.2, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 1841.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 1841.2, "level": "full" } } @@ -6203,22 +11934,24 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "dump (source numbers)", - "us": 73.6, + "variant": "dump", + "us": 72.6, "level": "n/a" }, "best_any": { - "variant": "dump (source numbers)", - "us": 73.6, + "variant": "dump", + "us": 72.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "dump (source numbers)": { - "us": 73.6, + "dump": { + "us": 72.6, "level": "n/a" }, - "dump": { - "us": 75.2, + "dump (source numbers)": { + "us": 72.6, "level": "n/a" } } @@ -6226,17 +11959,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 220.0, + "us": 216.4, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 220.0, + "us": 216.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 220.0, + "us": 216.4, "level": "n/a" } } @@ -6244,17 +11979,19 @@ "yyjson": { "best": { "variant": "write", - "us": 103.6, + "us": 100.1, "level": "n/a" }, "best_any": { "variant": "write", - "us": 103.6, + "us": 100.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 103.6, + "us": 100.1, "level": "n/a" } } @@ -6262,17 +11999,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 352.5, + "us": 341.5, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 352.5, + "us": 341.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 352.5, + "us": 341.5, "level": "n/a" } } @@ -6280,17 +12019,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 592.5, + "us": 593.0, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 592.5, + "us": 593.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 592.5, + "us": 593.0, "level": "n/a" } } @@ -6298,17 +12039,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 110.7, + "us": 109.8, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 110.7, + "us": 109.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 110.7, + "us": 109.8, "level": "n/a" } } @@ -6316,35 +12059,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 211.7, + "us": 210.4, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 211.7, + "us": 210.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 211.7, + "us": 210.4, + "level": "n/a" + }, + "generic (strict)": { + "us": 218.2, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 498.7, + "us": 497.5, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 498.7, + "us": 497.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 498.7, + "us": 497.5, "level": "n/a" } } @@ -6352,17 +12107,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 327.1, + "us": 322.0, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 327.1, + "us": 322.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 327.1, + "us": 322.0, "level": "n/a" } } @@ -6370,17 +12127,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 213.5, + "us": 211.5, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 213.5, + "us": 211.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 213.5, + "us": 211.5, "level": "n/a" } } @@ -6388,17 +12147,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 363.5, + "us": 355.3, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 363.5, + "us": 355.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 363.5, + "us": 355.3, "level": "n/a" } } @@ -6407,22 +12168,24 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "dump (source numbers)", - "us": 133.9, + "variant": "dump", + "us": 132.8, "level": "n/a" }, "best_any": { - "variant": "dump (source numbers)", - "us": 133.9, + "variant": "dump", + "us": 132.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "dump (source numbers)": { - "us": 133.9, + "dump": { + "us": 132.8, "level": "n/a" }, - "dump": { - "us": 136.2, + "dump (source numbers)": { + "us": 133.7, "level": "n/a" } } @@ -6430,17 +12193,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 286.0, + "us": 287.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 286.0, + "us": 287.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 286.0, + "us": 287.3, "level": "n/a" } } @@ -6448,17 +12213,19 @@ "yyjson": { "best": { "variant": "write", - "us": 164.1, + "us": 164.0, "level": "n/a" }, "best_any": { "variant": "write", - "us": 164.1, + "us": 164.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 164.1, + "us": 164.0, "level": "n/a" } } @@ -6466,17 +12233,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 493.9, + "us": 449.9, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 493.9, + "us": 449.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 493.9, + "us": 449.9, "level": "n/a" } } @@ -6484,17 +12253,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 817.9, + "us": 817.8, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 817.9, + "us": 817.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 817.9, + "us": 817.8, "level": "n/a" } } @@ -6502,17 +12273,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 231.0, + "us": 231.5, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 231.0, + "us": 231.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 231.0, + "us": 231.5, "level": "n/a" } } @@ -6520,35 +12293,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 469.3, + "us": 468.6, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 469.3, + "us": 468.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 469.3, + "us": 468.6, + "level": "n/a" + }, + "generic (strict)": { + "us": 471.8, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 502.8, + "us": 501.3, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 502.8, + "us": 501.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 502.8, + "us": 501.3, "level": "n/a" } } @@ -6556,17 +12341,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 504.0, + "us": 490.1, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 504.0, + "us": 490.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 504.0, + "us": 490.1, "level": "n/a" } } @@ -6574,17 +12361,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 454.3, + "us": 446.0, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 454.3, + "us": 446.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 454.3, + "us": 446.0, "level": "n/a" } } @@ -6592,17 +12381,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 496.0, + "us": 478.5, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 496.0, + "us": 478.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 496.0, + "us": 478.5, "level": "n/a" } } @@ -6612,21 +12403,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 397.5, + "us": 397.7, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 397.5, + "us": 397.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 397.5, + "us": 397.7, "level": "n/a" }, "dump": { - "us": 1620.8, + "us": 1616.8, "level": "n/a" } } @@ -6634,17 +12427,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 2239.6, + "us": 2235.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 2239.6, + "us": 2235.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 2239.6, + "us": 2235.0, "level": "n/a" } } @@ -6652,17 +12447,19 @@ "yyjson": { "best": { "variant": "write", - "us": 1716.9, + "us": 1714.5, "level": "n/a" }, "best_any": { "variant": "write", - "us": 1716.9, + "us": 1714.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 1716.9, + "us": 1714.5, "level": "n/a" } } @@ -6670,17 +12467,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 6770.4, + "us": 3141.0, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 6770.4, + "us": 3141.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 6770.4, + "us": 3141.0, "level": "n/a" } } @@ -6688,17 +12487,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 6947.2, + "us": 6872.3, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 6947.2, + "us": 6872.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 6947.2, + "us": 6872.3, "level": "n/a" } } @@ -6706,17 +12507,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 3047.4, + "us": 3038.3, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 3047.4, + "us": 3038.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 3047.4, + "us": 3038.3, "level": "n/a" } } @@ -6724,35 +12527,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 1691.6, + "us": 1696.5, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 1691.6, + "us": 1696.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 1691.6, + "us": 1696.5, + "level": "n/a" + }, + "generic (strict)": { + "us": 1700.5, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 2868.0, + "us": 2875.6, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 2868.0, + "us": 2875.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 2868.0, + "us": 2875.6, "level": "n/a" } } @@ -6760,17 +12575,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 2257.0, + "us": 2286.1, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 2257.0, + "us": 2286.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2257.0, + "us": 2286.1, "level": "n/a" } } @@ -6778,17 +12595,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2414.0, + "us": 2419.2, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 2414.0, + "us": 2419.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2414.0, + "us": 2419.2, "level": "n/a" } } @@ -6796,17 +12615,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 2723.0, + "us": 2728.4, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 2723.0, + "us": 2728.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 2723.0, + "us": 2728.4, "level": "n/a" } } @@ -6815,22 +12636,24 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "dump (source numbers)", - "us": 14781.2, + "variant": "dump", + "us": 14444.2, "level": "n/a" }, "best_any": { - "variant": "dump (source numbers)", - "us": 14781.2, + "variant": "dump", + "us": 14444.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "dump (source numbers)": { - "us": 14781.2, + "dump": { + "us": 14444.2, "level": "n/a" }, - "dump": { - "us": 14845.7, + "dump (source numbers)": { + "us": 14500.6, "level": "n/a" } } @@ -6838,17 +12661,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 30983.4, + "us": 31196.9, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 30983.4, + "us": 31196.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 30983.4, + "us": 31196.9, "level": "n/a" } } @@ -6856,17 +12681,19 @@ "yyjson": { "best": { "variant": "write", - "us": 20118.7, + "us": 19664.8, "level": "n/a" }, "best_any": { "variant": "write", - "us": 20118.7, + "us": 19664.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 20118.7, + "us": 19664.8, "level": "n/a" } } @@ -6874,17 +12701,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 54528.2, + "us": 52877.5, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 54528.2, + "us": 52877.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 54528.2, + "us": 52877.5, "level": "n/a" } } @@ -6892,17 +12721,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 81580.0, + "us": 79758.5, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 81580.0, + "us": 79758.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 81580.0, + "us": 79758.5, "level": "n/a" } } @@ -6910,17 +12741,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 20341.8, + "us": 20165.3, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 20341.8, + "us": 20165.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 20341.8, + "us": 20165.3, "level": "n/a" } } @@ -6928,35 +12761,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 34921.0, + "us": 33709.8, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 34921.0, + "us": 33709.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 34921.0, + "us": 33709.8, + "level": "n/a" + }, + "generic (strict)": { + "us": 36483.4, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 62963.8, + "us": 62385.1, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 62963.8, + "us": 62385.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 62963.8, + "us": 62385.1, "level": "n/a" } } @@ -6964,17 +12809,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 49857.2, + "us": 49966.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 49857.2, + "us": 49966.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 49857.2, + "us": 49966.8, "level": "n/a" } } @@ -6982,17 +12829,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 33358.5, + "us": 33366.0, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 33358.5, + "us": 33366.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 33358.5, + "us": 33366.0, "level": "n/a" } } @@ -7000,17 +12849,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 48114.1, + "us": 47412.2, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 48114.1, + "us": 47412.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 48114.1, + "us": 47412.2, "level": "n/a" } } @@ -7028,6 +12879,8 @@ "us": 0.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { "us": 0.5, @@ -7050,6 +12903,8 @@ "us": 1.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { "us": 1.2, @@ -7068,6 +12923,8 @@ "us": 0.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { "us": 0.7, @@ -7086,6 +12943,8 @@ "us": 2.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { "us": 2.5, @@ -7096,17 +12955,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 3.8, + "us": 3.9, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 3.8, + "us": 3.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 3.8, + "us": 3.9, "level": "n/a" } } @@ -7114,17 +12975,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 0.9, + "us": 0.8, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 0.9, + "us": 0.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 0.9, + "us": 0.8, "level": "n/a" } } @@ -7140,11 +13003,21 @@ "us": 1.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { "us": 1.3, "level": "n/a" + }, + "generic (strict)": { + "us": 1.4, + "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { @@ -7158,6 +13031,8 @@ "us": 2.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { "us": 2.8, @@ -7176,6 +13051,8 @@ "us": 2.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { "us": 2.0, @@ -7186,17 +13063,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 1.4, + "us": 1.5, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 1.4, + "us": 1.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1.4, + "us": 1.5, "level": "n/a" } } @@ -7212,6 +13091,8 @@ "us": 1.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { "us": 1.8, @@ -7219,6 +13100,474 @@ } } } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "dump (source numbers)", + "us": 72.5, + "level": "n/a" + }, + "best_any": { + "variant": "dump (source numbers)", + "us": 72.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump (source numbers)": { + "us": 72.5, + "level": "n/a" + }, + "dump": { + "us": 72.6, + "level": "n/a" + } + } + }, + "nlohmann json": { + "best": { + "variant": "dump", + "us": 215.6, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 215.6, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 215.6, + "level": "n/a" + } + } + }, + "yyjson": { + "best": { + "variant": "write", + "us": 100.6, + "level": "n/a" + }, + "best_any": { + "variant": "write", + "us": 100.6, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "write": { + "us": 100.6, + "level": "n/a" + } + } + }, + "simdjson": { + "best": { + "variant": "to_string", + "us": 341.4, + "level": "n/a" + }, + "best_any": { + "variant": "to_string", + "us": 341.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "to_string": { + "us": 341.4, + "level": "n/a" + } + } + }, + "RapidJSON": { + "best": { + "variant": "Writer", + "us": 593.0, + "level": "n/a" + }, + "best_any": { + "variant": "Writer", + "us": 593.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Writer": { + "us": 593.0, + "level": "n/a" + } + } + }, + "sonic-cpp": { + "best": { + "variant": "Serialize", + "us": 109.7, + "level": "n/a" + }, + "best_any": { + "variant": "Serialize", + "us": 109.7, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Serialize": { + "us": 109.7, + "level": "n/a" + } + } + }, + "Glaze": { + "best": { + "variant": "generic", + "us": 210.5, + "level": "n/a" + }, + "best_any": { + "variant": "generic", + "us": 210.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 210.5, + "level": "n/a" + }, + "generic (strict)": { + "us": 218.0, + "level": "n/a" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "serialize", + "us": 497.4, + "level": "n/a" + }, + "best_any": { + "variant": "serialize", + "us": 497.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "serialize": { + "us": 497.4, + "level": "n/a" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 331.3, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 331.3, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 331.3, + "level": "n/a" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 215.8, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 215.8, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 215.8, + "level": "n/a" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed", + "us": 365.0, + "level": "n/a" + }, + "best_any": { + "variant": "borrowed", + "us": 365.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed": { + "us": 365.0, + "level": "n/a" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "dump", + "us": 133.2, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 133.2, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 133.2, + "level": "n/a" + }, + "dump (source numbers)": { + "us": 134.1, + "level": "n/a" + } + } + }, + "nlohmann json": { + "best": { + "variant": "dump", + "us": 287.4, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 287.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 287.4, + "level": "n/a" + } + } + }, + "yyjson": { + "best": { + "variant": "write", + "us": 164.1, + "level": "n/a" + }, + "best_any": { + "variant": "write", + "us": 164.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "write": { + "us": 164.1, + "level": "n/a" + } + } + }, + "simdjson": { + "best": { + "variant": "to_string", + "us": 452.8, + "level": "n/a" + }, + "best_any": { + "variant": "to_string", + "us": 452.8, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "to_string": { + "us": 452.8, + "level": "n/a" + } + } + }, + "RapidJSON": { + "best": { + "variant": "Writer", + "us": 817.5, + "level": "n/a" + }, + "best_any": { + "variant": "Writer", + "us": 817.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Writer": { + "us": 817.5, + "level": "n/a" + } + } + }, + "sonic-cpp": { + "best": { + "variant": "Serialize", + "us": 233.4, + "level": "n/a" + }, + "best_any": { + "variant": "Serialize", + "us": 233.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Serialize": { + "us": 233.4, + "level": "n/a" + } + } + }, + "Glaze": { + "best": { + "variant": "generic", + "us": 471.0, + "level": "n/a" + }, + "best_any": { + "variant": "generic", + "us": 471.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 471.0, + "level": "n/a" + }, + "generic (strict)": { + "us": 472.7, + "level": "n/a" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "serialize", + "us": 500.8, + "level": "n/a" + }, + "best_any": { + "variant": "serialize", + "us": 500.8, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "serialize": { + "us": 500.8, + "level": "n/a" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 490.8, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 490.8, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 490.8, + "level": "n/a" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 460.7, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 460.7, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 460.7, + "level": "n/a" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed", + "us": 493.5, + "level": "n/a" + }, + "best_any": { + "variant": "borrowed", + "us": 493.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed": { + "us": 493.5, + "level": "n/a" + } + } + } } } } diff --git a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-clang.json b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-clang.json index 19a29ef0e..ccab016dd 100644 --- a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-clang.json +++ b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-clang.json @@ -4,25 +4,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 301.9, + "us": 304.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 301.9, + "us": 304.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 299.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 299.3, "level": "full" }, "variants": { "read (reused)": { - "us": 294.2, + "us": 299.3, "level": "full" }, "parse": { - "us": 301.9, + "us": 304.7, "level": "full" }, "accept": { - "us": 306.9, + "us": 306.6, "level": "full" } } @@ -30,43 +40,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 746.3, + "us": 735.8, "level": "full" }, "best_any": { "variant": "accept", - "us": 746.3, + "us": 735.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 746.3, + "us": 735.8, "level": "full" }, "parse": { - "us": 3621.8, + "us": 3346.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 378.8, + "variant": "read", + "us": 379.6, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 378.8, + "variant": "read", + "us": 379.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 385.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 385.3, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 378.8, + "read": { + "us": 379.6, "level": "full" }, - "read": { - "us": 382.3, + "insitu (copy)": { + "us": 380.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 381.8, + "level": "full" + }, + "read (reused allocator)": { + "us": 385.3, "level": "full" } } @@ -74,21 +104,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 311.3, + "us": 305.7, "level": "full" }, "best_any": { "variant": "DOM", - "us": 311.3, + "us": 305.7, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 305.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 305.8, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 307.1, + "DOM": { + "us": 305.7, "level": "full" }, - "DOM": { - "us": 311.3, + "DOM (reused)": { + "us": 305.8, "level": "full" } } @@ -100,6 +140,8 @@ "us": 449.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { "us": 449.6, @@ -110,43 +152,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 621.2, + "us": 617.4, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 621.2, + "us": 617.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 621.2, + "us": 617.4, "level": "full" }, + "generic (double, strict)": { + "us": 2470.4, + "level": "full" + }, + "generic (double)": { + "us": 2595.3, + "level": "partial" + }, "generic": { - "us": 3963.7, + "us": 3701.6, + "level": "partial" + }, + "generic (strict)": { + "us": 3749.1, "level": "full" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 595.8, + "variant": "SAX (numbers: none)", + "us": 568.4, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 595.8, + "variant": "SAX (numbers: none)", + "us": 568.4, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 572.6, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 572.6, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 568.4, + "level": "full" + }, + "SAX (reused)": { + "us": 572.6, + "level": "full" + }, "SAX": { - "us": 595.8, + "us": 573.4, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1204.9, "level": "full" }, "parse": { - "us": 1224.4, + "us": 1217.0, + "level": "full" + }, + "parser (reused)": { + "us": 1218.9, "level": "full" } } @@ -154,37 +236,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1845.2, + "us": 1815.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1227.3, + "us": 1174.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2161.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1500.3, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1227.3, + "us": 1174.1, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1303.4, + "us": 1309.6, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1324.2, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1603.8, + "us": 1465.3, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1500.3, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1845.2, + "us": 1815.3, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2037.6, "level": "full" }, "SAX": { - "us": 2180.5, + "us": 2063.8, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2161.8, "level": "full" }, "Document": { - "us": 2338.1, + "us": 2265.2, "level": "full" } } @@ -192,25 +300,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 633.5, + "us": 621.9, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 486.9, + "us": 480.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 486.9, + "us": 480.2, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 633.5, + "us": 621.9, "level": "full" }, "Value": { - "us": 3815.1, + "us": 3675.2, "level": "full" } } @@ -218,21 +328,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 469.6, + "us": 481.8, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 469.6, + "us": 481.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 469.6, + "us": 481.8, "level": "full" }, "Value": { - "us": 563.3, + "us": 557.9, "level": "full" } } @@ -240,25 +352,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 591.5, + "us": 563.4, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 591.5, + "us": 563.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 572.1, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 572.1, "level": "full" }, "variants": { - "tape (reused)": { - "us": 578.1, + "tape (copy)": { + "us": 563.4, "level": "full" }, - "tape (copy)": { - "us": 591.5, + "tape (reused)": { + "us": 572.1, "level": "full" }, "borrowed (copy)": { - "us": 1281.8, + "us": 1259.6, "level": "full" } } @@ -267,26 +389,36 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "parse", - "us": 720.3, + "variant": "accept", + "us": 714.6, "level": "full" }, "best_any": { - "variant": "parse", - "us": 720.3, + "variant": "accept", + "us": 714.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 712.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 712.5, "level": "full" }, "variants": { "read (reused)": { - "us": 718.8, - "level": "full" - }, - "parse": { - "us": 720.3, + "us": 712.5, "level": "full" }, "accept": { - "us": 722.5, + "us": 714.6, + "level": "full" + }, + "parse": { + "us": 714.8, "level": "full" } } @@ -294,43 +426,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 1424.2, + "us": 1416.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 1424.2, + "us": 1416.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 1424.2, + "us": 1416.6, "level": "full" }, "parse": { - "us": 5667.8, + "us": 5420.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 895.6, + "variant": "insitu (copy)", + "us": 917.7, "level": "full" }, "best_any": { - "variant": "read", - "us": 895.6, + "variant": "insitu (copy)", + "us": 917.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 942.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 942.5, "level": "full" }, "variants": { - "read": { - "us": 895.6, + "insitu (copy)": { + "us": 917.7, "level": "full" }, - "insitu (copy)": { - "us": 898.6, + "read": { + "us": 920.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 942.5, + "level": "full" + }, + "read (raw numbers)": { + "us": 946.3, "level": "full" } } @@ -338,21 +490,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 735.5, + "us": 712.6, "level": "full" }, "best_any": { "variant": "DOM", - "us": 735.5, + "us": 712.6, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 713.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 713.4, "level": "full" }, "variants": { "DOM": { - "us": 735.5, + "us": 712.6, "level": "full" }, "DOM (reused)": { - "us": 759.0, + "us": 713.4, "level": "full" } } @@ -361,12 +523,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1026.3, + "us": 1007.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1026.3, + "us": 1007.1, "level": "no UTF-8" } } @@ -374,43 +538,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1402.4, + "us": 1370.3, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1402.4, + "us": 1370.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 1402.4, + "us": 1370.3, + "level": "full" + }, + "generic (double, strict)": { + "us": 3893.6, + "level": "full" + }, + "generic (double)": { + "us": 3925.9, + "level": "partial" + }, + "generic (strict)": { + "us": 7191.4, "level": "full" }, "generic": { - "us": 7390.0, - "level": "full" + "us": 7242.4, + "level": "partial" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 923.4, + "variant": "SAX (numbers: none)", + "us": 902.7, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 923.4, + "variant": "SAX (numbers: none)", + "us": 902.7, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 921.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 921.0, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 902.7, + "level": "full" + }, + "SAX (reused)": { + "us": 921.0, + "level": "full" + }, "SAX": { - "us": 923.4, + "us": 923.3, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1586.0, + "level": "full" + }, + "parser (reused)": { + "us": 1640.4, "level": "full" }, "parse": { - "us": 1658.3, + "us": 1656.4, "level": "full" } } @@ -418,37 +622,63 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 2149.5, + "us": 2122.6, "level": "full" }, "best_any": { "variant": "SAX (no encoding check)", - "us": 1665.3, + "us": 1662.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2383.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1950.0, "level": "no UTF-8" }, "variants": { "SAX (no encoding check)": { - "us": 1665.3, + "us": 1662.7, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1884.3, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 2037.7, + "us": 1925.9, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1950.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2060.5, + "us": 1987.1, "level": "no UTF-8" }, "SAX": { - "us": 2149.5, + "us": 2122.6, "level": "full" }, "insitu (copy)": { - "us": 2424.6, + "us": 2289.8, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2342.4, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2383.1, "level": "full" }, "Document": { - "us": 2460.0, + "us": 2495.2, "level": "full" } } @@ -456,25 +686,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 1447.6, + "us": 1439.7, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 1370.5, + "us": 1370.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 1370.5, + "us": 1370.7, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 1447.6, + "us": 1439.7, "level": "full" }, "Value": { - "us": 6238.9, + "us": 5958.6, "level": "full" } } @@ -482,21 +714,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 965.6, + "us": 969.0, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 965.6, + "us": 969.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 965.6, + "us": 969.0, "level": "full" }, "Value": { - "us": 1189.7, + "us": 1191.8, "level": "full" } } @@ -504,25 +738,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 1425.7, + "us": 1402.8, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 1425.7, + "us": 1402.8, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 1451.4, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 1451.4, "level": "full" }, "variants": { - "tape (reused)": { - "us": 1409.5, + "tape (copy)": { + "us": 1402.8, "level": "full" }, - "tape (copy)": { - "us": 1425.7, + "tape (reused)": { + "us": 1451.4, "level": "full" }, "borrowed (copy)": { - "us": 3637.0, + "us": 3702.4, "level": "full" } } @@ -531,26 +775,36 @@ "canada": { "nlohmann json_document": { "best": { - "variant": "parse", - "us": 1783.7, + "variant": "accept", + "us": 2019.0, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1783.7, + "variant": "accept", + "us": 2019.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1981.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1981.2, "level": "full" }, "variants": { "read (reused)": { - "us": 1776.8, - "level": "full" - }, - "parse": { - "us": 1783.7, + "us": 1981.2, "level": "full" }, "accept": { - "us": 1787.4, + "us": 2019.0, + "level": "full" + }, + "parse": { + "us": 2030.5, "level": "full" } } @@ -558,43 +812,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 4200.8, + "us": 4604.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 4200.8, + "us": 4604.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 4200.8, + "us": 4604.6, "level": "full" }, "parse": { - "us": 12011.4, + "us": 13246.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 2851.4, + "variant": "read (raw numbers)", + "us": 2532.9, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 2851.4, + "variant": "read (raw numbers)", + "us": 2532.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 3042.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 3042.2, "level": "full" }, "variants": { + "read (raw numbers)": { + "us": 2532.9, + "level": "full" + }, + "read (reused allocator)": { + "us": 3042.2, + "level": "full" + }, "insitu (copy)": { - "us": 2851.4, + "us": 3053.3, "level": "full" }, "read": { - "us": 2856.6, + "us": 3088.7, "level": "full" } } @@ -602,21 +876,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3343.0, + "us": 3652.3, "level": "full" }, "best_any": { "variant": "DOM", - "us": 3343.0, + "us": 3652.3, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 3559.5, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 3559.5, "level": "full" }, "variants": { "DOM (reused)": { - "us": 3285.4, + "us": 3559.5, "level": "full" }, "DOM": { - "us": 3343.0, + "us": 3652.3, "level": "full" } } @@ -625,12 +909,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3140.1, + "us": 3351.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3140.1, + "us": 3351.0, "level": "no UTF-8" } } @@ -638,107 +924,175 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1805.5, + "us": 1990.4, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1805.5, + "us": 1990.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 1805.5, + "us": 1990.4, "level": "full" }, + "generic (double, strict)": { + "us": 12974.1, + "level": "full" + }, + "generic (double)": { + "us": 13254.2, + "level": "partial" + }, "generic": { - "us": 26132.2, + "us": 28487.2, + "level": "partial" + }, + "generic (strict)": { + "us": 28518.8, "level": "full" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 6234.3, + "variant": "SAX (numbers: none)", + "us": 1896.4, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 6234.3, + "variant": "SAX (numbers: none)", + "us": 1896.4, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 6464.5, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 6464.5, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 1896.4, + "level": "full" + }, + "parse (numbers: none)": { + "us": 2796.1, + "level": "full" + }, "SAX": { - "us": 6234.3, + "us": 6404.4, + "level": "full" + }, + "SAX (reused)": { + "us": 6464.5, "level": "full" }, "parse": { - "us": 7192.5, + "us": 7887.6, + "level": "full" + }, + "parser (reused)": { + "us": 7905.5, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 11718.7, + "variant": "SAX (raw numbers)", + "us": 11774.8, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 11600.8, + "variant": "SAX (raw numbers) (no encoding check)", + "us": 11739.9, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 14176.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 14135.8, "level": "no UTF-8" }, "variants": { + "SAX (raw numbers) (no encoding check)": { + "us": 11739.9, + "level": "no UTF-8" + }, + "SAX (raw numbers)": { + "us": 11774.8, + "level": "full" + }, "SAX (no encoding check)": { - "us": 11600.8, + "us": 12442.3, "level": "no UTF-8" }, "SAX": { - "us": 11718.7, + "us": 12521.9, "level": "full" }, "insitu (copy) (no encoding check)": { - "us": 11728.7, + "us": 12760.9, "level": "no UTF-8" }, "insitu (copy)": { - "us": 11852.8, - "level": "full" - }, - "Document": { - "us": 12506.9, + "us": 12903.2, "level": "full" }, "Document (no encoding check)": { - "us": 12664.2, + "us": 13846.3, "level": "no UTF-8" + }, + "Document": { + "us": 13988.0, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 14135.8, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 14176.4, + "level": "full" } } }, "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 2401.7, + "us": 2621.0, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 2318.5, + "us": 2537.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 2318.5, + "us": 2537.6, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 2401.7, + "us": 2621.0, "level": "full" }, "Value": { - "us": 13367.6, + "us": 14488.3, "level": "full" } } @@ -746,21 +1100,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 2249.4, + "us": 2489.1, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 2249.4, + "us": 2489.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 2249.4, + "us": 2489.1, "level": "full" }, "Value": { - "us": 3754.2, + "us": 4041.2, "level": "full" } } @@ -768,25 +1124,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 4302.9, + "us": 4629.8, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 4302.9, + "us": 4629.8, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 4807.9, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 4807.9, "level": "full" }, "variants": { - "tape (reused)": { - "us": 4245.2, + "tape (copy)": { + "us": 4629.8, "level": "full" }, - "tape (copy)": { - "us": 4302.9, + "tape (reused)": { + "us": 4807.9, "level": "full" }, "borrowed (copy)": { - "us": 10036.5, + "us": 11597.1, "level": "full" } } @@ -796,25 +1162,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 81369.6, + "us": 83361.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 81369.6, + "us": 83361.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 45103.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 45103.7, "level": "full" }, "variants": { "read (reused)": { - "us": 43820.9, + "us": 45103.7, "level": "full" }, "parse": { - "us": 81369.6, + "us": 83361.0, "level": "full" }, "accept": { - "us": 82844.4, + "us": 85652.6, "level": "full" } } @@ -822,43 +1198,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 100878.3, + "us": 95644.5, "level": "full" }, "best_any": { "variant": "accept", - "us": 100878.3, + "us": 95644.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 100878.3, + "us": 95644.5, "level": "full" }, "parse": { - "us": 566744.4, + "us": 572287.6, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 124180.2, + "variant": "read (raw numbers)", + "us": 126564.9, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 124180.2, + "variant": "read (raw numbers)", + "us": 126564.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 59194.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 59194.9, "level": "full" }, "variants": { + "read (reused allocator)": { + "us": 59194.9, + "level": "full" + }, + "read (raw numbers)": { + "us": 126564.9, + "level": "full" + }, "insitu (copy)": { - "us": 124180.2, + "us": 134532.8, "level": "full" }, "read": { - "us": 126846.3, + "us": 134949.6, "level": "full" } } @@ -866,21 +1262,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 115626.5, + "us": 121820.4, "level": "full" }, "best_any": { "variant": "DOM", - "us": 115626.5, + "us": 121820.4, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 52201.5, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 52201.5, "level": "full" }, "variants": { "DOM (reused)": { - "us": 49170.2, + "us": 52201.5, "level": "full" }, "DOM": { - "us": 115626.5, + "us": 121820.4, "level": "full" } } @@ -889,12 +1295,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 98200.0, + "us": 99056.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 98200.0, + "us": 99056.5, "level": "no UTF-8" } } @@ -902,43 +1310,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 76163.6, + "us": 81604.3, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 76163.6, + "us": 81604.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 76163.6, + "us": 81604.3, + "level": "full" + }, + "generic (double)": { + "us": 289201.9, + "level": "partial" + }, + "generic (double, strict)": { + "us": 294449.5, + "level": "full" + }, + "generic (strict)": { + "us": 471705.4, "level": "full" }, "generic": { - "us": 483058.9, - "level": "full" + "us": 482728.5, + "level": "partial" } } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 56653.7, + "us": 56243.7, "level": "full" }, "best_any": { "variant": "SAX", - "us": 56653.7, + "us": 56243.7, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 56869.4, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 56869.4, "level": "full" }, "variants": { "SAX": { - "us": 56653.7, + "us": 56243.7, + "level": "full" + }, + "SAX (reused)": { + "us": 56869.4, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 56903.2, + "level": "full" + }, + "parser (reused)": { + "us": 127246.1, + "level": "full" + }, + "parse (numbers: none)": { + "us": 187391.9, "level": "full" }, "parse": { - "us": 184353.3, + "us": 195260.9, "level": "full" } } @@ -946,37 +1394,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 233417.1, + "us": 237713.5, "level": "full" }, "best_any": { "variant": "SAX (no encoding check)", - "us": 156744.4, + "us": 161723.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 289532.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 190479.1, "level": "no UTF-8" }, "variants": { "SAX (no encoding check)": { - "us": 156744.4, + "us": 161723.6, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 167973.8, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 173543.2, + "us": 172518.7, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 190479.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 189439.3, + "us": 197920.2, "level": "no UTF-8" }, "insitu (copy)": { - "us": 233417.1, + "us": 237713.5, "level": "full" }, "SAX": { - "us": 249262.4, + "us": 246911.6, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 255391.4, + "level": "full" + }, + "Document (reused allocator)": { + "us": 289532.8, "level": "full" }, "Document": { - "us": 272448.4, + "us": 292323.5, "level": "full" } } @@ -984,25 +1458,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 66822.2, + "us": 65602.4, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 59800.9, + "us": 60154.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 59800.9, + "us": 60154.2, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 66822.2, + "us": 65602.4, "level": "full" }, "Value": { - "us": 490960.4, + "us": 514855.6, "level": "full" } } @@ -1010,21 +1486,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 54246.3, + "us": 55486.2, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 54246.3, + "us": 55486.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 54246.3, + "us": 55486.2, "level": "full" }, "Value": { - "us": 117743.3, + "us": 113431.8, "level": "full" } } @@ -1032,25 +1510,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 211715.5, + "us": 212467.4, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 211715.5, + "us": 212467.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 142848.3, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 142848.3, "level": "full" }, "variants": { "tape (reused)": { - "us": 135460.9, + "us": 142848.3, "level": "full" }, "tape (copy)": { - "us": 211715.5, + "us": 212467.4, "level": "full" }, "borrowed (copy)": { - "us": 289558.6, + "us": 297916.2, "level": "full" } } @@ -1060,12 +1548,22 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 1.5, + "us": 1.4, "level": "full" }, "best_any": { "variant": "accept", - "us": 1.5, + "us": 1.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1.3, "level": "full" }, "variants": { @@ -1074,11 +1572,11 @@ "level": "full" }, "accept": { - "us": 1.5, + "us": 1.4, "level": "full" }, "parse": { - "us": 1.5, + "us": 1.4, "level": "full" } } @@ -1086,21 +1584,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 4.1, + "us": 4.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 4.1, + "us": 4.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 4.1, + "us": 4.0, "level": "full" }, "parse": { - "us": 16.8, + "us": 15.4, "level": "full" } } @@ -1116,7 +1616,21 @@ "us": 1.6, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.5, + "level": "full" + }, "variants": { + "read (reused allocator)": { + "us": 1.5, + "level": "full" + }, "read": { "us": 1.6, "level": "full" @@ -1124,6 +1638,10 @@ "insitu (copy)": { "us": 1.6, "level": "full" + }, + "read (raw numbers)": { + "us": 1.6, + "level": "full" } } }, @@ -1138,9 +1656,19 @@ "us": 1.8, "level": "full" }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 1.4, + "level": "full" + }, "variants": { "DOM (reused)": { - "us": 1.5, + "us": 1.4, "level": "full" }, "DOM": { @@ -1153,12 +1681,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 2.0, + "us": 1.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 2.0, + "us": 1.9, "level": "no UTF-8" } } @@ -1166,291 +1696,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 2.6, + "us": 2.5, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 2.6, + "us": 2.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 2.6, + "us": 2.5, "level": "full" }, + "generic (double, strict)": { + "us": 9.8, + "level": "full" + }, + "generic (double)": { + "us": 9.9, + "level": "partial" + }, "generic": { "us": 17.5, - "level": "full" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 2.4, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 2.4, - "level": "full" - }, - "variants": { - "SAX": { - "us": 2.4, - "level": "full" - }, - "parse": { - "us": 6.2, - "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "insitu (copy)", - "us": 8.6, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 4.3, - "level": "no UTF-8" - }, - "variants": { - "insitu (copy) (no encoding check)": { - "us": 4.3, - "level": "no UTF-8" - }, - "SAX (no encoding check)": { - "us": 7.2, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 8.4, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 8.6, - "level": "full" - }, - "SAX": { - "us": 10.9, - "level": "full" - }, - "Document": { - "us": 12.2, - "level": "full" - } - } - }, - "serde_json": { - "best": { - "variant": "from_utf8 + IgnoredAny", - "us": 2.4, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 1.9, - "level": "no UTF-8" - }, - "variants": { - "IgnoredAny": { - "us": 1.9, - "level": "no UTF-8" - }, - "from_utf8 + IgnoredAny": { - "us": 2.4, - "level": "full" - }, - "Value": { - "us": 12.5, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "IgnoredAny", - "us": 1.8, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 1.8, - "level": "full" - }, - "variants": { - "IgnoredAny": { - "us": 1.8, - "level": "full" - }, - "Value": { - "us": 2.4, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "tape (copy)", - "us": 2.8, - "level": "full" - }, - "best_any": { - "variant": "tape (copy)", - "us": 2.8, - "level": "full" - }, - "variants": { - "tape (reused)": { - "us": 2.4, - "level": "full" - }, - "tape (copy)": { - "us": 2.8, - "level": "full" - }, - "borrowed (copy)": { - "us": 5.3, - "level": "full" - } - } - } - } - }, - "sum": { - "twitter": { - "nlohmann json_document": { - "best": { - "variant": "parse", - "us": 377.8, - "level": "full" - }, - "best_any": { - "variant": "parse", - "us": 377.8, - "level": "full" - }, - "variants": { - "read (reused)": { - "us": 364.5, - "level": "full" - }, - "parse": { - "us": 377.8, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "sax", - "us": 783.9, - "level": "full" - }, - "best_any": { - "variant": "sax", - "us": 783.9, - "level": "full" - }, - "variants": { - "sax": { - "us": 783.9, - "level": "full" - }, - "parse": { - "us": 3831.1, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "insitu (copy)", - "us": 434.6, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy)", - "us": 434.6, - "level": "full" - }, - "variants": { - "insitu (copy)": { - "us": 434.6, - "level": "full" - }, - "read": { - "us": 438.2, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "DOM", - "us": 399.0, - "level": "full" - }, - "best_any": { - "variant": "DOM", - "us": 399.0, - "level": "full" - }, - "variants": { - "DOM (reused)": { - "us": 393.4, - "level": "full" - }, - "DOM": { - "us": 399.0, - "level": "full" - }, - "On-Demand (reused)": { - "us": 565.5, - "level": "full" - }, - "On-Demand": { - "us": 569.0, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 504.3, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 504.3, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "generic", - "us": 3889.8, - "level": "full" - }, - "best_any": { - "variant": "lazy_json", - "us": 2829.3, - "level": "partial" - }, - "variants": { - "lazy_json": { - "us": 2829.3, "level": "partial" }, - "generic": { - "us": 3889.8, + "generic (strict)": { + "us": 17.6, "level": "full" } } @@ -1458,1077 +1732,47 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 581.7, + "us": 2.3, "level": "full" }, "best_any": { "variant": "SAX", - "us": 581.7, + "us": 2.3, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 2.3, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 2.3, "level": "full" }, "variants": { "SAX": { - "us": 581.7, + "us": 2.3, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 2.3, + "level": "full" + }, + "SAX (reused)": { + "us": 2.3, "level": "full" }, "parse": { - "us": 1281.1, + "us": 5.8, "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "insitu (copy)", - "us": 1868.6, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 1236.8, - "level": "no UTF-8" - }, - "variants": { - "insitu (copy) (no encoding check)": { - "us": 1236.8, - "level": "no UTF-8" }, - "SAX (no encoding check)": { - "us": 1351.9, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 1558.1, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 1868.6, - "level": "full" - }, - "SAX": { - "us": 2102.7, - "level": "full" - }, - "Document": { - "us": 2243.2, - "level": "full" - } - } - }, - "serde_json": { - "best": { - "variant": "visitor", - "us": 1318.2, - "level": "full" - }, - "best_any": { - "variant": "visitor", - "us": 1318.2, - "level": "full" - }, - "variants": { - "visitor": { - "us": 1318.2, - "level": "full" - }, - "Value": { - "us": 4058.1, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "visitor", - "us": 494.3, - "level": "full" - }, - "best_any": { - "variant": "visitor", - "us": 494.3, - "level": "full" - }, - "variants": { - "visitor": { - "us": 494.3, - "level": "full" - }, - "Value": { - "us": 808.3, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "visitor (copy)", - "us": 722.1, - "level": "full" - }, - "best_any": { - "variant": "visitor (copy)", - "us": 722.1, - "level": "full" - }, - "variants": { - "visitor (copy)": { - "us": 722.1, - "level": "full" - }, - "borrowed (reused)": { - "us": 1451.8, - "level": "full" - }, - "borrowed (copy)": { - "us": 1475.4, - "level": "full" - } - } - } - }, - "citm_catalog": { - "nlohmann json_document": { - "best": { - "variant": "parse", - "us": 891.0, - "level": "full" - }, - "best_any": { - "variant": "parse", - "us": 891.0, - "level": "full" - }, - "variants": { - "read (reused)": { - "us": 887.8, - "level": "full" - }, - "parse": { - "us": 891.0, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "sax", - "us": 1466.5, - "level": "full" - }, - "best_any": { - "variant": "sax", - "us": 1466.5, - "level": "full" - }, - "variants": { - "sax": { - "us": 1466.5, - "level": "full" - }, - "parse": { - "us": 5870.2, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "insitu (copy)", - "us": 1048.4, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy)", - "us": 1048.4, - "level": "full" - }, - "variants": { - "insitu (copy)": { - "us": 1048.4, - "level": "full" - }, - "read": { - "us": 1054.1, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "DOM", - "us": 946.1, - "level": "full" - }, - "best_any": { - "variant": "DOM", - "us": 946.1, - "level": "full" - }, - "variants": { - "DOM (reused)": { - "us": 939.8, - "level": "full" - }, - "DOM": { - "us": 946.1, - "level": "full" - }, - "On-Demand (reused)": { - "us": 1344.0, - "level": "full" - }, - "On-Demand": { - "us": 1357.1, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 1180.1, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 1180.1, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "generic", - "us": 7282.0, - "level": "full" - }, - "best_any": { - "variant": "generic", - "us": 7282.0, - "level": "full" - }, - "variants": { - "generic": { - "us": 7282.0, - "level": "full" - }, - "lazy_json": { - "us": 10912.0, - "level": "partial" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 927.1, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 927.1, - "level": "full" - }, - "variants": { - "SAX": { - "us": 927.1, - "level": "full" - }, - "parse": { - "us": 1819.2, - "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "SAX", - "us": 2171.6, - "level": "full" - }, - "best_any": { - "variant": "SAX (no encoding check)", - "us": 1769.8, - "level": "no UTF-8" - }, - "variants": { - "SAX (no encoding check)": { - "us": 1769.8, - "level": "no UTF-8" - }, - "insitu (copy) (no encoding check)": { - "us": 2099.5, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 2160.2, - "level": "no UTF-8" - }, - "SAX": { - "us": 2171.6, - "level": "full" - }, - "insitu (copy)": { - "us": 2482.4, - "level": "full" - }, - "Document": { - "us": 2632.9, - "level": "full" - } - } - }, - "serde_json": { - "best": { - "variant": "visitor", - "us": 2298.7, - "level": "full" - }, - "best_any": { - "variant": "visitor", - "us": 2298.7, - "level": "full" - }, - "variants": { - "visitor": { - "us": 2298.7, - "level": "full" - }, - "Value": { - "us": 6416.1, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "visitor", - "us": 1134.9, - "level": "full" - }, - "best_any": { - "variant": "visitor", - "us": 1134.9, - "level": "full" - }, - "variants": { - "visitor": { - "us": 1134.9, - "level": "full" - }, - "Value": { - "us": 1798.1, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "visitor (copy)", - "us": 1685.7, - "level": "full" - }, - "best_any": { - "variant": "visitor (copy)", - "us": 1685.7, - "level": "full" - }, - "variants": { - "visitor (copy)": { - "us": 1685.7, - "level": "full" - }, - "borrowed (copy)": { - "us": 3825.0, - "level": "full" - }, - "borrowed (reused)": { - "us": 3865.2, - "level": "full" - } - } - } - }, - "canada": { - "nlohmann json_document": { - "best": { - "variant": "parse", - "us": 4150.6, - "level": "full" - }, - "best_any": { - "variant": "parse", - "us": 4150.6, - "level": "full" - }, - "variants": { - "read (reused)": { - "us": 4119.7, - "level": "full" - }, - "parse": { - "us": 4150.6, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "sax", - "us": 5344.7, - "level": "full" - }, - "best_any": { - "variant": "sax", - "us": 5344.7, - "level": "full" - }, - "variants": { - "sax": { - "us": 5344.7, - "level": "full" - }, - "parse": { - "us": 12267.2, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "insitu (copy)", - "us": 3467.4, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy)", - "us": 3467.4, - "level": "full" - }, - "variants": { - "insitu (copy)": { - "us": 3467.4, - "level": "full" - }, - "read": { - "us": 3487.7, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "DOM", - "us": 4100.1, - "level": "full" - }, - "best_any": { - "variant": "DOM", - "us": 4100.1, - "level": "full" - }, - "variants": { - "DOM": { - "us": 4100.1, - "level": "full" - }, - "DOM (reused)": { - "us": 4105.9, - "level": "full" - }, - "On-Demand (reused)": { - "us": 5932.2, - "level": "full" - }, - "On-Demand": { - "us": 6036.4, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 3736.5, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 3736.5, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "generic", - "us": 25797.9, - "level": "full" - }, - "best_any": { - "variant": "lazy_json", - "us": 17578.3, - "level": "partial" - }, - "variants": { - "lazy_json": { - "us": 17578.3, - "level": "partial" - }, - "generic": { - "us": 25797.9, - "level": "full" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 5934.9, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 5934.9, - "level": "full" - }, - "variants": { - "SAX": { - "us": 5934.9, - "level": "full" - }, - "parse": { - "us": 7638.8, - "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "SAX", - "us": 12183.3, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 12081.5, - "level": "no UTF-8" - }, - "variants": { - "insitu (copy) (no encoding check)": { - "us": 12081.5, - "level": "no UTF-8" - }, - "SAX (no encoding check)": { - "us": 12110.1, - "level": "no UTF-8" - }, - "SAX": { - "us": 12183.3, - "level": "full" - }, - "insitu (copy)": { - "us": 12315.6, - "level": "full" - }, - "Document": { - "us": 13053.7, - "level": "full" - }, - "Document (no encoding check)": { - "us": 13070.9, - "level": "no UTF-8" - } - } - }, - "serde_json": { - "best": { - "variant": "visitor", - "us": 7610.4, - "level": "full" - }, - "best_any": { - "variant": "visitor", - "us": 7610.4, - "level": "full" - }, - "variants": { - "visitor": { - "us": 7610.4, - "level": "full" - }, - "Value": { - "us": 14578.6, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "visitor", - "us": 4580.2, - "level": "full" - }, - "best_any": { - "variant": "visitor", - "us": 4580.2, - "level": "full" - }, - "variants": { - "visitor": { - "us": 4580.2, - "level": "full" - }, - "Value": { - "us": 7489.7, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "visitor (copy)", - "us": 5190.9, - "level": "full" - }, - "best_any": { - "variant": "visitor (copy)", - "us": 5190.9, - "level": "full" - }, - "variants": { - "visitor (copy)": { - "us": 5190.9, - "level": "full" - }, - "borrowed (reused)": { - "us": 11384.6, - "level": "full" - }, - "borrowed (copy)": { - "us": 11483.9, - "level": "full" - } - } - } - }, - "jeopardy": { - "nlohmann json_document": { - "best": { - "variant": "parse", - "us": 89688.9, - "level": "full" - }, - "best_any": { - "variant": "parse", - "us": 89688.9, - "level": "full" - }, - "variants": { - "read (reused)": { - "us": 55164.4, - "level": "full" - }, - "parse": { - "us": 89688.9, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "sax", - "us": 101437.1, - "level": "full" - }, - "best_any": { - "variant": "sax", - "us": 101437.1, - "level": "full" - }, - "variants": { - "sax": { - "us": 101437.1, - "level": "full" - }, - "parse": { - "us": 624696.4, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "read", - "us": 135382.1, - "level": "full" - }, - "best_any": { - "variant": "read", - "us": 135382.1, - "level": "full" - }, - "variants": { - "read": { - "us": 135382.1, - "level": "full" - }, - "insitu (copy)": { - "us": 136448.0, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "On-Demand", - "us": 120055.8, - "level": "full" - }, - "best_any": { - "variant": "On-Demand", - "us": 120055.8, - "level": "full" - }, - "variants": { - "DOM (reused)": { - "us": 65216.0, - "level": "full" - }, - "On-Demand (reused)": { - "us": 77126.3, - "level": "full" - }, - "On-Demand": { - "us": 120055.8, - "level": "full" - }, - "DOM": { - "us": 131813.5, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 110323.5, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 110323.5, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "generic", - "us": 501804.9, - "level": "full" - }, - "best_any": { - "variant": "lazy_json", - "us": 223672.4, - "level": "partial" - }, - "variants": { - "lazy_json": { - "us": 223672.4, - "level": "partial" - }, - "generic": { - "us": 501804.9, - "level": "full" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 56310.4, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 56310.4, - "level": "full" - }, - "variants": { - "SAX": { - "us": 56310.4, - "level": "full" - }, - "parse": { - "us": 205611.0, - "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "insitu (copy)", - "us": 253074.6, - "level": "full" - }, - "best_any": { - "variant": "SAX (no encoding check)", - "us": 163825.6, - "level": "no UTF-8" - }, - "variants": { - "SAX (no encoding check)": { - "us": 163825.6, - "level": "no UTF-8" - }, - "insitu (copy) (no encoding check)": { - "us": 187363.2, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 199547.1, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 253074.6, - "level": "full" - }, - "SAX": { - "us": 254345.5, - "level": "full" - }, - "Document": { - "us": 289092.1, - "level": "full" - } - } - }, - "serde_json": { - "best": { - "variant": "visitor", - "us": 123810.1, - "level": "full" - }, - "best_any": { - "variant": "visitor", - "us": 123810.1, - "level": "full" - }, - "variants": { - "visitor": { - "us": 123810.1, - "level": "full" - }, - "Value": { - "us": 526223.6, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "visitor", - "us": 59149.2, - "level": "full" - }, - "best_any": { - "variant": "visitor", - "us": 59149.2, - "level": "full" - }, - "variants": { - "visitor": { - "us": 59149.2, - "level": "full" - }, - "Value": { - "us": 150764.0, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "visitor (copy)", - "us": 220581.9, - "level": "full" - }, - "best_any": { - "variant": "visitor (copy)", - "us": 220581.9, - "level": "full" - }, - "variants": { - "visitor (copy)": { - "us": 220581.9, - "level": "full" - }, - "borrowed (reused)": { - "us": 228425.7, - "level": "full" - }, - "borrowed (copy)": { - "us": 293609.3, - "level": "full" - } - } - } - }, - "status": { - "nlohmann json_document": { - "best": { - "variant": "parse", - "us": 1.9, - "level": "full" - }, - "best_any": { - "variant": "parse", - "us": 1.9, - "level": "full" - }, - "variants": { - "read (reused)": { - "us": 1.8, - "level": "full" - }, - "parse": { - "us": 1.9, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "sax", - "us": 4.1, - "level": "full" - }, - "best_any": { - "variant": "sax", - "us": 4.1, - "level": "full" - }, - "variants": { - "sax": { - "us": 4.1, - "level": "full" - }, - "parse": { - "us": 15.9, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "insitu (copy)", - "us": 1.9, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy)", - "us": 1.9, - "level": "full" - }, - "variants": { - "insitu (copy)": { - "us": 1.9, - "level": "full" - }, - "read": { - "us": 2.0, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "DOM", - "us": 2.2, - "level": "full" - }, - "best_any": { - "variant": "DOM", - "us": 2.2, - "level": "full" - }, - "variants": { - "DOM (reused)": { - "us": 1.9, - "level": "full" - }, - "DOM": { - "us": 2.2, - "level": "full" - }, - "On-Demand (reused)": { - "us": 2.8, - "level": "full" - }, - "On-Demand": { - "us": 3.0, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 2.2, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 2.2, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "generic", - "us": 16.7, - "level": "full" - }, - "best_any": { - "variant": "lazy_json", - "us": 5.9, - "level": "partial" - }, - "variants": { - "lazy_json": { - "us": 5.9, - "level": "partial" - }, - "generic": { - "us": 16.7, - "level": "full" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 2.4, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 2.4, - "level": "full" - }, - "variants": { - "SAX": { - "us": 2.4, + "parse (numbers: none)": { + "us": 5.8, "level": "full" }, - "parse": { - "us": 6.1, + "parser (reused)": { + "us": 5.8, "level": "full" } } @@ -2539,18 +1783,2663 @@ "us": 8.4, "level": "full" }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 4.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 11.6, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7.7, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 4.1, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 6.5, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 6.7, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 7.7, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 7.9, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 8.4, + "level": "full" + }, + "SAX": { + "us": 10.4, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 10.7, + "level": "full" + }, + "Document (reused allocator)": { + "us": 11.6, + "level": "full" + }, + "Document": { + "us": 12.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 2.5, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 1.9, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 1.9, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 2.5, + "level": "full" + }, + "Value": { + "us": 13.9, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 1.8, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 1.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 1.8, + "level": "full" + }, + "Value": { + "us": 2.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 2.9, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 2.9, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 2.4, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 2.4, + "level": "full" + }, + "variants": { + "tape (reused)": { + "us": 2.4, + "level": "full" + }, + "tape (copy)": { + "us": 2.9, + "level": "full" + }, + "borrowed (copy)": { + "us": 5.9, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 256.2, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 256.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 252.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 252.7, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 252.7, + "level": "full" + }, + "parse": { + "us": 256.2, + "level": "full" + }, + "accept": { + "us": 259.4, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 667.2, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 667.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 667.2, + "level": "full" + }, + "parse": { + "us": 3255.9, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 320.0, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 320.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 320.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 320.9, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 320.0, + "level": "full" + }, + "read (reused allocator)": { + "us": 320.9, + "level": "full" + }, + "read": { + "us": 321.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 323.6, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 285.6, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 285.6, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 285.0, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 285.0, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 285.0, + "level": "full" + }, + "DOM": { + "us": 285.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 337.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 337.1, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 476.8, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 476.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 476.8, + "level": "full" + }, + "generic (double, strict)": { + "us": 2269.3, + "level": "full" + }, + "generic (double)": { + "us": 2279.5, + "level": "partial" + }, + "generic (strict)": { + "us": 3515.6, + "level": "full" + }, + "generic": { + "us": 3538.1, + "level": "partial" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 426.0, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 426.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 436.3, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 436.3, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 426.0, + "level": "full" + }, + "SAX": { + "us": 436.2, + "level": "full" + }, + "SAX (reused)": { + "us": 436.3, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1097.2, + "level": "full" + }, + "parser (reused)": { + "us": 1105.2, + "level": "full" + }, + "parse": { + "us": 1112.7, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1489.8, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 905.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2092.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1371.0, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 905.7, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1198.2, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1214.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1371.0, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1373.5, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1489.8, + "level": "full" + }, + "SAX": { + "us": 1900.6, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 1902.4, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2092.2, + "level": "full" + }, + "Document": { + "us": 2123.3, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 476.4, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 345.3, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 345.3, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 476.4, + "level": "full" + }, + "Value": { + "us": 3489.5, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 340.0, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 340.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 340.0, + "level": "full" + }, + "Value": { + "us": 418.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 515.3, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 515.3, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 518.0, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 518.0, + "level": "full" + }, + "variants": { + "tape (copy)": { + "us": 515.3, + "level": "full" + }, + "tape (reused)": { + "us": 518.0, + "level": "full" + }, + "borrowed (copy)": { + "us": 1217.8, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 484.9, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 484.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 484.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 484.5, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 484.5, + "level": "full" + }, + "parse": { + "us": 484.9, + "level": "full" + }, + "accept": { + "us": 485.2, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 1181.7, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 1181.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 1181.7, + "level": "full" + }, + "parse": { + "us": 5361.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 487.9, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 487.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 497.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 497.1, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 487.9, + "level": "full" + }, + "read": { + "us": 489.1, + "level": "full" + }, + "read (reused allocator)": { + "us": 497.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 514.4, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 567.5, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 567.5, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 568.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 568.8, + "level": "full" + }, + "variants": { + "DOM": { + "us": 567.5, + "level": "full" + }, + "DOM (reused)": { + "us": 568.8, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 674.7, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 674.7, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 658.0, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 658.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 658.0, + "level": "full" + }, + "generic (double, strict)": { + "us": 3424.3, + "level": "full" + }, + "generic (double)": { + "us": 3496.7, + "level": "partial" + }, + "generic": { + "us": 6524.1, + "level": "partial" + }, + "generic (strict)": { + "us": 6609.8, + "level": "full" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 530.1, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 530.1, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 588.3, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 588.3, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 530.1, + "level": "full" + }, + "SAX": { + "us": 587.2, + "level": "full" + }, + "SAX (reused)": { + "us": 588.3, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1309.3, + "level": "full" + }, + "parser (reused)": { + "us": 1384.2, + "level": "full" + }, + "parse": { + "us": 1439.9, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1787.2, + "level": "full" + }, + "best_any": { + "variant": "SAX (no encoding check)", + "us": 1372.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2158.9, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1749.1, + "level": "no UTF-8" + }, + "variants": { + "SAX (no encoding check)": { + "us": 1372.8, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 1545.2, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1587.8, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1742.7, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1749.1, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1787.2, + "level": "full" + }, + "SAX": { + "us": 1818.8, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2081.2, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2158.9, + "level": "full" + }, + "Document": { + "us": 2358.6, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 637.2, + "level": "full" + }, + "best_any": { + "variant": "from_utf8 + IgnoredAny", + "us": 637.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "from_utf8 + IgnoredAny": { + "us": 637.2, + "level": "full" + }, + "IgnoredAny": { + "us": 665.8, + "level": "no UTF-8" + }, + "Value": { + "us": 5301.8, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 640.9, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 640.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 640.9, + "level": "full" + }, + "Value": { + "us": 819.1, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 1159.4, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 1159.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 1092.3, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 1092.3, + "level": "full" + }, + "variants": { + "tape (reused)": { + "us": 1092.3, + "level": "full" + }, + "tape (copy)": { + "us": 1159.4, + "level": "full" + }, + "borrowed (copy)": { + "us": 3638.6, + "level": "full" + } + } + } + } + }, + "sum": { + "twitter": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 372.6, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 372.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 366.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 366.8, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 366.8, + "level": "full" + }, + "parse": { + "us": 372.6, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 749.6, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 749.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 749.6, + "level": "full" + }, + "parse": { + "us": 3535.5, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 436.9, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 436.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 439.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 439.8, + "level": "full" + }, + "variants": { + "read": { + "us": 436.9, + "level": "full" + }, + "insitu (copy)": { + "us": 438.4, + "level": "full" + }, + "read (reused allocator)": { + "us": 439.8, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 396.4, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 396.4, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 393.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 393.4, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 393.4, + "level": "full" + }, + "DOM": { + "us": 396.4, + "level": "full" + }, + "On-Demand (reused)": { + "us": 570.1, + "level": "full" + }, + "On-Demand": { + "us": 571.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 506.5, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 506.5, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 2516.5, + "level": "full" + }, + "best_any": { + "variant": "generic (double, strict)", + "us": 2516.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (double, strict)": { + "us": 2516.5, + "level": "full" + }, + "generic (double)": { + "us": 2563.6, + "level": "partial" + }, + "lazy_json": { + "us": 2669.5, + "level": "partial" + }, + "generic (strict)": { + "us": 3685.3, + "level": "full" + }, + "generic": { + "us": 3708.8, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 581.5, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 581.5, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 581.8, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 581.8, + "level": "full" + }, + "variants": { + "SAX": { + "us": 581.5, + "level": "full" + }, + "SAX (reused)": { + "us": 581.8, + "level": "full" + }, + "parser (reused)": { + "us": 1276.0, + "level": "full" + }, + "parse": { + "us": 1285.1, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1866.5, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1233.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2221.7, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1532.9, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1233.1, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1353.0, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1520.3, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1532.9, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1866.5, + "level": "full" + }, + "SAX": { + "us": 2037.2, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2221.7, + "level": "full" + }, + "Document": { + "us": 2297.8, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 1310.8, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 1310.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 1310.8, + "level": "full" + }, + "Value": { + "us": 3672.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 503.3, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 503.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 503.3, + "level": "full" + }, + "Value": { + "us": 815.3, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 667.8, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 667.8, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 1440.1, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 1440.1, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 667.8, + "level": "full" + }, + "borrowed (reused)": { + "us": 1440.1, + "level": "full" + }, + "borrowed (copy)": { + "us": 1456.2, + "level": "full" + } + } + } + }, + "citm_catalog": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 892.9, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 892.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 893.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 893.6, + "level": "full" + }, + "variants": { + "parse": { + "us": 892.9, + "level": "full" + }, + "read (reused)": { + "us": 893.6, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 1488.1, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 1488.1, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 1488.1, + "level": "full" + }, + "parse": { + "us": 6018.4, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 1091.0, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 1091.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1177.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1177.7, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 1091.0, + "level": "full" + }, + "read": { + "us": 1139.4, + "level": "full" + }, + "read (reused allocator)": { + "us": 1177.7, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 968.7, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 968.7, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 968.3, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 968.3, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 968.3, + "level": "full" + }, + "DOM": { + "us": 968.7, + "level": "full" + }, + "On-Demand (reused)": { + "us": 1344.0, + "level": "full" + }, + "On-Demand": { + "us": 1423.7, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 1207.7, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 1207.7, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 4350.3, + "level": "full" + }, + "best_any": { + "variant": "generic (double)", + "us": 4321.3, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (double)": { + "us": 4321.3, + "level": "partial" + }, + "generic (double, strict)": { + "us": 4350.3, + "level": "full" + }, + "generic (strict)": { + "us": 7553.2, + "level": "full" + }, + "generic": { + "us": 7612.8, + "level": "partial" + }, + "lazy_json": { + "us": 11609.4, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 927.3, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 927.3, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 927.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 927.0, + "level": "full" + }, + "variants": { + "SAX (reused)": { + "us": 927.0, + "level": "full" + }, + "SAX": { + "us": 927.3, + "level": "full" + }, + "parser (reused)": { + "us": 1893.0, + "level": "full" + }, + "parse": { + "us": 1953.1, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX", + "us": 2308.4, + "level": "full" + }, + "best_any": { + "variant": "SAX (no encoding check)", + "us": 1862.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2628.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 2123.5, + "level": "no UTF-8" + }, + "variants": { + "SAX (no encoding check)": { + "us": 1862.8, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 2123.5, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 2161.6, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 2170.9, + "level": "no UTF-8" + }, + "SAX": { + "us": 2308.4, + "level": "full" + }, + "insitu (copy)": { + "us": 2623.6, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2628.8, + "level": "full" + }, + "Document": { + "us": 2737.6, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 2316.5, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 2316.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 2316.5, + "level": "full" + }, + "Value": { + "us": 6263.6, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 1122.8, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 1122.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 1122.8, + "level": "full" + }, + "Value": { + "us": 1850.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 1687.6, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 1687.6, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 3929.4, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 3929.4, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 1687.6, + "level": "full" + }, + "borrowed (reused)": { + "us": 3929.4, + "level": "full" + }, + "borrowed (copy)": { + "us": 3960.3, + "level": "full" + } + } + } + }, + "canada": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 4352.7, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 4352.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 4375.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 4375.0, + "level": "full" + }, + "variants": { + "parse": { + "us": 4352.7, + "level": "full" + }, + "read (reused)": { + "us": 4375.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 5684.4, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 5684.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 5684.4, + "level": "full" + }, + "parse": { + "us": 13422.8, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 3587.3, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 3587.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 3728.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 3728.1, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 3587.3, + "level": "full" + }, + "read": { + "us": 3612.9, + "level": "full" + }, + "read (reused allocator)": { + "us": 3728.1, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 4454.3, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 4454.3, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 4377.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 4377.8, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 4377.8, + "level": "full" + }, + "DOM": { + "us": 4454.3, + "level": "full" + }, + "On-Demand": { + "us": 5933.2, + "level": "full" + }, + "On-Demand (reused)": { + "us": 6029.5, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 4034.4, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 4034.4, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 13015.4, + "level": "full" + }, + "best_any": { + "variant": "generic (double, strict)", + "us": 13015.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (double, strict)": { + "us": 13015.4, + "level": "full" + }, + "generic (double)": { + "us": 13405.5, + "level": "partial" + }, + "lazy_json": { + "us": 18970.1, + "level": "partial" + }, + "generic (strict)": { + "us": 28119.6, + "level": "full" + }, + "generic": { + "us": 28667.0, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 6355.9, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 6355.9, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 6419.8, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 6419.8, + "level": "full" + }, + "variants": { + "SAX": { + "us": 6355.9, + "level": "full" + }, + "SAX (reused)": { + "us": 6419.8, + "level": "full" + }, + "parse": { + "us": 7977.1, + "level": "full" + }, + "parser (reused)": { + "us": 8002.4, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX", + "us": 13208.6, + "level": "full" + }, + "best_any": { + "variant": "SAX (no encoding check)", + "us": 12975.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 14560.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 14310.3, + "level": "no UTF-8" + }, + "variants": { + "SAX (no encoding check)": { + "us": 12975.6, + "level": "no UTF-8" + }, + "SAX": { + "us": 13208.6, + "level": "full" + }, + "insitu (copy) (no encoding check)": { + "us": 13335.0, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 13342.5, + "level": "full" + }, + "Document (no encoding check)": { + "us": 14228.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 14310.3, + "level": "no UTF-8" + }, + "Document": { + "us": 14379.0, + "level": "full" + }, + "Document (reused allocator)": { + "us": 14560.8, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 7240.7, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 7240.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 7240.7, + "level": "full" + }, + "Value": { + "us": 13909.9, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 4418.5, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 4418.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 4418.5, + "level": "full" + }, + "Value": { + "us": 7197.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 5134.0, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 5134.0, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 11297.7, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 11297.7, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 5134.0, + "level": "full" + }, + "borrowed (copy)": { + "us": 11077.3, + "level": "full" + }, + "borrowed (reused)": { + "us": 11297.7, + "level": "full" + } + } + } + }, + "jeopardy": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 89554.0, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 89554.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 52607.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 52607.1, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 52607.1, + "level": "full" + }, + "parse": { + "us": 89554.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 95696.2, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 95696.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 95696.2, + "level": "full" + }, + "parse": { + "us": 618895.6, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 135078.8, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 135078.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 66868.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 66868.9, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 66868.9, + "level": "full" + }, + "read": { + "us": 135078.8, + "level": "full" + }, + "insitu (copy)": { + "us": 138105.3, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "On-Demand", + "us": 115047.5, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 115047.5, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 62857.0, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 62857.0, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 62857.0, + "level": "full" + }, + "On-Demand (reused)": { + "us": 75936.5, + "level": "full" + }, + "On-Demand": { + "us": 115047.5, + "level": "full" + }, + "DOM": { + "us": 131798.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 107937.2, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 107937.2, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 311559.8, + "level": "full" + }, + "best_any": { + "variant": "lazy_json", + "us": 215313.8, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "lazy_json": { + "us": 215313.8, + "level": "partial" + }, + "generic (double)": { + "us": 307946.6, + "level": "partial" + }, + "generic (double, strict)": { + "us": 311559.8, + "level": "full" + }, + "generic": { + "us": 497316.5, + "level": "partial" + }, + "generic (strict)": { + "us": 499213.1, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 57388.2, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 57388.2, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 57669.8, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 57669.8, + "level": "full" + }, + "variants": { + "SAX": { + "us": 57388.2, + "level": "full" + }, + "SAX (reused)": { + "us": 57669.8, + "level": "full" + }, + "parser (reused)": { + "us": 138994.3, + "level": "full" + }, + "parse": { + "us": 197226.5, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 251430.7, + "level": "full" + }, + "best_any": { + "variant": "SAX (no encoding check)", + "us": 169920.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 285947.6, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 197024.6, + "level": "no UTF-8" + }, + "variants": { + "SAX (no encoding check)": { + "us": 169920.6, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 186014.3, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 197024.6, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 204052.7, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 251430.7, + "level": "full" + }, + "SAX": { + "us": 261497.6, + "level": "full" + }, + "Document (reused allocator)": { + "us": 285947.6, + "level": "full" + }, + "Document": { + "us": 303736.6, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 130249.3, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 130249.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 130249.3, + "level": "full" + }, + "Value": { + "us": 544041.8, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 59992.8, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 59992.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 59992.8, + "level": "full" + }, + "Value": { + "us": 149296.9, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 224411.1, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 224411.1, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 236685.9, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 236685.9, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 224411.1, + "level": "full" + }, + "borrowed (reused)": { + "us": 236685.9, + "level": "full" + }, + "borrowed (copy)": { + "us": 310720.1, + "level": "full" + } + } + } + }, + "status": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 1.9, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 1.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1.8, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 1.8, + "level": "full" + }, + "parse": { + "us": 1.9, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 4.1, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 4.1, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 4.1, + "level": "full" + }, + "parse": { + "us": 15.4, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 1.9, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 1.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.8, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 1.8, + "level": "full" + }, + "read": { + "us": 1.9, + "level": "full" + }, + "insitu (copy)": { + "us": 1.9, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 2.3, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 2.3, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.9, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 1.9, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 1.9, + "level": "full" + }, + "DOM": { + "us": 2.3, + "level": "full" + }, + "On-Demand (reused)": { + "us": 2.8, + "level": "full" + }, + "On-Demand": { + "us": 3.0, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 2.3, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 2.3, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 10.1, + "level": "full" + }, + "best_any": { + "variant": "lazy_json", + "us": 6.0, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "lazy_json": { + "us": 6.0, + "level": "partial" + }, + "generic (double, strict)": { + "us": 10.1, + "level": "full" + }, + "generic (double)": { + "us": 10.3, + "level": "partial" + }, + "generic (strict)": { + "us": 17.1, + "level": "full" + }, + "generic": { + "us": 17.3, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 2.4, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 2.4, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 2.4, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 2.4, + "level": "full" + }, + "variants": { + "SAX": { + "us": 2.4, + "level": "full" + }, + "SAX (reused)": { + "us": 2.4, + "level": "full" + }, + "parser (reused)": { + "us": 5.8, + "level": "full" + }, + "parse": { + "us": 6.1, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 8.5, + "level": "full" + }, "best_any": { "variant": "insitu (copy) (no encoding check)", "us": 4.4, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 11.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7.6, + "level": "no UTF-8" + }, "variants": { "insitu (copy) (no encoding check)": { "us": 4.4, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 6.7, + "us": 6.8, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 7.6, "level": "no UTF-8" }, "Document (no encoding check)": { @@ -2558,15 +4447,19 @@ "level": "no UTF-8" }, "insitu (copy)": { - "us": 8.4, + "us": 8.5, "level": "full" }, "SAX": { - "us": 10.7, + "us": 10.4, + "level": "full" + }, + "Document (reused allocator)": { + "us": 11.5, "level": "full" }, "Document": { - "us": 11.8, + "us": 12.2, "level": "full" } } @@ -2574,21 +4467,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 4.3, + "us": 5.1, "level": "full" }, "best_any": { "variant": "visitor", - "us": 4.3, + "us": 5.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 4.3, + "us": 5.1, "level": "full" }, "Value": { - "us": 12.9, + "us": 14.2, "level": "full" } } @@ -2596,21 +4491,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 2.4, + "us": 2.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 2.4, + "us": 2.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 2.4, + "us": 2.8, "level": "full" }, "Value": { - "us": 4.1, + "us": 4.5, "level": "full" } } @@ -2618,25 +4515,773 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 3.8, + "us": 4.0, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 3.8, + "us": 4.0, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 6.7, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 6.7, "level": "full" }, "variants": { "visitor (copy)": { - "us": 3.8, + "us": 4.0, "level": "full" }, "borrowed (reused)": { - "us": 5.7, + "us": 6.7, "level": "full" }, "borrowed (copy)": { - "us": 6.3, + "us": 7.4, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 328.2, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 328.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 320.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 320.8, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 320.8, + "level": "full" + }, + "parse": { + "us": 328.2, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 686.0, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 686.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 686.0, + "level": "full" + }, + "parse": { + "us": 3489.6, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 377.9, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 377.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 377.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 377.8, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 377.8, + "level": "full" + }, + "read": { + "us": 377.9, + "level": "full" + }, + "insitu (copy)": { + "us": 378.8, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 379.4, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 379.4, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 374.2, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 374.2, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 374.2, + "level": "full" + }, + "DOM": { + "us": 379.4, + "level": "full" + }, + "On-Demand": { + "us": 547.2, + "level": "full" + }, + "On-Demand (reused)": { + "us": 548.4, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 392.3, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 392.3, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 2408.5, + "level": "full" + }, + "best_any": { + "variant": "lazy_json", + "us": 1689.3, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "lazy_json": { + "us": 1689.3, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2408.5, + "level": "full" + }, + "generic (double)": { + "us": 2431.2, + "level": "partial" + }, + "generic (strict)": { + "us": 3521.0, + "level": "full" + }, + "generic": { + "us": 3688.0, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 440.2, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 440.2, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 438.1, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 438.1, + "level": "full" + }, + "variants": { + "SAX (reused)": { + "us": 438.1, + "level": "full" + }, + "SAX": { + "us": 440.2, + "level": "full" + }, + "parser (reused)": { + "us": 1172.3, + "level": "full" + }, + "parse": { + "us": 1191.6, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1577.5, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 969.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2180.6, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1438.4, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 969.5, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1249.8, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1438.4, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1499.7, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1577.5, + "level": "full" + }, + "SAX": { + "us": 2031.5, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2180.6, + "level": "full" + }, + "Document": { + "us": 2232.1, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 1040.4, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 1040.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 1040.4, + "level": "full" + }, + "Value": { + "us": 3494.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 397.3, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 397.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 397.3, + "level": "full" + }, + "Value": { + "us": 674.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 619.8, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 619.8, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 1381.5, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 1381.5, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 619.8, + "level": "full" + }, + "borrowed (reused)": { + "us": 1381.5, + "level": "full" + }, + "borrowed (copy)": { + "us": 1415.1, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 655.7, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 655.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 662.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 662.2, + "level": "full" + }, + "variants": { + "parse": { + "us": 655.7, + "level": "full" + }, + "read (reused)": { + "us": 662.2, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 1194.1, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 1194.1, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 1194.1, + "level": "full" + }, + "parse": { + "us": 5494.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 650.2, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 650.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 651.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 651.8, + "level": "full" + }, + "variants": { + "read": { + "us": 650.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 651.8, + "level": "full" + }, + "insitu (copy)": { + "us": 656.1, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 809.7, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 809.7, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 816.7, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 816.7, + "level": "full" + }, + "variants": { + "DOM": { + "us": 809.7, + "level": "full" + }, + "DOM (reused)": { + "us": 816.7, + "level": "full" + }, + "On-Demand (reused)": { + "us": 1190.1, + "level": "full" + }, + "On-Demand": { + "us": 1205.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 857.7, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 857.7, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 3724.0, + "level": "full" + }, + "best_any": { + "variant": "lazy_json", + "us": 3482.2, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "lazy_json": { + "us": 3482.2, + "level": "partial" + }, + "generic (double, strict)": { + "us": 3724.0, + "level": "full" + }, + "generic (double)": { + "us": 3736.0, + "level": "partial" + }, + "generic (strict)": { + "us": 6991.2, + "level": "full" + }, + "generic": { + "us": 7006.4, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 610.0, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 610.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 608.7, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 608.7, + "level": "full" + }, + "variants": { + "SAX (reused)": { + "us": 608.7, + "level": "full" + }, + "SAX": { + "us": 610.0, + "level": "full" + }, + "parse": { + "us": 1564.5, + "level": "full" + }, + "parser (reused)": { + "us": 1603.0, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX", + "us": 1913.9, + "level": "full" + }, + "best_any": { + "variant": "SAX (no encoding check)", + "us": 1462.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2444.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1960.6, + "level": "no UTF-8" + }, + "variants": { + "SAX (no encoding check)": { + "us": 1462.7, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 1672.0, + "level": "no UTF-8" + }, + "SAX": { + "us": 1913.9, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1931.8, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1955.0, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1960.6, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 2444.5, + "level": "full" + }, + "Document": { + "us": 2517.8, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 1337.4, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 1337.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 1337.4, + "level": "full" + }, + "Value": { + "us": 5475.1, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 836.5, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 836.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 836.5, + "level": "full" + }, + "Value": { + "us": 1438.7, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 1252.6, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 1252.6, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 3572.8, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 3572.8, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 1252.6, + "level": "full" + }, + "borrowed (reused)": { + "us": 3572.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 3644.7, "level": "full" } } @@ -2648,47 +5293,59 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 324.1, + "us": 324.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 324.1, + "us": 324.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 327.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 327.2, "level": "full" }, "variants": { - "read (reused)": { - "us": 312.4, + "parse": { + "us": 324.0, "level": "full" }, - "parse": { - "us": 324.1, + "read (reused)": { + "us": 327.2, "level": "full" }, "structs (from_json)": { - "us": 325.7, + "us": 366.2, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 3653.8, + "variant": "structs (from_json)", + "us": 3825.0, "level": "full" }, "best_any": { - "variant": "parse", - "us": 3653.8, + "variant": "structs (from_json)", + "us": 3825.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "parse": { - "us": 3653.8, + "structs (from_json)": { + "us": 3825.0, "level": "full" }, - "structs (from_json)": { - "us": 3684.2, + "parse": { + "us": 3891.2, "level": "full" } } @@ -2696,21 +5353,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 387.3, + "us": 395.3, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 387.3, + "us": 395.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 455.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 455.2, "level": "full" }, "variants": { "insitu (copy)": { - "us": 387.3, + "us": 395.3, + "level": "full" + }, + "read (raw numbers)": { + "us": 409.3, "level": "full" }, "read": { - "us": 392.7, + "us": 411.6, + "level": "full" + }, + "read (reused allocator)": { + "us": 455.2, "level": "full" } } @@ -2718,29 +5393,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 330.3, + "us": 341.4, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 210.3, + "us": 186.1, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 354.0, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 193.6, "level": "partial" }, "variants": { - "On-Demand (reused)": { - "us": 206.7, - "level": "partial" - }, "On-Demand": { - "us": 210.3, + "us": 186.1, "level": "partial" }, - "DOM (reused)": { - "us": 324.5, - "level": "full" + "On-Demand (reused)": { + "us": 193.6, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 199.9, + "level": "partial" + }, + "On-Demand structs": { + "us": 201.0, + "level": "partial" }, "DOM": { - "us": 330.3, + "us": 341.4, + "level": "full" + }, + "DOM (reused)": { + "us": 354.0, "level": "full" } } @@ -2749,12 +5442,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 460.7, + "us": 486.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 460.7, + "us": 486.0, "level": "no UTF-8" } } @@ -2762,77 +5457,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 559.5, + "us": 563.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 345.1, + "us": 339.5, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 345.1, + "us": 339.5, "level": "partial" }, "structs (validate_skipped)": { - "us": 559.5, + "us": 563.2, "level": "full" }, "lazy_json": { - "us": 793.4, + "us": 822.2, "level": "partial" }, - "generic": { - "us": 4014.2, + "generic (double, strict)": { + "us": 2860.8, "level": "full" + }, + "generic (double)": { + "us": 2915.1, + "level": "partial" + }, + "generic (strict)": { + "us": 4149.2, + "level": "full" + }, + "generic": { + "us": 4400.9, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 1263.6, + "variant": "parse_into structs", + "us": 849.5, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1263.6, + "variant": "parse_into structs", + "us": 849.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1334.6, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1334.6, "level": "full" }, "variants": { + "parse_into structs": { + "us": 849.5, + "level": "full" + }, "parse": { - "us": 1263.6, + "us": 1250.5, + "level": "full" + }, + "parser (reused)": { + "us": 1334.6, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1900.9, + "us": 1892.9, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1251.0, + "us": 1189.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2333.9, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1688.1, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1251.0, + "us": 1189.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1501.8, + "us": 1496.4, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1688.1, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1690.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1900.9, + "us": 1892.9, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2333.9, "level": "full" }, "Document": { - "us": 2250.8, + "us": 2506.1, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2509.1, "level": "full" } } @@ -2840,25 +5599,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 769.2, + "us": 721.9, "level": "full" }, "best_any": { "variant": "from_utf8 + structs", - "us": 769.2, + "us": 721.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "from_utf8 + structs": { - "us": 769.2, + "us": 721.9, "level": "full" }, "structs": { - "us": 812.9, + "us": 785.8, "level": "no UTF-8" }, "Value": { - "us": 4230.2, + "us": 4043.7, "level": "full" } } @@ -2866,21 +5627,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 556.9, + "us": 538.0, "level": "full" }, "best_any": { "variant": "structs", - "us": 556.9, + "us": 538.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 556.9, + "us": 538.0, "level": "full" }, "Value": { - "us": 632.6, + "us": 601.3, "level": "full" } } @@ -2888,21 +5651,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 729.9, + "us": 740.4, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 729.9, + "us": 740.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 729.9, + "us": 740.4, "level": "full" }, "borrowed (copy)": { - "us": 1364.3, + "us": 1364.7, "level": "full" } } @@ -2912,47 +5677,59 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 728.4, + "us": 728.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 728.4, + "us": 728.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 728.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 728.6, "level": "full" }, "variants": { - "read (reused)": { - "us": 726.0, + "parse": { + "us": 728.6, "level": "full" }, - "parse": { - "us": 728.4, + "read (reused)": { + "us": 728.6, "level": "full" }, "structs (from_json)": { - "us": 774.9, + "us": 772.9, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 5493.9, + "variant": "structs (from_json)", + "us": 5474.8, "level": "full" }, "best_any": { - "variant": "parse", - "us": 5493.9, + "variant": "structs (from_json)", + "us": 5474.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "parse": { - "us": 5493.9, + "structs (from_json)": { + "us": 5474.8, "level": "full" }, - "structs (from_json)": { - "us": 5527.6, + "parse": { + "us": 5676.3, "level": "full" } } @@ -2960,21 +5737,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 900.3, + "us": 934.5, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 900.3, + "us": 934.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 999.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 999.8, "level": "full" }, "variants": { "insitu (copy)": { - "us": 900.3, + "us": 934.5, "level": "full" }, "read": { - "us": 904.2, + "us": 935.6, + "level": "full" + }, + "read (raw numbers)": { + "us": 965.1, + "level": "full" + }, + "read (reused allocator)": { + "us": 999.8, "level": "full" } } @@ -2982,29 +5777,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 743.3, + "us": 722.7, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 609.7, + "us": 487.0, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 720.5, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 486.0, "level": "partial" }, "variants": { - "On-Demand": { - "us": 609.7, + "On-Demand (reused)": { + "us": 486.0, "level": "partial" }, - "On-Demand (reused)": { - "us": 612.8, + "On-Demand": { + "us": 487.0, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 498.0, + "level": "partial" + }, + "On-Demand structs": { + "us": 539.1, "level": "partial" }, "DOM (reused)": { - "us": 741.1, + "us": 720.5, "level": "full" }, "DOM": { - "us": 743.3, + "us": 722.7, "level": "full" } } @@ -3013,12 +5826,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1024.3, + "us": 1024.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1024.3, + "us": 1024.5, "level": "no UTF-8" } } @@ -3026,77 +5841,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1329.0, + "us": 1270.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 424.0, + "us": 412.2, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 424.0, + "us": 412.2, "level": "partial" }, "structs (validate_skipped)": { - "us": 1329.0, + "us": 1270.2, "level": "full" }, - "lazy_json": { - "us": 6523.9, + "generic (double, strict)": { + "us": 3958.4, + "level": "full" + }, + "generic (double)": { + "us": 4011.7, "level": "partial" }, - "generic": { - "us": 7022.3, + "lazy_json": { + "us": 6645.1, + "level": "partial" + }, + "generic (strict)": { + "us": 7286.2, "level": "full" + }, + "generic": { + "us": 7416.8, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 1658.9, + "variant": "parse_into structs", + "us": 1400.3, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1658.9, + "variant": "parse_into structs", + "us": 1400.3, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1664.4, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1664.4, "level": "full" }, "variants": { + "parse_into structs": { + "us": 1400.3, + "level": "full" + }, + "parser (reused)": { + "us": 1664.4, + "level": "full" + }, "parse": { - "us": 1658.9, + "us": 1670.2, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2328.9, + "us": 2322.1, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1936.3, + "us": 1943.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2406.7, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1963.7, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1936.3, + "us": 1943.5, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1963.7, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1997.3, + "us": 2000.9, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 2242.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2328.9, + "us": 2322.1, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2406.7, "level": "full" }, "Document": { - "us": 2472.0, + "us": 2524.7, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2778.8, "level": "full" } } @@ -3104,25 +5983,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 1503.9, + "us": 1558.9, "level": "full" }, "best_any": { "variant": "structs", - "us": 1472.7, + "us": 1515.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1472.7, + "us": 1515.6, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 1503.9, + "us": 1558.9, "level": "full" }, "Value": { - "us": 6038.8, + "us": 6063.1, "level": "full" } } @@ -3130,21 +6011,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 1022.9, + "us": 1027.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 1022.9, + "us": 1027.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1022.9, + "us": 1027.5, "level": "full" }, "Value": { - "us": 1200.9, + "us": 1219.0, "level": "full" } } @@ -3152,21 +6035,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 1658.4, + "us": 1801.5, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 1658.4, + "us": 1801.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 1658.4, + "us": 1801.5, "level": "full" }, "borrowed (copy)": { - "us": 3571.2, + "us": 3775.9, "level": "full" } } @@ -3175,26 +6060,36 @@ "canada": { "nlohmann json_document": { "best": { - "variant": "structs (from_json)", - "us": 1784.2, + "variant": "parse", + "us": 1795.1, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 1784.2, + "variant": "parse", + "us": 1795.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1787.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1787.8, "level": "full" }, "variants": { "read (reused)": { - "us": 1774.9, - "level": "full" - }, - "structs (from_json)": { - "us": 1784.2, + "us": 1787.8, "level": "full" }, "parse": { - "us": 1785.3, + "us": 1795.1, + "level": "full" + }, + "structs (from_json)": { + "us": 1796.4, "level": "full" } } @@ -3202,43 +6097,63 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 11582.9, + "us": 12002.3, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 11582.9, + "us": 12002.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 11582.9, + "us": 12002.3, "level": "full" }, "parse": { - "us": 11983.5, + "us": 12243.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 2814.4, + "variant": "read (raw numbers)", + "us": 2373.6, "level": "full" }, "best_any": { - "variant": "read", - "us": 2814.4, + "variant": "read (raw numbers)", + "us": 2373.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 2787.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 2787.7, "level": "full" }, "variants": { - "read": { - "us": 2814.4, + "read (raw numbers)": { + "us": 2373.6, "level": "full" }, "insitu (copy)": { - "us": 2824.2, + "us": 2727.1, + "level": "full" + }, + "read": { + "us": 2762.4, + "level": "full" + }, + "read (reused allocator)": { + "us": 2787.7, "level": "full" } } @@ -3246,29 +6161,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3290.8, + "us": 3231.1, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 861.0, + "us": 702.8, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 3254.2, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 702.1, "level": "partial" }, "variants": { - "On-Demand": { - "us": 861.0, - "level": "partial" - }, "On-Demand (reused)": { - "us": 864.4, + "us": 702.1, "level": "partial" }, - "DOM (reused)": { - "us": 3282.5, - "level": "full" + "On-Demand": { + "us": 702.8, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 710.4, + "level": "partial" + }, + "On-Demand structs": { + "us": 933.4, + "level": "partial" }, "DOM": { - "us": 3290.8, + "us": 3231.1, + "level": "full" + }, + "DOM (reused)": { + "us": 3254.2, "level": "full" } } @@ -3277,12 +6210,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3030.1, + "us": 3200.8, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3030.1, + "us": 3200.8, "level": "no UTF-8" } } @@ -3290,103 +6225,169 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1779.8, + "us": 1789.8, "level": "full" }, "best_any": { "variant": "structs", - "us": 463.3, + "us": 459.6, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 463.3, + "us": 459.6, "level": "partial" }, "structs (validate_skipped)": { - "us": 1779.8, + "us": 1789.8, "level": "full" }, "lazy_json": { - "us": 2724.1, + "us": 2794.7, "level": "partial" }, - "generic": { - "us": 25691.0, + "generic (double, strict)": { + "us": 11955.7, "level": "full" + }, + "generic (double)": { + "us": 12498.1, + "level": "partial" + }, + "generic (strict)": { + "us": 26593.1, + "level": "full" + }, + "generic": { + "us": 26880.0, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 7172.7, + "us": 7388.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 7172.7, + "us": 7388.8, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 7133.4, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 7133.4, "level": "full" }, "variants": { + "parser (reused)": { + "us": 7133.4, + "level": "full" + }, "parse": { - "us": 7172.7, + "us": 7388.8, + "level": "full" + }, + "parse_into structs": { + "us": 8351.3, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 11813.5, + "us": 11855.4, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 11564.9, + "variant": "insitu (copy)", + "us": 11855.4, + "level": "full" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 13302.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 12972.2, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 11564.9, - "level": "no UTF-8" - }, "insitu (copy)": { - "us": 11813.5, + "us": 11855.4, "level": "full" }, - "Document": { - "us": 12192.2, - "level": "full" + "insitu (copy) (no encoding check)": { + "us": 12086.1, + "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 12503.6, + "us": 12336.8, "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 12709.6, + "level": "no UTF-8" + }, + "Document": { + "us": 12760.9, + "level": "full" + }, + "Document (raw numbers)": { + "us": 12914.1, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 12972.2, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 13302.0, + "level": "full" } } }, "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 2442.0, + "us": 2585.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 2322.9, + "us": 2447.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 2322.9, + "us": 2447.5, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 2442.0, + "us": 2585.2, "level": "full" }, "Value": { - "us": 13892.3, + "us": 13748.4, "level": "full" } } @@ -3394,21 +6395,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 2246.6, + "us": 2283.1, "level": "full" }, "best_any": { "variant": "structs", - "us": 2246.6, + "us": 2283.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 2246.6, + "us": 2283.1, "level": "full" }, "Value": { - "us": 3718.3, + "us": 3833.4, "level": "full" } } @@ -3416,21 +6419,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 4915.3, + "us": 4997.1, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 4915.3, + "us": 4997.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 4915.3, + "us": 4997.1, "level": "full" }, "borrowed (copy)": { - "us": 10315.4, + "us": 10749.4, "level": "full" } } @@ -3440,25 +6445,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 89730.7, + "us": 94289.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 89730.7, + "us": 94289.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 54993.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 54993.8, "level": "full" }, "variants": { "read (reused)": { - "us": 54161.1, + "us": 54993.8, "level": "full" }, "parse": { - "us": 89730.7, + "us": 94289.1, "level": "full" }, "structs (from_json)": { - "us": 108169.2, + "us": 111085.9, "level": "full" } } @@ -3466,43 +6481,63 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 641176.3, + "us": 639060.6, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 641176.3, + "us": 639060.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 641176.3, + "us": 639060.6, "level": "full" }, "parse": { - "us": 651580.1, + "us": 647662.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 139633.8, + "variant": "insitu (copy)", + "us": 135642.1, "level": "full" }, "best_any": { - "variant": "read", - "us": 139633.8, + "variant": "insitu (copy)", + "us": 135642.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 69478.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 69478.4, "level": "full" }, "variants": { - "read": { - "us": 139633.8, + "read (reused allocator)": { + "us": 69478.4, "level": "full" }, "insitu (copy)": { - "us": 143534.7, + "us": 135642.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 139817.2, + "level": "full" + }, + "read": { + "us": 142091.6, "level": "full" } } @@ -3510,29 +6545,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 129469.9, + "us": 128975.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 48547.8, + "us": 49243.9, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 58444.5, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 30209.2, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 29787.0, + "us": 30209.2, "level": "partial" }, "On-Demand": { - "us": 48547.8, + "us": 49243.9, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 55262.3, "level": "partial" }, "DOM (reused)": { - "us": 62947.0, + "us": 58444.5, "level": "full" }, + "On-Demand structs": { + "us": 75958.5, + "level": "partial" + }, "DOM": { - "us": 129469.9, + "us": 128975.0, "level": "full" } } @@ -3541,12 +6594,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 109906.3, + "us": 113040.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 109906.3, + "us": 113040.9, "level": "no UTF-8" } } @@ -3554,77 +6609,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 93673.6, + "us": 91223.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 76185.7, + "us": 70237.5, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 76185.7, + "us": 70237.5, "level": "partial" }, "structs (validate_skipped)": { - "us": 93673.6, + "us": 91223.5, "level": "full" }, "lazy_json": { - "us": 106237.4, + "us": 106135.6, "level": "partial" }, - "generic": { - "us": 493089.6, + "generic (double)": { + "us": 307032.2, + "level": "partial" + }, + "generic (double, strict)": { + "us": 309361.1, "level": "full" + }, + "generic (strict)": { + "us": 484720.4, + "level": "full" + }, + "generic": { + "us": 491658.4, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 202455.8, + "variant": "parse_into structs", + "us": 100053.5, "level": "full" }, "best_any": { - "variant": "parse", - "us": 202455.8, + "variant": "parse_into structs", + "us": 100053.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 139170.8, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 139170.8, "level": "full" }, "variants": { + "parse_into structs": { + "us": 100053.5, + "level": "full" + }, + "parser (reused)": { + "us": 139170.8, + "level": "full" + }, "parse": { - "us": 202455.8, + "us": 184522.9, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 251223.0, + "us": 255774.5, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 181143.6, + "us": 189495.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 283698.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 196673.9, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 181143.6, + "us": 189495.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 196673.9, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 198185.5, + "us": 203375.1, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 204125.2, "level": "no UTF-8" }, "insitu (copy)": { - "us": 251223.0, + "us": 255774.5, + "level": "full" + }, + "Document (reused allocator)": { + "us": 283698.0, "level": "full" }, "Document": { - "us": 285738.0, + "us": 297292.0, + "level": "full" + }, + "Document (raw numbers)": { + "us": 303062.4, "level": "full" } } @@ -3632,25 +6751,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 108385.8, + "us": 114700.9, "level": "full" }, "best_any": { "variant": "from_utf8 + structs", - "us": 108385.8, + "us": 114700.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "from_utf8 + structs": { - "us": 108385.8, + "us": 114700.9, "level": "full" }, "structs": { - "us": 138827.1, + "us": 142510.2, "level": "no UTF-8" }, "Value": { - "us": 560794.9, + "us": 525827.6, "level": "full" } } @@ -3658,21 +6779,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 91995.7, + "us": 91949.7, "level": "full" }, "best_any": { "variant": "structs", - "us": 91995.7, + "us": 91949.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 91995.7, + "us": 91949.7, "level": "full" }, "Value": { - "us": 145370.6, + "us": 135637.3, "level": "full" } } @@ -3680,21 +6803,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 266072.7, + "us": 258565.9, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 266072.7, + "us": 258565.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 266072.7, + "us": 258565.9, "level": "full" }, "borrowed (copy)": { - "us": 328257.2, + "us": 304889.5, "level": "full" } } @@ -3712,6 +6837,16 @@ "us": 1.6, "level": "full" }, + "best_reused": { + "variant": "read (reused)", + "us": 1.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1.5, + "level": "full" + }, "variants": { "read (reused)": { "us": 1.5, @@ -3729,22 +6864,24 @@ }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 15.2, + "variant": "parse", + "us": 16.0, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 15.2, + "variant": "parse", + "us": 16.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 15.2, + "parse": { + "us": 16.0, "level": "full" }, - "parse": { - "us": 15.4, + "structs (from_json)": { + "us": 16.3, "level": "full" } } @@ -3760,7 +6897,21 @@ "us": 1.7, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.6, + "level": "full" + }, "variants": { + "read (reused allocator)": { + "us": 1.6, + "level": "full" + }, "read": { "us": 1.7, "level": "full" @@ -3768,13 +6919,17 @@ "insitu (copy)": { "us": 1.7, "level": "full" + }, + "read (raw numbers)": { + "us": 1.8, + "level": "full" } } }, "simdjson": { "best": { "variant": "DOM", - "us": 2.0, + "us": 1.9, "level": "full" }, "best_any": { @@ -3782,6 +6937,16 @@ "us": 1.3, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.6, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 1.0, + "level": "partial" + }, "variants": { "On-Demand (reused)": { "us": 1.0, @@ -3791,12 +6956,20 @@ "us": 1.3, "level": "partial" }, + "On-Demand structs": { + "us": 1.3, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 1.4, + "level": "partial" + }, "DOM (reused)": { "us": 1.6, "level": "full" }, "DOM": { - "us": 2.0, + "us": 1.9, "level": "full" } } @@ -3805,12 +6978,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 2.0, + "us": 2.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 2.0, + "us": 2.1, "level": "no UTF-8" } } @@ -3826,69 +7001,133 @@ "us": 1.7, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 1.7, "level": "partial" }, "lazy_json": { - "us": 2.0, + "us": 2.1, "level": "partial" }, "structs (validate_skipped)": { "us": 2.2, "level": "full" }, - "generic": { - "us": 17.5, + "generic (double, strict)": { + "us": 10.9, "level": "full" + }, + "generic (double)": { + "us": 11.0, + "level": "partial" + }, + "generic (strict)": { + "us": 18.2, + "level": "full" + }, + "generic": { + "us": 18.4, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 5.9, + "variant": "parse_into structs", + "us": 3.3, "level": "full" }, "best_any": { - "variant": "parse", - "us": 5.9, + "variant": "parse_into structs", + "us": 3.3, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 5.7, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 5.7, "level": "full" }, "variants": { + "parse_into structs": { + "us": 3.3, + "level": "full" + }, + "parser (reused)": { + "us": 5.7, + "level": "full" + }, "parse": { - "us": 5.9, + "us": 6.0, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 8.2, + "us": 8.4, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 4.3, + "us": 4.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 11.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7.5, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 4.3, + "us": 4.2, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 7.5, "level": "no UTF-8" }, "Document (no encoding check)": { "us": 7.9, "level": "no UTF-8" }, - "insitu (copy)": { + "Document (raw numbers) (no encoding check)": { "us": 8.2, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 8.4, + "level": "full" + }, + "Document (reused allocator)": { + "us": 11.4, "level": "full" }, "Document": { - "us": 11.6, + "us": 12.0, + "level": "full" + }, + "Document (raw numbers)": { + "us": 12.3, "level": "full" } } @@ -3896,7 +7135,7 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 3.1, + "us": 3.0, "level": "full" }, "best_any": { @@ -3904,17 +7143,19 @@ "us": 3.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 3.0, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 3.1, + "us": 3.0, "level": "full" }, "Value": { - "us": 14.9, + "us": 13.0, "level": "full" } } @@ -3930,13 +7171,15 @@ "us": 2.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 2.0, "level": "full" }, "Value": { - "us": 2.8, + "us": 3.0, "level": "full" } } @@ -3944,21 +7187,791 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 3.6, + "us": 3.7, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 3.6, + "us": 3.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 3.6, + "us": 3.7, "level": "full" }, "borrowed (copy)": { - "us": 5.4, + "us": 5.9, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 272.3, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 272.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 269.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 269.3, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 269.3, + "level": "full" + }, + "parse": { + "us": 272.3, + "level": "full" + }, + "structs (from_json)": { + "us": 275.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "structs (from_json)", + "us": 3382.2, + "level": "full" + }, + "best_any": { + "variant": "structs (from_json)", + "us": 3382.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (from_json)": { + "us": 3382.2, + "level": "full" + }, + "parse": { + "us": 3410.5, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 331.8, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 331.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 329.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 329.9, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 329.9, + "level": "full" + }, + "read": { + "us": 331.8, + "level": "full" + }, + "insitu (copy)": { + "us": 331.8, + "level": "full" + }, + "read (raw numbers)": { + "us": 334.9, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 294.8, + "level": "full" + }, + "best_any": { + "variant": "On-Demand structs", + "us": 160.6, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 298.1, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 156.3, + "level": "partial" + }, + "variants": { + "On-Demand (reused)": { + "us": 156.3, + "level": "partial" + }, + "On-Demand structs": { + "us": 160.6, + "level": "partial" + }, + "On-Demand": { + "us": 160.9, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 164.8, + "level": "partial" + }, + "DOM": { + "us": 294.8, + "level": "full" + }, + "DOM (reused)": { + "us": 298.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 346.4, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 346.4, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "structs (validate_skipped)", + "us": 442.5, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 296.6, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 296.6, + "level": "partial" + }, + "lazy_json": { + "us": 412.2, + "level": "partial" + }, + "structs (validate_skipped)": { + "us": 442.5, + "level": "full" + }, + "generic (double)": { + "us": 2398.4, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2405.3, + "level": "full" + }, + "generic (strict)": { + "us": 3561.4, + "level": "full" + }, + "generic": { + "us": 3617.2, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse_into structs", + "us": 672.4, + "level": "full" + }, + "best_any": { + "variant": "parse_into structs", + "us": 672.4, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1137.4, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1137.4, + "level": "full" + }, + "variants": { + "parse_into structs": { + "us": 672.4, + "level": "full" + }, + "parser (reused)": { + "us": 1137.4, + "level": "full" + }, + "parse": { + "us": 1139.9, + "level": "full" + } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1500.9, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 917.3, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2084.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1380.8, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 917.3, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1380.8, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1396.4, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1421.1, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1500.9, + "level": "full" + }, + "Document (reused allocator)": { + "us": 2084.2, + "level": "full" + }, + "Document": { + "us": 2143.1, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2171.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + structs", + "us": 543.5, + "level": "full" + }, + "best_any": { + "variant": "from_utf8 + structs", + "us": 543.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "from_utf8 + structs": { + "us": 543.5, + "level": "full" + }, + "structs": { + "us": 580.2, + "level": "no UTF-8" + }, + "Value": { + "us": 3409.8, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "structs", + "us": 374.9, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 374.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 374.9, + "level": "full" + }, + "Value": { + "us": 439.6, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "structs (copy)", + "us": 658.8, + "level": "full" + }, + "best_any": { + "variant": "structs (copy)", + "us": 658.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (copy)": { + "us": 658.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 1225.0, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 501.1, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 501.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 498.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 498.9, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 498.9, + "level": "full" + }, + "parse": { + "us": 501.1, + "level": "full" + }, + "structs (from_json)": { + "us": 552.2, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse", + "us": 5335.5, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 5335.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 5335.5, + "level": "full" + }, + "structs (from_json)": { + "us": 5357.3, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 496.3, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 496.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 496.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 496.3, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 496.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 496.3, + "level": "full" + }, + "read": { + "us": 497.9, + "level": "full" + }, + "read (raw numbers)": { + "us": 530.4, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 577.6, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 325.2, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 574.6, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 324.3, + "level": "partial" + }, + "variants": { + "On-Demand (reused)": { + "us": 324.3, + "level": "partial" + }, + "On-Demand": { + "us": 325.2, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 338.7, + "level": "partial" + }, + "On-Demand structs": { + "us": 379.8, + "level": "partial" + }, + "DOM (reused)": { + "us": 574.6, + "level": "full" + }, + "DOM": { + "us": 577.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 690.3, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 690.3, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "structs (validate_skipped)", + "us": 704.3, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 205.6, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 205.6, + "level": "partial" + }, + "structs (validate_skipped)": { + "us": 704.3, + "level": "full" + }, + "lazy_json": { + "us": 1440.2, + "level": "partial" + }, + "generic (double)": { + "us": 3459.4, + "level": "partial" + }, + "generic (double, strict)": { + "us": 3518.7, + "level": "full" + }, + "generic (strict)": { + "us": 6741.4, + "level": "full" + }, + "generic": { + "us": 6811.9, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse_into structs", + "us": 1142.3, + "level": "full" + }, + "best_any": { + "variant": "parse_into structs", + "us": 1142.3, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1405.2, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1405.2, + "level": "full" + }, + "variants": { + "parse_into structs": { + "us": 1142.3, + "level": "full" + }, + "parser (reused)": { + "us": 1405.2, + "level": "full" + }, + "parse": { + "us": 1416.3, + "level": "full" + } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1766.4, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1459.9, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2182.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1720.0, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1459.9, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1720.0, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1761.4, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1766.4, + "level": "full" + }, + "Document (raw numbers) (no encoding check)": { + "us": 2110.3, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 2182.2, + "level": "full" + }, + "Document": { + "us": 2291.4, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2557.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + structs", + "us": 694.2, + "level": "full" + }, + "best_any": { + "variant": "from_utf8 + structs", + "us": 694.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "from_utf8 + structs": { + "us": 694.2, + "level": "full" + }, + "structs": { + "us": 727.6, + "level": "no UTF-8" + }, + "Value": { + "us": 5020.7, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "structs", + "us": 649.8, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 649.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 649.8, + "level": "full" + }, + "Value": { + "us": 866.6, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "structs (copy)", + "us": 1329.8, + "level": "full" + }, + "best_any": { + "variant": "structs (copy)", + "us": 1329.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (copy)": { + "us": 1329.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 3306.8, "level": "full" } } @@ -3969,22 +7982,24 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 523.7, + "variant": "editable", + "us": 523.1, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 523.7, + "variant": "editable", + "us": 523.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 523.7, + "editable": { + "us": 523.1, "level": "full" }, - "editable": { - "us": 534.3, + "editable (source numbers)": { + "us": 524.5, "level": "full" } } @@ -3992,21 +8007,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 3058.0, + "us": 2809.8, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 3058.0, + "us": 2809.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 3058.0, + "us": 2809.8, "level": "full" }, "parse": { - "us": 4426.6, + "us": 4132.2, "level": "full" } } @@ -4014,21 +8031,23 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 911.7, + "us": 816.0, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 911.7, + "us": 816.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "mut copy": { - "us": 911.7, + "us": 816.0, "level": "full" }, "insitu (copy) + mut copy": { - "us": 915.3, + "us": 816.8, "level": "full" } } @@ -4037,48 +8056,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 644.0, + "us": 645.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 644.0, + "us": 645.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 4277.9, + "variant": "generic (strict)", + "us": 4191.9, "level": "full" }, "best_any": { "variant": "generic", - "us": 4277.9, - "level": "full" + "us": 4165.0, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 4277.9, + "us": 4165.0, + "level": "partial" + }, + "generic (strict)": { + "us": 4191.9, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 1722.3, + "us": 1725.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 1722.3, + "us": 1725.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 1722.3, + "us": 1725.2, "level": "full" } } @@ -4086,29 +8119,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2564.6, + "us": 2486.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1902.5, + "us": 1852.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 1902.5, + "us": 1852.2, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2091.8, + "us": 2035.9, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2564.6, + "us": 2486.3, "level": "full" }, "Document": { - "us": 2933.2, + "us": 2813.5, "level": "full" } } @@ -4116,17 +8151,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 4474.5, + "us": 4036.2, "level": "full" }, "best_any": { "variant": "Value", - "us": 4474.5, + "us": 4036.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 4474.5, + "us": 4036.2, "level": "full" } } @@ -4134,17 +8171,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 1188.6, + "us": 1200.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 1188.6, + "us": 1200.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1188.6, + "us": 1200.7, "level": "full" } } @@ -4152,21 +8191,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 2071.4, + "us": 1923.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 2071.4, + "us": 1923.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 2071.4, + "us": 1923.5, "level": "full" }, "owned (copy)": { - "us": 2880.3, + "us": 2634.1, "level": "full" } } @@ -4175,22 +8216,24 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 1093.2, + "variant": "editable", + "us": 1093.4, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 1093.2, + "variant": "editable", + "us": 1093.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 1093.2, + "editable": { + "us": 1093.4, "level": "full" }, - "editable": { - "us": 1099.6, + "editable (source numbers)": { + "us": 1096.0, "level": "full" } } @@ -4198,43 +8241,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 5099.3, + "us": 5095.7, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 5099.3, + "us": 5095.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 5099.3, + "us": 5095.7, "level": "full" }, "parse": { - "us": 6414.4, + "us": 6279.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 1686.5, + "variant": "insitu (copy) + mut copy", + "us": 1709.6, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 1686.5, + "variant": "insitu (copy) + mut copy", + "us": 1709.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "mut copy": { - "us": 1686.5, + "insitu (copy) + mut copy": { + "us": 1709.6, "level": "full" }, - "insitu (copy) + mut copy": { - "us": 1717.5, + "mut copy": { + "us": 1713.0, "level": "full" } } @@ -4243,48 +8290,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 1508.3, + "us": 1481.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1508.3, + "us": 1481.0, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 7988.6, + "variant": "generic (strict)", + "us": 8086.8, "level": "full" }, "best_any": { "variant": "generic", - "us": 7988.6, - "level": "full" + "us": 8033.0, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 7988.6, + "us": 8033.0, + "level": "partial" + }, + "generic (strict)": { + "us": 8086.8, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 2613.8, + "us": 2593.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 2613.8, + "us": 2593.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 2613.8, + "us": 2593.9, "level": "full" } } @@ -4292,29 +8353,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 3328.2, + "us": 3252.8, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 2859.3, + "us": 2889.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 2859.3, + "us": 2889.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2942.8, + "us": 2920.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 3328.2, + "us": 3252.8, "level": "full" }, "Document": { - "us": 3389.9, + "us": 3499.7, "level": "full" } } @@ -4322,17 +8385,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 6922.5, + "us": 7180.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 6922.5, + "us": 7180.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6922.5, + "us": 7180.9, "level": "full" } } @@ -4340,17 +8405,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2383.6, + "us": 2415.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 2383.6, + "us": 2415.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2383.6, + "us": 2415.5, "level": "full" } } @@ -4358,21 +8425,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 4465.1, + "us": 4575.1, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 4465.1, + "us": 4575.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 4465.1, + "us": 4575.1, "level": "full" }, "owned (copy)": { - "us": 5204.4, + "us": 5459.1, "level": "full" } } @@ -4382,21 +8451,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 2866.5, + "us": 2916.0, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 2866.5, + "us": 2916.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 2866.5, + "us": 2916.0, "level": "full" }, "editable": { - "us": 5935.1, + "us": 6108.7, "level": "full" } } @@ -4404,21 +8475,23 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 16378.1, + "us": 16935.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 16378.1, + "us": 16935.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 16378.1, + "us": 16935.0, "level": "full" }, "ordered_json": { - "us": 16737.3, + "us": 17052.2, "level": "full" } } @@ -4426,21 +8499,23 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 7407.4, + "us": 7257.6, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 7407.4, + "us": 7257.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "mut copy": { - "us": 7407.4, + "us": 7257.6, "level": "full" }, "insitu (copy) + mut copy": { - "us": 7432.6, + "us": 7292.4, "level": "full" } } @@ -4449,48 +8524,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 7971.6, + "us": 7923.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 7971.6, + "us": 7923.9, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 30869.2, + "variant": "generic (strict)", + "us": 30620.8, "level": "full" }, "best_any": { - "variant": "generic", - "us": 30869.2, + "variant": "generic (strict)", + "us": 30620.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 30869.2, + "generic (strict)": { + "us": 30620.8, "level": "full" + }, + "generic": { + "us": 31344.2, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 12952.9, + "us": 13178.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 12952.9, + "us": 13178.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 12952.9, + "us": 13178.2, "level": "full" } } @@ -4498,29 +8587,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 22449.4, + "us": 21592.1, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 21666.8, - "level": "no UTF-8" + "variant": "insitu (copy)", + "us": 21592.1, + "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 21666.8, - "level": "no UTF-8" - }, "insitu (copy)": { - "us": 22449.4, + "us": 21592.1, "level": "full" }, + "insitu (copy) (no encoding check)": { + "us": 21761.9, + "level": "no UTF-8" + }, "Document": { - "us": 22480.2, + "us": 22140.2, "level": "full" }, "Document (no encoding check)": { - "us": 22600.0, + "us": 22218.7, "level": "no UTF-8" } } @@ -4528,17 +8619,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 18301.0, + "us": 17371.4, "level": "full" }, "best_any": { "variant": "Value", - "us": 18301.0, + "us": 17371.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 18301.0, + "us": 17371.4, "level": "full" } } @@ -4546,17 +8639,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 8007.1, + "us": 7957.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 8007.1, + "us": 7957.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 8007.1, + "us": 7957.7, "level": "full" } } @@ -4564,21 +8659,23 @@ "simd-json": { "best": { "variant": "owned (copy)", - "us": 16360.2, + "us": 15746.3, "level": "full" }, "best_any": { "variant": "owned (copy)", - "us": 16360.2, + "us": 15746.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "owned (copy)": { - "us": 16360.2, + "us": 15746.3, "level": "full" }, "borrowed (copy)": { - "us": 16446.2, + "us": 16036.0, "level": "full" } } @@ -4588,21 +8685,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 208247.2, + "us": 179999.4, "level": "full" }, "best_any": { "variant": "editable", - "us": 208247.2, + "us": 179999.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable": { - "us": 208247.2, + "us": 179999.4, "level": "full" }, "editable (source numbers)": { - "us": 211513.2, + "us": 204681.4, "level": "full" } } @@ -4610,43 +8709,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 920570.5, + "us": 864149.7, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 920570.5, + "us": 864149.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 920570.5, + "us": 864149.7, "level": "full" }, "parse": { - "us": 1233449.1, + "us": 1213994.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 318770.3, + "variant": "mut copy", + "us": 296347.0, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 318770.3, + "variant": "mut copy", + "us": 296347.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 318770.3, + "mut copy": { + "us": 296347.0, "level": "full" }, - "mut copy": { - "us": 355553.6, + "insitu (copy) + mut copy": { + "us": 328417.2, "level": "full" } } @@ -4655,48 +8758,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 184491.1, + "us": 185114.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 184491.1, + "us": 185114.1, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 1095799.9, + "variant": "generic (strict)", + "us": 868944.2, "level": "full" }, "best_any": { - "variant": "generic", - "us": 1095799.9, + "variant": "generic (strict)", + "us": 868944.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 1095799.9, + "generic (strict)": { + "us": 868944.2, "level": "full" + }, + "generic": { + "us": 927959.6, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 346072.6, + "us": 343064.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 346072.6, + "us": 343064.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 346072.6, + "us": 343064.8, "level": "full" } } @@ -4704,29 +8821,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 378036.0, + "us": 397189.0, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 321177.0, + "variant": "Document (no encoding check)", + "us": 301007.3, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 321177.0, + "Document (no encoding check)": { + "us": 301007.3, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 326538.7, + "insitu (copy) (no encoding check)": { + "us": 315655.0, "level": "no UTF-8" }, "insitu (copy)": { - "us": 378036.0, + "us": 397189.0, "level": "full" }, "Document": { - "us": 409680.8, + "us": 414067.5, "level": "full" } } @@ -4734,17 +8853,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 805289.9, + "us": 843034.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 805289.9, + "us": 843034.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 805289.9, + "us": 843034.0, "level": "full" } } @@ -4752,17 +8873,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 413714.2, + "us": 421718.3, "level": "full" }, "best_any": { "variant": "Value", - "us": 413714.2, + "us": 421718.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 413714.2, + "us": 421718.3, "level": "full" } } @@ -4770,21 +8893,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 416658.4, + "us": 435817.2, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 416658.4, + "us": 435817.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 416658.4, + "us": 435817.2, "level": "full" }, "owned (copy)": { - "us": 701262.6, + "us": 696004.8, "level": "full" } } @@ -4802,13 +8927,15 @@ "us": 3.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable": { "us": 3.0, "level": "full" }, "editable (source numbers)": { - "us": 3.1, + "us": 3.0, "level": "full" } } @@ -4816,21 +8943,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 14.7, + "us": 14.4, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 14.7, + "us": 14.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 14.7, + "us": 14.4, "level": "full" }, "parse": { - "us": 18.0, + "us": 17.8, "level": "full" } } @@ -4838,21 +8967,23 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 4.0, + "us": 3.9, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 4.0, + "us": 3.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "mut copy": { - "us": 4.0, + "us": 3.9, "level": "full" }, "insitu (copy) + mut copy": { - "us": 4.0, + "us": 3.9, "level": "full" } } @@ -4861,32 +8992,44 @@ "best": null, "best_any": { "variant": "Document", - "us": 3.2, + "us": 3.4, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3.2, + "us": 3.4, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 19.5, + "variant": "generic (strict)", + "us": 20.1, "level": "full" }, "best_any": { "variant": "generic", - "us": 19.5, - "level": "full" + "us": 19.8, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 19.5, + "us": 19.8, + "level": "partial" + }, + "generic (strict)": { + "us": 20.1, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { @@ -4900,6 +9043,8 @@ "us": 8.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { "us": 8.5, @@ -4910,17 +9055,19 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 11.8, + "us": 12.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 7.8, + "us": 7.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 7.8, + "us": 7.9, "level": "no UTF-8" }, "Document (no encoding check)": { @@ -4928,11 +9075,11 @@ "level": "no UTF-8" }, "insitu (copy)": { - "us": 11.8, + "us": 12.0, "level": "full" }, "Document": { - "us": 15.1, + "us": 15.5, "level": "full" } } @@ -4940,17 +9087,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 21.2, + "us": 16.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 21.2, + "us": 16.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 21.2, + "us": 16.9, "level": "full" } } @@ -4958,17 +9107,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 6.6, + "us": 6.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 6.6, + "us": 6.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6.6, + "us": 6.9, "level": "full" } } @@ -4976,21 +9127,491 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 9.0, + "us": 9.6, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 9.0, + "us": 9.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 9.0, + "us": 9.6, "level": "full" }, "owned (copy)": { - "us": 14.6, + "us": 14.3, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "editable", + "us": 467.5, + "level": "full" + }, + "best_any": { + "variant": "editable", + "us": 467.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "editable": { + "us": 467.5, + "level": "full" + }, + "editable (source numbers)": { + "us": 470.8, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "ordered_json", + "us": 2836.6, + "level": "full" + }, + "best_any": { + "variant": "ordered_json", + "us": 2836.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "ordered_json": { + "us": 2836.6, + "level": "full" + }, + "parse": { + "us": 4053.6, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "mut copy", + "us": 740.9, + "level": "full" + }, + "best_any": { + "variant": "mut copy", + "us": 740.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "mut copy": { + "us": 740.9, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 744.9, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 530.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 530.1, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 3966.4, + "level": "full" + }, + "best_any": { + "variant": "generic (strict)", + "us": 3966.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (strict)": { + "us": 3966.4, + "level": "full" + }, + "generic": { + "us": 3975.1, + "level": "partial" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse", + "us": 1622.6, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 1622.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 1622.6, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 2159.3, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1583.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1583.1, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1958.1, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 2159.3, + "level": "full" + }, + "Document": { + "us": 2752.9, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 3752.3, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 3752.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 3752.3, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 1050.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 1050.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 1050.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 1851.6, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 1851.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 1851.6, + "level": "full" + }, + "owned (copy)": { + "us": 2606.9, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "editable", + "us": 855.3, + "level": "full" + }, + "best_any": { + "variant": "editable", + "us": 855.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "editable": { + "us": 855.3, + "level": "full" + }, + "editable (source numbers)": { + "us": 858.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "ordered_json", + "us": 4927.3, + "level": "full" + }, + "best_any": { + "variant": "ordered_json", + "us": 4927.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "ordered_json": { + "us": 4927.3, + "level": "full" + }, + "parse": { + "us": 6066.2, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy) + mut copy", + "us": 1264.5, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) + mut copy", + "us": 1264.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) + mut copy": { + "us": 1264.5, + "level": "full" + }, + "mut copy": { + "us": 1277.8, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 1139.6, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 1139.6, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 7748.1, + "level": "full" + }, + "best_any": { + "variant": "generic", + "us": 7676.2, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 7676.2, + "level": "partial" + }, + "generic (strict)": { + "us": 7748.1, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse", + "us": 2397.4, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 2397.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 2397.4, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 2730.4, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 2511.4, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 2511.4, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 2730.4, + "level": "full" + }, + "Document (no encoding check)": { + "us": 2777.5, + "level": "no UTF-8" + }, + "Document": { + "us": 3226.0, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 5491.4, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 5491.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 5491.4, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 2034.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 2034.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 2034.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 4140.4, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 4140.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 4140.4, + "level": "full" + }, + "owned (copy)": { + "us": 5070.4, "level": "full" } } @@ -5001,66 +9622,96 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 472.3, + "variant": "parse + dump", + "us": 471.8, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 472.3, + "variant": "parse + dump", + "us": 471.8, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 462.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 462.7, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 463.6, + "us": 462.7, + "level": "full" + }, + "parse + dump": { + "us": 471.8, "level": "full" }, "parse + dump (source numbers)": { "us": 472.3, "level": "full" - }, - "parse + dump": { - "us": 474.4, - "level": "full" } } }, "nlohmann json": { "best": { "variant": "parse + dump", - "us": 4037.3, + "us": 3902.7, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 4037.3, + "us": 3902.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 4037.3, + "us": 3902.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 625.3, + "variant": "read + write", + "us": 625.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 625.3, + "variant": "read + write", + "us": 625.7, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 628.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 628.5, "level": "full" }, "variants": { - "insitu (copy) + write": { - "us": 625.3, + "read + write": { + "us": 625.7, "level": "full" }, - "read + write": { - "us": 638.3, + "read + write (reused allocator)": { + "us": 628.5, + "level": "full" + }, + "insitu (copy) + write": { + "us": 629.0, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 635.9, "level": "full" } } @@ -5068,25 +9719,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 857.2, + "us": 823.8, "level": "full" }, "best_any": { "variant": "minify", - "us": 103.2, + "us": 103.0, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 819.6, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 819.6, + "level": "full" + }, "variants": { "minify": { - "us": 103.2, + "us": 103.0, "level": "partial" }, "DOM (reused) + to_string": { - "us": 854.9, + "us": 819.6, "level": "full" }, "DOM + to_string": { - "us": 857.2, + "us": 823.8, "level": "full" } } @@ -5095,52 +9756,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 646.7, + "us": 652.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 646.7, + "us": 652.7, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 4215.1, + "variant": "generic (strict)", + "us": 4057.9, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 418.5, + "us": 412.8, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 418.5, + "us": 412.8, "level": "partial" }, - "generic": { - "us": 4215.1, + "generic (strict)": { + "us": 4057.9, "level": "full" + }, + "generic": { + "us": 4069.3, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1758.4, + "us": 1737.7, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1758.4, + "us": 1737.7, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1724.0, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1724.0, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 1724.0, + "level": "full" + }, "parse + serialize": { - "us": 1758.4, + "us": 1737.7, "level": "full" } } @@ -5148,37 +9835,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 2464.9, + "us": 2403.2, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 1803.7, + "variant": "SAX to Writer (no encoding check)", + "us": 1775.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2770.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2087.7, "level": "no UTF-8" }, "variants": { - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1803.7, + "SAX to Writer (no encoding check)": { + "us": 1775.8, "level": "no UTF-8" }, - "SAX to Writer (no encoding check)": { - "us": 1928.1, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 1790.7, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2181.3, + "us": 2071.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2087.7, "level": "no UTF-8" }, "SAX to Writer": { - "us": 2464.9, + "us": 2403.2, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 2471.9, + "us": 2433.8, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 2770.0, "level": "full" }, "Document + Writer": { - "us": 2940.2, + "us": 2830.1, "level": "full" } } @@ -5186,17 +9891,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 4081.3, + "us": 4220.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 4081.3, + "us": 4220.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 4081.3, + "us": 4220.0, "level": "full" } } @@ -5204,17 +9911,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 987.7, + "us": 1003.1, "level": "full" }, "best_any": { "variant": "Value", - "us": 987.7, + "us": 1003.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 987.7, + "us": 1003.1, "level": "full" } } @@ -5222,17 +9931,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 1924.3, + "us": 1877.7, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 1924.3, + "us": 1877.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 1924.3, + "us": 1877.7, "level": "full" } } @@ -5242,25 +9953,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump", - "us": 992.8, + "us": 993.0, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 992.8, + "us": 993.0, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 993.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 993.4, "level": "full" }, "variants": { - "read + dump (reused)": { - "us": 988.6, + "parse + dump": { + "us": 993.0, "level": "full" }, - "parse + dump": { - "us": 992.8, + "read + dump (reused)": { + "us": 993.4, "level": "full" }, "parse + dump (source numbers)": { - "us": 993.8, + "us": 998.6, "level": "full" } } @@ -5268,39 +9989,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 6081.1, + "us": 6251.4, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 6081.1, + "us": 6251.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 6081.1, + "us": 6251.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 1256.0, + "variant": "read (raw numbers) + write", + "us": 1287.3, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 1256.0, + "variant": "read (raw numbers) + write", + "us": 1287.3, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 1371.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 1371.1, "level": "full" }, "variants": { + "read (raw numbers) + write": { + "us": 1287.3, + "level": "full" + }, "read + write": { - "us": 1256.0, + "us": 1290.4, "level": "full" }, "insitu (copy) + write": { - "us": 1258.5, + "us": 1325.0, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 1371.1, "level": "full" } } @@ -5308,25 +10049,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1543.1, + "us": 1419.4, "level": "full" }, "best_any": { "variant": "minify", - "us": 256.3, + "us": 255.9, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 1453.6, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 1453.6, + "level": "full" + }, "variants": { "minify": { - "us": 256.3, + "us": 255.9, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 1532.0, + "DOM + to_string": { + "us": 1419.4, "level": "full" }, - "DOM + to_string": { - "us": 1543.1, + "DOM (reused) + to_string": { + "us": 1453.6, "level": "full" } } @@ -5335,52 +10086,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1486.7, + "us": 1491.4, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1486.7, + "us": 1491.4, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 7644.4, + "variant": "generic (strict)", + "us": 8169.1, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 1061.9, + "us": 1054.8, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 1061.9, + "us": 1054.8, "level": "partial" }, - "generic": { - "us": 7644.4, + "generic (strict)": { + "us": 8169.1, "level": "full" + }, + "generic": { + "us": 8169.5, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2553.3, + "us": 2558.4, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2553.3, + "us": 2558.4, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 2585.4, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 2585.4, "level": "full" }, "variants": { "parse + serialize": { - "us": 2553.3, + "us": 2558.4, + "level": "full" + }, + "parser (reused) + serialize": { + "us": 2585.4, "level": "full" } } @@ -5388,37 +10165,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 2829.0, + "us": 2932.7, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 2416.0, + "us": 2428.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 3394.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2892.5, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 2416.0, + "us": 2428.8, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2724.7, + "us": 2822.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2892.5, "level": "no UTF-8" }, "SAX to Writer": { - "us": 2829.0, + "us": 2932.7, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 2926.9, + "us": 3017.9, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 3153.1, + "us": 3217.2, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 3394.1, "level": "full" }, "Document + Writer": { - "us": 3413.1, + "us": 3450.9, "level": "full" } } @@ -5426,17 +10221,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 6879.5, + "us": 6875.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 6879.5, + "us": 6875.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6879.5, + "us": 6875.5, "level": "full" } } @@ -5444,17 +10241,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2093.3, + "us": 2174.1, "level": "full" }, "best_any": { "variant": "Value", - "us": 2093.3, + "us": 2174.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2093.3, + "us": 2174.1, "level": "full" } } @@ -5462,17 +10261,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 4375.1, + "us": 4655.1, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 4375.1, + "us": 4655.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 4375.1, + "us": 4655.1, "level": "full" } } @@ -5482,25 +10283,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 2767.2, + "us": 2792.7, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 2767.2, + "us": 2792.7, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 5450.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 5450.1, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 2767.2, - "level": "full" - }, - "parse + dump": { - "us": 5444.7, + "us": 2792.7, "level": "full" }, "read + dump (reused)": { - "us": 5475.8, + "us": 5450.1, + "level": "full" + }, + "parse + dump": { + "us": 5467.3, "level": "full" } } @@ -5508,39 +10319,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 16348.6, + "us": 16164.2, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 16348.6, + "us": 16164.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 16348.6, + "us": 16164.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 6260.9, + "variant": "read (raw numbers) + write", + "us": 3210.7, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 6260.9, + "variant": "read (raw numbers) + write", + "us": 3210.7, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 6174.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 6174.0, "level": "full" }, "variants": { - "read + write": { - "us": 6260.9, + "read (raw numbers) + write": { + "us": 3210.7, "level": "full" }, "insitu (copy) + write": { - "us": 6282.8, + "us": 6112.7, + "level": "full" + }, + "read + write": { + "us": 6122.9, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 6174.0, "level": "full" } } @@ -5548,7 +10379,7 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 16516.3, + "us": 8134.1, "level": "full" }, "best_any": { @@ -5556,17 +10387,27 @@ "us": 372.7, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 8201.9, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 8201.9, + "level": "full" + }, "variants": { "minify": { "us": 372.7, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 16449.6, + "DOM + to_string": { + "us": 8134.1, "level": "full" }, - "DOM + to_string": { - "us": 16516.3, + "DOM (reused) + to_string": { + "us": 8201.9, "level": "full" } } @@ -5575,52 +10416,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 7924.5, + "us": 7777.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 7924.5, + "us": 7777.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 29762.2, + "variant": "generic (strict)", + "us": 29541.5, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 2150.4, + "us": 2138.8, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 2150.4, + "us": 2138.8, "level": "partial" }, "generic": { - "us": 29762.2, + "us": 29450.7, + "level": "partial" + }, + "generic (strict)": { + "us": 29541.5, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 12744.1, + "us": 12552.6, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 12744.1, + "us": 12552.6, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 12454.2, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 12454.2, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 12454.2, + "level": "full" + }, "parse + serialize": { - "us": 12744.1, + "us": 12552.6, "level": "full" } } @@ -5628,55 +10495,75 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 14949.3, + "us": 14643.7, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 14730.4, + "variant": "SAX to Writer (raw numbers)", + "us": 14643.7, + "level": "full" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 21965.6, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 21846.2, "level": "no UTF-8" }, "variants": { - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 14730.4, - "level": "no UTF-8" - }, "SAX to Writer (raw numbers)": { - "us": 14949.3, + "us": 14643.7, "level": "full" }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 14707.0, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 21846.2, + "level": "no UTF-8" + }, "Document + Writer": { - "us": 22131.7, + "us": 21919.0, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 21965.6, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 22582.9, - "level": "no UTF-8" - }, - "SAX to Writer (no encoding check)": { - "us": 23656.8, + "us": 22058.8, "level": "no UTF-8" }, "SAX to Writer": { - "us": 23802.4, + "us": 22856.7, "level": "full" + }, + "SAX to Writer (no encoding check)": { + "us": 23601.2, + "level": "no UTF-8" } } }, "serde_json": { "best": { "variant": "Value", - "us": 17248.7, + "us": 17275.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 17248.7, + "us": 17275.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 17248.7, + "us": 17275.8, "level": "full" } } @@ -5684,17 +10571,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 7774.6, + "us": 7753.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 7774.6, + "us": 7753.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 7774.6, + "us": 7753.0, "level": "full" } } @@ -5702,17 +10591,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 15278.3, + "us": 15954.8, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 15278.3, + "us": 15954.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 15278.3, + "us": 15954.8, "level": "full" } } @@ -5721,26 +10612,36 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "parse + dump", - "us": 153154.8, + "variant": "parse + dump (source numbers)", + "us": 147232.8, "level": "full" }, "best_any": { - "variant": "parse + dump", - "us": 153154.8, + "variant": "parse + dump (source numbers)", + "us": 147232.8, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 115443.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 115443.6, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 118386.0, - "level": "full" - }, - "parse + dump": { - "us": 153154.8, + "us": 115443.6, "level": "full" }, "parse + dump (source numbers)": { - "us": 155443.9, + "us": 147232.8, + "level": "full" + }, + "parse + dump": { + "us": 152455.7, "level": "full" } } @@ -5748,17 +10649,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 771911.6, + "us": 744934.0, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 771911.6, + "us": 744934.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 771911.6, + "us": 744934.0, "level": "full" } } @@ -5766,21 +10669,39 @@ "yyjson": { "best": { "variant": "insitu (copy) + write", - "us": 212042.8, + "us": 196773.1, "level": "full" }, "best_any": { "variant": "insitu (copy) + write", - "us": 212042.8, + "us": 196773.1, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 101360.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 101360.1, "level": "full" }, "variants": { + "read + write (reused allocator)": { + "us": 101360.1, + "level": "full" + }, "insitu (copy) + write": { - "us": 212042.8, + "us": 196773.1, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 197837.3, "level": "full" }, "read + write": { - "us": 217458.1, + "us": 200642.0, "level": "full" } } @@ -5788,25 +10709,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 326881.1, + "us": 305008.2, "level": "full" }, "best_any": { "variant": "minify", - "us": 51242.9, + "us": 47750.6, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 240877.6, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 240877.6, + "level": "full" + }, "variants": { "minify": { - "us": 51242.9, + "us": 47750.6, "level": "partial" }, "DOM (reused) + to_string": { - "us": 255382.7, + "us": 240877.6, "level": "full" }, "DOM + to_string": { - "us": 326881.1, + "us": 305008.2, "level": "full" } } @@ -5815,52 +10746,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 182939.5, + "us": 172744.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 182939.5, + "us": 172744.0, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 683744.4, + "variant": "generic (strict)", + "us": 615992.4, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 93265.4, + "us": 88988.8, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 93265.4, + "us": 88988.8, "level": "partial" }, "generic": { - "us": 683744.4, + "us": 604961.9, + "level": "partial" + }, + "generic (strict)": { + "us": 615992.4, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 358018.4, + "us": 308078.6, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 358018.4, + "us": 308078.6, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 270143.9, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 270143.9, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 270143.9, + "level": "full" + }, "parse + serialize": { - "us": 358018.4, + "us": 308078.6, "level": "full" } } @@ -5868,37 +10825,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 374258.4, + "us": 359464.0, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 269636.8, + "variant": "SAX to Writer (raw numbers) (no encoding check)", + "us": 270255.9, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 401242.3, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 317211.9, "level": "no UTF-8" }, "variants": { - "SAX to Writer (no encoding check)": { - "us": 269636.8, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 270255.9, "level": "no UTF-8" }, - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 278648.6, + "SAX to Writer (no encoding check)": { + "us": 273074.7, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 317211.9, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 338594.4, + "us": 318432.4, "level": "no UTF-8" }, "SAX to Writer": { - "us": 374258.4, + "us": 359464.0, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 379957.3, + "us": 373490.7, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 401242.3, "level": "full" }, "Document + Writer": { - "us": 438464.5, + "us": 418013.6, "level": "full" } } @@ -5906,17 +10881,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 615033.2, + "us": 628191.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 615033.2, + "us": 628191.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 615033.2, + "us": 628191.9, "level": "full" } } @@ -5924,17 +10901,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 217697.4, + "us": 217354.2, "level": "full" }, "best_any": { "variant": "Value", - "us": 217697.4, + "us": 217354.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 217697.4, + "us": 217354.2, "level": "full" } } @@ -5942,17 +10921,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 419473.7, + "us": 419412.0, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 419473.7, + "us": 419412.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 419473.7, + "us": 419412.0, "level": "full" } } @@ -5962,21 +10943,31 @@ "nlohmann json_document": { "best": { "variant": "parse + dump", - "us": 2.4, + "us": 2.5, "level": "full" }, "best_any": { "variant": "parse + dump", + "us": 2.5, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 2.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", "us": 2.4, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 2.3, + "us": 2.4, "level": "full" }, "parse + dump": { - "us": 2.4, + "us": 2.5, "level": "full" }, "parse + dump (source numbers)": { @@ -5988,17 +10979,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 17.0, + "us": 17.3, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 17.0, + "us": 17.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 17.0, + "us": 17.3, "level": "full" } } @@ -6014,7 +11007,21 @@ "us": 3.1, "level": "full" }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 2.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 2.8, + "level": "full" + }, "variants": { + "read + write (reused allocator)": { + "us": 2.8, + "level": "full" + }, "read + write": { "us": 3.1, "level": "full" @@ -6022,13 +11029,17 @@ "insitu (copy) + write": { "us": 3.1, "level": "full" + }, + "read (raw numbers) + write": { + "us": 3.1, + "level": "full" } } }, "simdjson": { "best": { "variant": "DOM + to_string", - "us": 5.1, + "us": 4.9, "level": "full" }, "best_any": { @@ -6036,17 +11047,27 @@ "us": 0.5, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 4.6, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 4.6, + "level": "full" + }, "variants": { "minify": { "us": 0.5, "level": "partial" }, "DOM (reused) + to_string": { - "us": 4.7, + "us": 4.6, "level": "full" }, "DOM + to_string": { - "us": 5.1, + "us": 4.9, "level": "full" } } @@ -6058,6 +11079,8 @@ "us": 3.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { "us": 3.2, @@ -6067,8 +11090,8 @@ }, "Glaze": { "best": { - "variant": "generic", - "us": 18.7, + "variant": "generic (strict)", + "us": 19.3, "level": "full" }, "best_any": { @@ -6076,31 +11099,55 @@ "us": 2.0, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { "us": 2.0, "level": "partial" }, "generic": { - "us": 18.7, + "us": 19.0, + "level": "partial" + }, + "generic (strict)": { + "us": 19.3, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 9.0, + "us": 8.6, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 9.0, + "us": 8.6, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 8.3, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 8.3, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 8.3, + "level": "full" + }, "parse + serialize": { - "us": 9.0, + "us": 8.6, "level": "full" } } @@ -6108,7 +11155,7 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 13.2, + "us": 13.0, "level": "full" }, "best_any": { @@ -6116,29 +11163,47 @@ "us": 9.5, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 15.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 11.1, + "level": "no UTF-8" + }, "variants": { "SAX to Writer (no encoding check)": { "us": 9.5, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 9.6, + "us": 9.7, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 11.1, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 11.7, + "us": 11.5, "level": "no UTF-8" }, "SAX to Writer": { - "us": 13.2, + "us": 13.0, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 13.4, + "us": 13.3, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 15.0, "level": "full" }, "Document + Writer": { - "us": 15.2, + "us": 15.6, "level": "full" } } @@ -6146,17 +11211,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 18.4, + "us": 16.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 18.4, + "us": 16.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 18.4, + "us": 16.7, "level": "full" } } @@ -6164,17 +11231,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 5.3, + "us": 5.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 5.3, + "us": 5.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 5.3, + "us": 5.5, "level": "full" } } @@ -6182,17 +11251,679 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 8.7, + "us": 9.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 8.7, + "us": 9.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 9.5, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse + dump (source numbers)", + "us": 416.1, + "level": "full" + }, + "best_any": { + "variant": "parse + dump (source numbers)", + "us": 416.1, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 410.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 410.3, "level": "full" }, + "variants": { + "read + dump (reused)": { + "us": 410.3, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 416.1, + "level": "full" + }, + "parse + dump": { + "us": 416.3, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse + dump", + "us": 3779.7, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 3779.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse + dump": { + "us": 3779.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy) + write", + "us": 566.2, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) + write", + "us": 566.2, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 562.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 562.8, + "level": "full" + }, + "variants": { + "read + write (reused allocator)": { + "us": 562.8, + "level": "full" + }, + "insitu (copy) + write": { + "us": 566.2, + "level": "full" + }, + "read + write": { + "us": 566.4, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 571.7, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM + to_string", + "us": 801.8, + "level": "full" + }, + "best_any": { + "variant": "minify", + "us": 73.5, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 799.7, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 799.7, + "level": "full" + }, + "variants": { + "minify": { + "us": 73.5, + "level": "partial" + }, + "DOM (reused) + to_string": { + "us": 799.7, + "level": "full" + }, + "DOM + to_string": { + "us": 801.8, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document + Serialize", + "us": 541.4, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document + Serialize": { + "us": 541.4, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 3880.7, + "level": "full" + }, + "best_any": { + "variant": "minify_json", + "us": 344.6, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "minify_json": { + "us": 344.6, + "level": "partial" + }, + "generic": { + "us": 3864.7, + "level": "partial" + }, + "generic (strict)": { + "us": 3880.7, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse + serialize", + "us": 1628.7, + "level": "full" + }, + "best_any": { + "variant": "parse + serialize", + "us": 1628.7, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1628.4, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1628.4, + "level": "full" + }, + "variants": { + "parser (reused) + serialize": { + "us": 1628.4, + "level": "full" + }, + "parse + serialize": { + "us": 1628.7, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX to Writer", + "us": 2329.2, + "level": "full" + }, + "best_any": { + "variant": "SAX to Writer (no encoding check)", + "us": 1695.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2709.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2011.6, + "level": "no UTF-8" + }, + "variants": { + "SAX to Writer (no encoding check)": { + "us": 1695.6, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 1704.9, + "level": "no UTF-8" + }, + "Document + Writer (no encoding check)": { + "us": 1983.6, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2011.6, + "level": "no UTF-8" + }, + "SAX to Writer": { + "us": 2329.2, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 2374.7, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 2709.0, + "level": "full" + }, + "Document + Writer": { + "us": 2734.6, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 4035.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 4035.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 4035.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 860.5, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 860.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 860.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 1851.3, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 1851.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 8.7, + "us": 1851.3, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse + dump (source numbers)", + "us": 750.2, + "level": "full" + }, + "best_any": { + "variant": "parse + dump (source numbers)", + "us": 750.2, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 749.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 749.9, + "level": "full" + }, + "variants": { + "read + dump (reused)": { + "us": 749.9, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 750.2, + "level": "full" + }, + "parse + dump": { + "us": 752.5, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse + dump", + "us": 6014.5, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 6014.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse + dump": { + "us": 6014.5, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read + write", + "us": 837.9, + "level": "full" + }, + "best_any": { + "variant": "read + write", + "us": 837.9, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 844.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 844.9, + "level": "full" + }, + "variants": { + "read + write": { + "us": 837.9, + "level": "full" + }, + "insitu (copy) + write": { + "us": 838.6, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 844.9, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 852.7, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM + to_string", + "us": 1253.8, + "level": "full" + }, + "best_any": { + "variant": "minify", + "us": 76.1, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 1252.3, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 1252.3, + "level": "full" + }, + "variants": { + "minify": { + "us": 76.1, + "level": "partial" + }, + "DOM (reused) + to_string": { + "us": 1252.3, + "level": "full" + }, + "DOM + to_string": { + "us": 1253.8, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document + Serialize", + "us": 1153.0, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document + Serialize": { + "us": 1153.0, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 7411.3, + "level": "full" + }, + "best_any": { + "variant": "minify_json", + "us": 596.7, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "minify_json": { + "us": 596.7, + "level": "partial" + }, + "generic (strict)": { + "us": 7411.3, + "level": "full" + }, + "generic": { + "us": 7461.0, + "level": "partial" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse + serialize", + "us": 2303.5, + "level": "full" + }, + "best_any": { + "variant": "parse + serialize", + "us": 2303.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 2372.0, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 2372.0, + "level": "full" + }, + "variants": { + "parse + serialize": { + "us": 2303.5, + "level": "full" + }, + "parser (reused) + serialize": { + "us": 2372.0, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX to Writer", + "us": 2713.9, + "level": "full" + }, + "best_any": { + "variant": "SAX to Writer (no encoding check)", + "us": 2215.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 3084.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2712.3, + "level": "no UTF-8" + }, + "variants": { + "SAX to Writer (no encoding check)": { + "us": 2215.7, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 2525.7, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2712.3, + "level": "no UTF-8" + }, + "SAX to Writer": { + "us": 2713.9, + "level": "full" + }, + "Document + Writer (no encoding check)": { + "us": 2733.7, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers)": { + "us": 2964.9, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 3084.0, + "level": "full" + }, + "Document + Writer": { + "us": 3253.6, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 5949.5, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 5949.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 5949.5, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 1731.3, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 1731.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 1731.3, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 4193.3, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 4193.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 4193.3, "level": "full" } } @@ -6204,21 +11935,23 @@ "nlohmann json_document": { "best": { "variant": "dump", - "us": 152.3, + "us": 151.6, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 152.3, + "us": 151.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 152.3, + "us": 151.6, "level": "n/a" }, "dump (source numbers)": { - "us": 153.9, + "us": 153.6, "level": "n/a" } } @@ -6226,17 +11959,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 445.2, + "us": 438.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 445.2, + "us": 438.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 445.2, + "us": 438.0, "level": "n/a" } } @@ -6244,17 +11979,19 @@ "yyjson": { "best": { "variant": "write", - "us": 219.4, + "us": 215.4, "level": "n/a" }, "best_any": { "variant": "write", - "us": 219.4, + "us": 215.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 219.4, + "us": 215.4, "level": "n/a" } } @@ -6262,17 +11999,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 551.4, + "us": 491.7, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 551.4, + "us": 491.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 551.4, + "us": 491.7, "level": "n/a" } } @@ -6280,17 +12019,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 644.4, + "us": 639.2, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 644.4, + "us": 639.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 644.4, + "us": 639.2, "level": "n/a" } } @@ -6298,17 +12039,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 231.2, + "us": 232.5, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 231.2, + "us": 232.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 231.2, + "us": 232.5, "level": "n/a" } } @@ -6316,35 +12059,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 413.4, + "us": 388.4, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 413.4, + "us": 388.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 413.4, + "us": 388.4, + "level": "n/a" + }, + "generic (strict)": { + "us": 408.5, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 489.2, + "us": 488.1, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 489.2, + "us": 488.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 489.2, + "us": 488.1, "level": "n/a" } } @@ -6352,17 +12107,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 562.8, + "us": 559.5, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 562.8, + "us": 559.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 562.8, + "us": 559.5, "level": "n/a" } } @@ -6370,17 +12127,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 442.3, + "us": 445.3, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 442.3, + "us": 445.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 442.3, + "us": 445.3, "level": "n/a" } } @@ -6388,17 +12147,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 604.4, + "us": 597.0, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 604.4, + "us": 597.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 604.4, + "us": 597.0, "level": "n/a" } } @@ -6408,21 +12169,23 @@ "nlohmann json_document": { "best": { "variant": "dump", - "us": 271.5, + "us": 271.7, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 271.5, + "us": 271.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 271.5, + "us": 271.7, "level": "n/a" }, "dump (source numbers)": { - "us": 273.0, + "us": 273.2, "level": "n/a" } } @@ -6430,17 +12193,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 590.0, + "us": 596.8, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 590.0, + "us": 596.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 590.0, + "us": 596.8, "level": "n/a" } } @@ -6448,17 +12213,19 @@ "yyjson": { "best": { "variant": "write", - "us": 363.9, + "us": 350.0, "level": "n/a" }, "best_any": { "variant": "write", - "us": 363.9, + "us": 350.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 363.9, + "us": 350.0, "level": "n/a" } } @@ -6466,17 +12233,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 802.6, + "us": 679.7, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 802.6, + "us": 679.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 802.6, + "us": 679.7, "level": "n/a" } } @@ -6484,17 +12253,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 966.5, + "us": 961.3, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 966.5, + "us": 961.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 966.5, + "us": 961.3, "level": "n/a" } } @@ -6502,17 +12273,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 475.4, + "us": 480.3, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 475.4, + "us": 480.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 475.4, + "us": 480.3, "level": "n/a" } } @@ -6520,35 +12293,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 725.0, + "us": 716.8, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 725.0, + "us": 716.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 725.0, + "us": 716.8, + "level": "n/a" + }, + "generic (strict)": { + "us": 733.3, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 902.0, + "us": 903.0, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 902.0, + "us": 903.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 902.0, + "us": 903.0, "level": "n/a" } } @@ -6556,17 +12341,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 882.5, + "us": 848.0, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 882.5, + "us": 848.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 882.5, + "us": 848.0, "level": "n/a" } } @@ -6574,17 +12361,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 934.6, + "us": 931.3, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 934.6, + "us": 931.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 934.6, + "us": 931.3, "level": "n/a" } } @@ -6592,17 +12381,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 809.4, + "us": 808.9, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 809.4, + "us": 808.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 809.4, + "us": 808.9, "level": "n/a" } } @@ -6612,21 +12403,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 985.5, + "us": 974.9, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 985.5, + "us": 974.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 985.5, + "us": 974.9, "level": "n/a" }, "dump": { - "us": 3634.1, + "us": 3723.5, "level": "n/a" } } @@ -6634,17 +12427,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 4523.3, + "us": 4570.8, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 4523.3, + "us": 4570.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 4523.3, + "us": 4570.8, "level": "n/a" } } @@ -6652,17 +12447,19 @@ "yyjson": { "best": { "variant": "write", - "us": 3380.4, + "us": 3419.0, "level": "n/a" }, "best_any": { "variant": "write", - "us": 3380.4, + "us": 3419.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 3380.4, + "us": 3419.0, "level": "n/a" } } @@ -6670,17 +12467,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 12976.8, + "us": 4786.8, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 12976.8, + "us": 4786.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 12976.8, + "us": 4786.8, "level": "n/a" } } @@ -6688,17 +12487,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 9613.7, + "us": 9784.8, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 9613.7, + "us": 9784.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 9613.7, + "us": 9784.8, "level": "n/a" } } @@ -6706,17 +12507,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 4851.0, + "us": 4857.0, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 4851.0, + "us": 4857.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 4851.0, + "us": 4857.0, "level": "n/a" } } @@ -6724,35 +12527,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 4238.7, + "us": 4140.0, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 4238.7, + "us": 4140.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 4238.7, + "us": 4140.0, + "level": "n/a" + }, + "generic (strict)": { + "us": 4183.5, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 5658.9, + "us": 5752.0, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 5658.9, + "us": 5752.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 5658.9, + "us": 5752.0, "level": "n/a" } } @@ -6760,17 +12575,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 3978.8, + "us": 3963.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 3978.8, + "us": 3963.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 3978.8, + "us": 3963.8, "level": "n/a" } } @@ -6778,17 +12595,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 3954.2, + "us": 4047.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 3954.2, + "us": 4047.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 3954.2, + "us": 4047.8, "level": "n/a" } } @@ -6796,17 +12615,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 4824.9, + "us": 4816.6, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 4824.9, + "us": 4816.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 4824.9, + "us": 4816.6, "level": "n/a" } } @@ -6815,22 +12636,24 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "dump", - "us": 68840.1, + "variant": "dump (source numbers)", + "us": 68929.8, "level": "n/a" }, "best_any": { - "variant": "dump", - "us": 68840.1, + "variant": "dump (source numbers)", + "us": 68929.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "dump": { - "us": 68840.1, + "dump (source numbers)": { + "us": 68929.8, "level": "n/a" }, - "dump (source numbers)": { - "us": 69769.1, + "dump": { + "us": 69602.1, "level": "n/a" } } @@ -6838,17 +12661,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 118445.9, + "us": 119233.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 118445.9, + "us": 119233.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 118445.9, + "us": 119233.3, "level": "n/a" } } @@ -6856,17 +12681,19 @@ "yyjson": { "best": { "variant": "write", - "us": 75135.8, + "us": 78246.1, "level": "n/a" }, "best_any": { "variant": "write", - "us": 75135.8, + "us": 78246.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 75135.8, + "us": 78246.1, "level": "n/a" } } @@ -6874,17 +12701,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 183836.8, + "us": 183334.2, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 183836.8, + "us": 183334.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 183836.8, + "us": 183334.2, "level": "n/a" } } @@ -6892,17 +12721,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 127166.6, + "us": 132022.7, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 127166.6, + "us": 132022.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 127166.6, + "us": 132022.7, "level": "n/a" } } @@ -6910,17 +12741,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 69344.4, + "us": 70286.0, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 69344.4, + "us": 70286.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 69344.4, + "us": 70286.0, "level": "n/a" } } @@ -6928,35 +12761,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 137011.4, + "us": 138931.1, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 137011.4, + "us": 138931.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 137011.4, + "us": 138931.1, + "level": "n/a" + }, + "generic (strict)": { + "us": 149854.8, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 127822.6, + "us": 132633.1, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 127822.6, + "us": 132633.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 127822.6, + "us": 132633.1, "level": "n/a" } } @@ -6964,17 +12809,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 120716.3, + "us": 129472.9, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 120716.3, + "us": 129472.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 120716.3, + "us": 129472.9, "level": "n/a" } } @@ -6982,17 +12829,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 100888.7, + "us": 104487.1, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 100888.7, + "us": 104487.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 100888.7, + "us": 104487.1, "level": "n/a" } } @@ -7000,17 +12849,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 110710.5, + "us": 114244.7, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 110710.5, + "us": 114244.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 110710.5, + "us": 114244.7, "level": "n/a" } } @@ -7028,6 +12879,8 @@ "us": 0.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { "us": 0.9, @@ -7042,17 +12895,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 1.9, + "us": 2.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 1.9, + "us": 2.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 1.9, + "us": 2.0, "level": "n/a" } } @@ -7068,6 +12923,8 @@ "us": 1.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { "us": 1.3, @@ -7078,17 +12935,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 3.2, + "us": 3.0, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 3.2, + "us": 3.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 3.2, + "us": 3.0, "level": "n/a" } } @@ -7096,17 +12955,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 3.9, + "us": 3.6, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 3.9, + "us": 3.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 3.9, + "us": 3.6, "level": "n/a" } } @@ -7122,6 +12983,8 @@ "us": 1.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { "us": 1.2, @@ -7132,35 +12995,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 2.1, + "us": 2.0, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 2.1, + "us": 2.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 2.1, + "us": 2.0, + "level": "n/a" + }, + "generic (strict)": { + "us": 2.2, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 2.5, + "us": 2.6, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 2.5, + "us": 2.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 2.5, + "us": 2.6, "level": "n/a" } } @@ -7168,17 +13043,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 2.9, + "us": 3.2, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 2.9, + "us": 3.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2.9, + "us": 3.2, "level": "n/a" } } @@ -7186,17 +13063,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2.6, + "us": 2.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 2.6, + "us": 2.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2.6, + "us": 2.8, "level": "n/a" } } @@ -7204,17 +13083,487 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 2.7, + "us": 3.1, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 2.7, + "us": 3.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 2.7, + "us": 3.1, + "level": "n/a" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "dump", + "us": 148.5, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 148.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 148.5, + "level": "n/a" + }, + "dump (source numbers)": { + "us": 151.0, + "level": "n/a" + } + } + }, + "nlohmann json": { + "best": { + "variant": "dump", + "us": 443.5, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 443.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 443.5, + "level": "n/a" + } + } + }, + "yyjson": { + "best": { + "variant": "write", + "us": 214.8, + "level": "n/a" + }, + "best_any": { + "variant": "write", + "us": 214.8, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "write": { + "us": 214.8, + "level": "n/a" + } + } + }, + "simdjson": { + "best": { + "variant": "to_string", + "us": 495.0, + "level": "n/a" + }, + "best_any": { + "variant": "to_string", + "us": 495.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "to_string": { + "us": 495.0, + "level": "n/a" + } + } + }, + "RapidJSON": { + "best": { + "variant": "Writer", + "us": 624.2, + "level": "n/a" + }, + "best_any": { + "variant": "Writer", + "us": 624.2, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Writer": { + "us": 624.2, + "level": "n/a" + } + } + }, + "sonic-cpp": { + "best": { + "variant": "Serialize", + "us": 217.0, + "level": "n/a" + }, + "best_any": { + "variant": "Serialize", + "us": 217.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Serialize": { + "us": 217.0, + "level": "n/a" + } + } + }, + "Glaze": { + "best": { + "variant": "generic", + "us": 390.4, + "level": "n/a" + }, + "best_any": { + "variant": "generic", + "us": 390.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 390.4, + "level": "n/a" + }, + "generic (strict)": { + "us": 412.0, + "level": "n/a" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "serialize", + "us": 492.1, + "level": "n/a" + }, + "best_any": { + "variant": "serialize", + "us": 492.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "serialize": { + "us": 492.1, + "level": "n/a" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 562.4, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 562.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 562.4, + "level": "n/a" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 442.4, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 442.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 442.4, + "level": "n/a" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed", + "us": 594.0, + "level": "n/a" + }, + "best_any": { + "variant": "borrowed", + "us": 594.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed": { + "us": 594.0, + "level": "n/a" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "dump", + "us": 264.5, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 264.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 264.5, + "level": "n/a" + }, + "dump (source numbers)": { + "us": 265.9, + "level": "n/a" + } + } + }, + "nlohmann json": { + "best": { + "variant": "dump", + "us": 602.1, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 602.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 602.1, + "level": "n/a" + } + } + }, + "yyjson": { + "best": { + "variant": "write", + "us": 346.9, + "level": "n/a" + }, + "best_any": { + "variant": "write", + "us": 346.9, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "write": { + "us": 346.9, + "level": "n/a" + } + } + }, + "simdjson": { + "best": { + "variant": "to_string", + "us": 681.6, + "level": "n/a" + }, + "best_any": { + "variant": "to_string", + "us": 681.6, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "to_string": { + "us": 681.6, + "level": "n/a" + } + } + }, + "RapidJSON": { + "best": { + "variant": "Writer", + "us": 959.5, + "level": "n/a" + }, + "best_any": { + "variant": "Writer", + "us": 959.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Writer": { + "us": 959.5, + "level": "n/a" + } + } + }, + "sonic-cpp": { + "best": { + "variant": "Serialize", + "us": 467.2, + "level": "n/a" + }, + "best_any": { + "variant": "Serialize", + "us": 467.2, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Serialize": { + "us": 467.2, + "level": "n/a" + } + } + }, + "Glaze": { + "best": { + "variant": "generic", + "us": 715.0, + "level": "n/a" + }, + "best_any": { + "variant": "generic", + "us": 715.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 715.0, + "level": "n/a" + }, + "generic (strict)": { + "us": 730.4, + "level": "n/a" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "serialize", + "us": 900.8, + "level": "n/a" + }, + "best_any": { + "variant": "serialize", + "us": 900.8, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "serialize": { + "us": 900.8, + "level": "n/a" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 851.0, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 851.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 851.0, + "level": "n/a" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 908.2, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 908.2, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 908.2, + "level": "n/a" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed", + "us": 788.3, + "level": "n/a" + }, + "best_any": { + "variant": "borrowed", + "us": 788.3, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed": { + "us": 788.3, "level": "n/a" } } diff --git a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc.json b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc.json index b9ace0b9a..8d16debbb 100644 --- a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc.json +++ b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc.json @@ -3,26 +3,36 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "parse", - "us": 304.5, + "variant": "accept", + "us": 310.4, "level": "full" }, "best_any": { - "variant": "parse", - "us": 304.5, + "variant": "accept", + "us": 310.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 303.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 303.8, "level": "full" }, "variants": { "read (reused)": { - "us": 297.0, - "level": "full" - }, - "parse": { - "us": 304.5, + "us": 303.8, "level": "full" }, "accept": { - "us": 310.7, + "us": 310.4, + "level": "full" + }, + "parse": { + "us": 312.0, "level": "full" } } @@ -30,21 +40,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 816.9, + "us": 791.9, "level": "full" }, "best_any": { "variant": "accept", - "us": 816.9, + "us": 791.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 816.9, + "us": 791.9, "level": "full" }, "parse": { - "us": 3679.7, + "us": 3358.6, "level": "full" } } @@ -52,21 +64,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 393.6, + "us": 397.3, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 393.6, + "us": 397.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 399.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 399.3, "level": "full" }, "variants": { "insitu (copy)": { - "us": 393.6, + "us": 397.3, + "level": "full" + }, + "read (raw numbers)": { + "us": 398.0, + "level": "full" + }, + "read (reused allocator)": { + "us": 399.3, "level": "full" }, "read": { - "us": 396.5, + "us": 400.9, "level": "full" } } @@ -74,21 +104,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 301.9, + "us": 301.7, "level": "full" }, "best_any": { "variant": "DOM", - "us": 301.9, + "us": 301.7, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 298.1, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 298.1, "level": "full" }, "variants": { "DOM (reused)": { - "us": 297.4, + "us": 298.1, "level": "full" }, "DOM": { - "us": 301.9, + "us": 301.7, "level": "full" } } @@ -97,12 +137,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 404.6, + "us": 403.8, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 404.6, + "us": 403.8, "level": "no UTF-8" } } @@ -110,43 +152,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 727.4, + "us": 714.2, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 727.4, + "us": 714.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 727.4, + "us": 714.2, + "level": "full" + }, + "generic (double)": { + "us": 2271.1, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2350.2, "level": "full" }, "generic": { - "us": 3066.1, + "us": 2884.9, + "level": "partial" + }, + "generic (strict)": { + "us": 2943.9, "level": "full" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 680.1, + "variant": "SAX (numbers: none)", + "us": 680.0, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 680.1, + "variant": "SAX (numbers: none)", + "us": 680.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 689.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 689.0, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 680.0, + "level": "full" + }, + "SAX (reused)": { + "us": 689.0, + "level": "full" + }, "SAX": { - "us": 680.1, + "us": 690.6, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1268.0, + "level": "full" + }, + "parser (reused)": { + "us": 1273.1, "level": "full" }, "parse": { - "us": 1345.5, + "us": 1282.5, "level": "full" } } @@ -154,37 +236,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1250.0, + "us": 1254.4, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1098.2, + "us": 1092.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1524.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1412.6, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1098.2, + "us": 1092.2, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1250.0, + "us": 1254.4, "level": "full" }, "SAX (no encoding check)": { - "us": 1266.5, + "us": 1268.7, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1302.7, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1412.6, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1392.6, + "us": 1412.7, "level": "no UTF-8" }, + "Document (reused allocator)": { + "us": 1524.5, + "level": "full" + }, "SAX": { - "us": 2004.8, + "us": 1957.7, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2012.6, "level": "full" }, "Document": { - "us": 2113.4, + "us": 2134.0, "level": "full" } } @@ -192,25 +300,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 633.5, + "us": 621.9, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 486.9, + "us": 480.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 486.9, + "us": 480.2, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 633.5, + "us": 621.9, "level": "full" }, "Value": { - "us": 3815.1, + "us": 3675.2, "level": "full" } } @@ -218,21 +328,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 469.6, + "us": 481.8, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 469.6, + "us": 481.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 469.6, + "us": 481.8, "level": "full" }, "Value": { - "us": 563.3, + "us": 557.9, "level": "full" } } @@ -240,25 +352,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 591.5, + "us": 563.4, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 591.5, + "us": 563.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 572.1, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 572.1, "level": "full" }, "variants": { - "tape (reused)": { - "us": 578.1, + "tape (copy)": { + "us": 563.4, "level": "full" }, - "tape (copy)": { - "us": 591.5, + "tape (reused)": { + "us": 572.1, "level": "full" }, "borrowed (copy)": { - "us": 1281.8, + "us": 1259.6, "level": "full" } } @@ -267,26 +389,36 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "parse", - "us": 732.7, + "variant": "accept", + "us": 731.5, "level": "full" }, "best_any": { - "variant": "parse", - "us": 732.7, + "variant": "accept", + "us": 731.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 732.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 732.2, "level": "full" }, "variants": { - "parse": { - "us": 732.7, + "accept": { + "us": 731.5, "level": "full" }, "read (reused)": { - "us": 735.1, + "us": 732.2, "level": "full" }, - "accept": { - "us": 742.6, + "parse": { + "us": 737.1, "level": "full" } } @@ -294,43 +426,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 1613.9, + "us": 1584.9, "level": "full" }, "best_any": { "variant": "accept", - "us": 1613.9, + "us": 1584.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 1613.9, + "us": 1584.9, "level": "full" }, "parse": { - "us": 5868.0, + "us": 5623.8, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 955.5, + "variant": "read (raw numbers)", + "us": 935.0, "level": "full" }, "best_any": { - "variant": "read", - "us": 955.5, + "variant": "read (raw numbers)", + "us": 935.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 964.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 964.9, "level": "full" }, "variants": { + "read (raw numbers)": { + "us": 935.0, + "level": "full" + }, "read": { - "us": 955.5, + "us": 949.4, "level": "full" }, "insitu (copy)": { - "us": 962.3, + "us": 951.1, + "level": "full" + }, + "read (reused allocator)": { + "us": 964.9, "level": "full" } } @@ -338,21 +490,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 705.3, + "us": 676.2, "level": "full" }, "best_any": { "variant": "DOM", - "us": 705.3, + "us": 676.2, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 676.5, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 676.5, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 699.9, + "DOM": { + "us": 676.2, "level": "full" }, - "DOM": { - "us": 705.3, + "DOM (reused)": { + "us": 676.5, "level": "full" } } @@ -361,12 +523,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 934.8, + "us": 921.3, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 934.8, + "us": 921.3, "level": "no UTF-8" } } @@ -374,43 +538,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1983.3, + "us": 1975.0, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1983.3, + "us": 1975.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 1983.3, + "us": 1975.0, "level": "full" }, + "generic (double, strict)": { + "us": 3945.9, + "level": "full" + }, + "generic (double)": { + "us": 3972.1, + "level": "partial" + }, "generic": { - "us": 5604.8, + "us": 5253.7, + "level": "partial" + }, + "generic (strict)": { + "us": 5390.8, "level": "full" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 921.9, + "variant": "SAX (numbers: none)", + "us": 909.4, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 921.9, + "variant": "SAX (numbers: none)", + "us": 909.4, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 947.8, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 947.8, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 909.4, + "level": "full" + }, "SAX": { - "us": 921.9, + "us": 945.8, + "level": "full" + }, + "SAX (reused)": { + "us": 947.8, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1555.5, + "level": "full" + }, + "parser (reused)": { + "us": 1598.3, "level": "full" }, "parse": { - "us": 1702.7, + "us": 1610.3, "level": "full" } } @@ -418,37 +622,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1910.0, + "us": 1884.7, "level": "full" }, "best_any": { "variant": "SAX (no encoding check)", - "us": 1607.1, + "us": 1589.2, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1899.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 1899.4, + "level": "full" + }, "variants": { "SAX (no encoding check)": { - "us": 1607.1, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 1861.8, + "us": 1589.2, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 1887.3, + "us": 1831.2, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1841.0, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1863.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1910.0, + "us": 1884.7, "level": "full" }, + "Document (reused allocator)": { + "us": 1899.4, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1902.3, + "level": "no UTF-8" + }, "SAX": { - "us": 2033.0, + "us": 2024.2, "level": "full" }, "Document": { - "us": 2343.0, + "us": 2310.1, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2340.9, "level": "full" } } @@ -456,25 +686,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 1447.6, + "us": 1439.7, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 1370.5, + "us": 1370.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 1370.5, + "us": 1370.7, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 1447.6, + "us": 1439.7, "level": "full" }, "Value": { - "us": 6238.9, + "us": 5958.6, "level": "full" } } @@ -482,21 +714,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 965.6, + "us": 969.0, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 965.6, + "us": 969.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 965.6, + "us": 969.0, "level": "full" }, "Value": { - "us": 1189.7, + "us": 1191.8, "level": "full" } } @@ -504,25 +738,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 1425.7, + "us": 1402.8, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 1425.7, + "us": 1402.8, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 1451.4, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 1451.4, "level": "full" }, "variants": { - "tape (reused)": { - "us": 1409.5, + "tape (copy)": { + "us": 1402.8, "level": "full" }, - "tape (copy)": { - "us": 1425.7, + "tape (reused)": { + "us": 1451.4, "level": "full" }, "borrowed (copy)": { - "us": 3637.0, + "us": 3702.4, "level": "full" } } @@ -531,26 +775,36 @@ "canada": { "nlohmann json_document": { "best": { - "variant": "accept", - "us": 1682.3, + "variant": "parse", + "us": 1684.8, "level": "full" }, "best_any": { - "variant": "accept", - "us": 1682.3, + "variant": "parse", + "us": 1684.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1679.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1679.7, "level": "full" }, "variants": { - "accept": { - "us": 1682.3, - "level": "full" - }, "read (reused)": { - "us": 1683.4, + "us": 1679.7, "level": "full" }, "parse": { - "us": 1724.6, + "us": 1684.8, + "level": "full" + }, + "accept": { + "us": 1697.3, "level": "full" } } @@ -558,43 +812,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 4402.5, + "us": 4677.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 4402.5, + "us": 4677.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 4402.5, + "us": 4677.6, "level": "full" }, "parse": { - "us": 11745.7, + "us": 12022.0, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 3322.1, + "variant": "read (raw numbers)", + "us": 2150.7, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 3322.1, + "variant": "read (raw numbers)", + "us": 2150.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 3268.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 3268.2, "level": "full" }, "variants": { + "read (raw numbers)": { + "us": 2150.7, + "level": "full" + }, + "read (reused allocator)": { + "us": 3268.2, + "level": "full" + }, "insitu (copy)": { - "us": 3322.1, + "us": 3268.4, "level": "full" }, "read": { - "us": 3338.8, + "us": 3338.1, "level": "full" } } @@ -602,21 +876,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3175.8, + "us": 3234.2, "level": "full" }, "best_any": { "variant": "DOM", - "us": 3175.8, + "us": 3234.2, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 3167.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 3167.4, "level": "full" }, "variants": { "DOM (reused)": { - "us": 3170.7, + "us": 3167.4, "level": "full" }, "DOM": { - "us": 3175.8, + "us": 3234.2, "level": "full" } } @@ -625,12 +909,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3217.9, + "us": 3186.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3217.9, + "us": 3186.5, "level": "no UTF-8" } } @@ -638,81 +924,147 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 2570.7, + "us": 2544.0, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 2570.7, + "us": 2544.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 2570.7, + "us": 2544.0, + "level": "full" + }, + "generic (double, strict)": { + "us": 10141.5, + "level": "full" + }, + "generic (double)": { + "us": 10319.4, + "level": "partial" + }, + "generic (strict)": { + "us": 17239.9, "level": "full" }, "generic": { - "us": 17783.3, - "level": "full" + "us": 17297.8, + "level": "partial" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 5992.7, + "variant": "SAX (numbers: none)", + "us": 1642.2, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 5992.7, + "variant": "SAX (numbers: none)", + "us": 1642.2, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 5668.9, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 5668.9, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 1642.2, + "level": "full" + }, + "parse (numbers: none)": { + "us": 2901.0, + "level": "full" + }, "SAX": { - "us": 5992.7, + "us": 5582.8, + "level": "full" + }, + "SAX (reused)": { + "us": 5668.9, + "level": "full" + }, + "parser (reused)": { + "us": 6776.5, "level": "full" }, "parse": { - "us": 6960.8, + "us": 6958.1, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 10180.7, + "variant": "SAX (raw numbers)", + "us": 10362.8, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 10180.7, + "variant": "insitu (copy) (no encoding check)", + "us": 10238.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 11907.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 11907.1, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 10180.7, - "level": "full" - }, - "SAX": { - "us": 10354.8, - "level": "full" - }, "insitu (copy) (no encoding check)": { - "us": 10657.4, + "us": 10238.0, + "level": "no UTF-8" + }, + "SAX (raw numbers)": { + "us": 10362.8, + "level": "full" + }, + "insitu (copy)": { + "us": 10402.5, + "level": "full" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 10474.7, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 10857.2, + "us": 10676.6, + "level": "no UTF-8" + }, + "SAX": { + "us": 11122.4, + "level": "full" + }, + "Document (reused allocator)": { + "us": 11907.1, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 11909.8, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 11812.2, + "us": 12002.9, "level": "no UTF-8" }, "Document": { - "us": 11830.7, + "us": 12293.5, "level": "full" } } @@ -720,25 +1072,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 2401.7, + "us": 2621.0, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 2318.5, + "us": 2537.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 2318.5, + "us": 2537.6, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 2401.7, + "us": 2621.0, "level": "full" }, "Value": { - "us": 13367.6, + "us": 14488.3, "level": "full" } } @@ -746,21 +1100,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 2249.4, + "us": 2489.1, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 2249.4, + "us": 2489.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 2249.4, + "us": 2489.1, "level": "full" }, "Value": { - "us": 3754.2, + "us": 4041.2, "level": "full" } } @@ -768,25 +1124,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 4302.9, + "us": 4629.8, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 4302.9, + "us": 4629.8, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 4807.9, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 4807.9, "level": "full" }, "variants": { - "tape (reused)": { - "us": 4245.2, + "tape (copy)": { + "us": 4629.8, "level": "full" }, - "tape (copy)": { - "us": 4302.9, + "tape (reused)": { + "us": 4807.9, "level": "full" }, "borrowed (copy)": { - "us": 10036.5, + "us": 11597.1, "level": "full" } } @@ -795,26 +1161,36 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "parse", - "us": 78594.0, + "variant": "accept", + "us": 80224.1, "level": "full" }, "best_any": { - "variant": "parse", - "us": 78594.0, + "variant": "accept", + "us": 80224.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 45574.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 45574.4, "level": "full" }, "variants": { "read (reused)": { - "us": 41399.3, - "level": "full" - }, - "parse": { - "us": 78594.0, + "us": 45574.4, "level": "full" }, "accept": { - "us": 78892.8, + "us": 80224.1, + "level": "full" + }, + "parse": { + "us": 82226.0, "level": "full" } } @@ -822,43 +1198,63 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 92387.1, + "us": 98338.3, "level": "full" }, "best_any": { "variant": "accept", - "us": 92387.1, + "us": 98338.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 92387.1, + "us": 98338.3, "level": "full" }, "parse": { - "us": 551872.7, + "us": 576643.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 130977.9, + "variant": "insitu (copy)", + "us": 135866.5, "level": "full" }, "best_any": { - "variant": "read", - "us": 130977.9, + "variant": "insitu (copy)", + "us": 135866.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 65814.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 65814.1, "level": "full" }, "variants": { - "read": { - "us": 130977.9, + "read (reused allocator)": { + "us": 65814.1, "level": "full" }, "insitu (copy)": { - "us": 135164.6, + "us": 135866.5, + "level": "full" + }, + "read (raw numbers)": { + "us": 136899.9, + "level": "full" + }, + "read": { + "us": 137228.5, "level": "full" } } @@ -866,21 +1262,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 114179.9, + "us": 121861.0, "level": "full" }, "best_any": { "variant": "DOM", - "us": 114179.9, + "us": 121861.0, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 52590.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 52590.8, "level": "full" }, "variants": { "DOM (reused)": { - "us": 47586.7, + "us": 52590.8, "level": "full" }, "DOM": { - "us": 114179.9, + "us": 121861.0, "level": "full" } } @@ -889,12 +1295,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 95565.1, + "us": 100732.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 95565.1, + "us": 100732.5, "level": "no UTF-8" } } @@ -902,21 +1310,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 76360.7, + "us": 79737.0, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 76360.7, + "us": 79737.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 76360.7, + "us": 79737.0, + "level": "full" + }, + "generic (double)": { + "us": 267014.0, + "level": "partial" + }, + "generic (double, strict)": { + "us": 267693.7, "level": "full" }, "generic": { - "us": 366998.7, + "us": 340512.6, + "level": "partial" + }, + "generic (strict)": { + "us": 355176.7, "level": "full" } } @@ -924,21 +1346,47 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 60686.7, + "us": 60757.3, "level": "full" }, "best_any": { "variant": "SAX", - "us": 60686.7, + "us": 60757.3, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 59365.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 59365.0, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 59365.0, + "level": "full" + }, "SAX": { - "us": 60686.7, + "us": 60757.3, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 61437.2, + "level": "full" + }, + "parser (reused)": { + "us": 123802.6, "level": "full" }, "parse": { - "us": 174955.3, + "us": 178594.4, + "level": "full" + }, + "parse (numbers: none)": { + "us": 180137.5, "level": "full" } } @@ -946,37 +1394,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 150241.4, + "us": 161391.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 143546.5, + "us": 155425.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 191526.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 179554.5, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 143546.5, + "us": 155425.0, "level": "no UTF-8" }, "insitu (copy)": { - "us": 150241.4, + "us": 161391.7, "level": "full" }, + "SAX (raw numbers) (no encoding check)": { + "us": 161866.3, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 151210.9, + "us": 163984.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 179554.5, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 177065.8, + "us": 189547.7, "level": "no UTF-8" }, + "Document (reused allocator)": { + "us": 191526.4, + "level": "full" + }, "SAX": { - "us": 247096.9, + "us": 246571.1, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 258633.7, "level": "full" }, "Document": { - "us": 256296.6, + "us": 286164.2, "level": "full" } } @@ -984,25 +1458,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 66822.2, + "us": 65602.4, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 59800.9, + "us": 60154.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 59800.9, + "us": 60154.2, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 66822.2, + "us": 65602.4, "level": "full" }, "Value": { - "us": 490960.4, + "us": 514855.6, "level": "full" } } @@ -1010,21 +1486,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 54246.3, + "us": 55486.2, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 54246.3, + "us": 55486.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 54246.3, + "us": 55486.2, "level": "full" }, "Value": { - "us": 117743.3, + "us": 113431.8, "level": "full" } } @@ -1032,25 +1510,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 211715.5, + "us": 212467.4, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 211715.5, + "us": 212467.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 142848.3, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 142848.3, "level": "full" }, "variants": { "tape (reused)": { - "us": 135460.9, + "us": 142848.3, "level": "full" }, "tape (copy)": { - "us": 211715.5, + "us": 212467.4, "level": "full" }, "borrowed (copy)": { - "us": 289558.6, + "us": 297916.2, "level": "full" } } @@ -1068,6 +1556,16 @@ "us": 1.5, "level": "full" }, + "best_reused": { + "variant": "read (reused)", + "us": 1.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1.4, + "level": "full" + }, "variants": { "read (reused)": { "us": 1.4, @@ -1086,21 +1584,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 4.1, + "us": 3.9, "level": "full" }, "best_any": { "variant": "accept", - "us": 4.1, + "us": 3.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 4.1, + "us": 3.9, "level": "full" }, "parse": { - "us": 14.8, + "us": 13.2, "level": "full" } } @@ -1116,7 +1616,21 @@ "us": 1.6, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.5, + "level": "full" + }, "variants": { + "read (reused allocator)": { + "us": 1.5, + "level": "full" + }, "read": { "us": 1.6, "level": "full" @@ -1124,6 +1638,10 @@ "insitu (copy)": { "us": 1.6, "level": "full" + }, + "read (raw numbers)": { + "us": 1.6, + "level": "full" } } }, @@ -1138,6 +1656,16 @@ "us": 1.8, "level": "full" }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 1.4, + "level": "full" + }, "variants": { "DOM (reused)": { "us": 1.4, @@ -1156,6 +1684,8 @@ "us": 1.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { "us": 1.7, @@ -1166,21 +1696,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 2.6, + "us": 2.5, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 2.6, + "us": 2.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 2.6, + "us": 2.5, "level": "full" }, + "generic (double, strict)": { + "us": 9.0, + "level": "full" + }, + "generic (double)": { + "us": 9.2, + "level": "partial" + }, "generic": { - "us": 13.2, + "us": 12.4, + "level": "partial" + }, + "generic (strict)": { + "us": 12.4, "level": "full" } } @@ -1188,21 +1732,47 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 2.6, + "us": 2.9, "level": "full" }, "best_any": { "variant": "SAX", - "us": 2.6, + "us": 2.9, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 3.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 3.0, "level": "full" }, "variants": { "SAX": { - "us": 2.6, + "us": 2.9, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 2.9, + "level": "full" + }, + "SAX (reused)": { + "us": 3.0, + "level": "full" + }, + "parser (reused)": { + "us": 5.7, + "level": "full" + }, + "parse (numbers: none)": { + "us": 5.9, "level": "full" }, "parse": { - "us": 6.4, + "us": 6.0, "level": "full" } } @@ -1210,37 +1780,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 5.3, + "us": 5.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 3.6, + "us": 3.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 7.6, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7.0, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 3.6, + "us": 3.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 5.3, + "us": 5.0, "level": "full" }, "SAX (no encoding check)": { + "us": 6.1, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { "us": 6.6, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 7.4, + "Document (reused allocator) (no encoding check)": { + "us": 7.0, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 7.5, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 7.6, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 10.5, + "level": "full" + }, "SAX": { - "us": 10.8, + "us": 10.7, "level": "full" }, "Document": { - "us": 11.9, + "us": 11.8, "level": "full" } } @@ -1248,7 +1844,7 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 2.4, + "us": 2.5, "level": "full" }, "best_any": { @@ -1256,17 +1852,19 @@ "us": 1.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { "us": 1.9, "level": "no UTF-8" }, "from_utf8 + IgnoredAny": { - "us": 2.4, + "us": 2.5, "level": "full" }, "Value": { - "us": 12.5, + "us": 13.9, "level": "full" } } @@ -1282,13 +1880,15 @@ "us": 1.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { "us": 1.8, "level": "full" }, "Value": { - "us": 2.4, + "us": 2.5, "level": "full" } } @@ -1296,12 +1896,22 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 2.8, + "us": 2.9, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 2.8, + "us": 2.9, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 2.4, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 2.4, "level": "full" }, "variants": { @@ -1310,11 +1920,783 @@ "level": "full" }, "tape (copy)": { - "us": 2.8, + "us": 2.9, "level": "full" }, "borrowed (copy)": { - "us": 5.3, + "us": 5.9, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 257.3, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 257.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 252.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 252.3, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 252.3, + "level": "full" + }, + "parse": { + "us": 257.3, + "level": "full" + }, + "accept": { + "us": 257.4, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 659.6, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 659.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 659.6, + "level": "full" + }, + "parse": { + "us": 3110.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 321.9, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 321.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 321.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 321.7, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 321.7, + "level": "full" + }, + "read": { + "us": 321.9, + "level": "full" + }, + "insitu (copy)": { + "us": 324.5, + "level": "full" + }, + "read (raw numbers)": { + "us": 327.5, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 280.6, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 280.6, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 278.6, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 278.6, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 278.6, + "level": "full" + }, + "DOM": { + "us": 280.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 297.2, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 297.2, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 510.9, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 510.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 510.9, + "level": "full" + }, + "generic (double, strict)": { + "us": 2098.8, + "level": "full" + }, + "generic (double)": { + "us": 2099.9, + "level": "partial" + }, + "generic": { + "us": 2598.5, + "level": "partial" + }, + "generic (strict)": { + "us": 2650.7, + "level": "full" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 544.2, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 544.2, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 558.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 558.0, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 544.2, + "level": "full" + }, + "SAX (reused)": { + "us": 558.0, + "level": "full" + }, + "SAX": { + "us": 558.5, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1163.1, + "level": "full" + }, + "parser (reused)": { + "us": 1167.3, + "level": "full" + }, + "parse": { + "us": 1174.2, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 894.9, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 837.4, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1437.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1303.1, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 837.4, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 894.9, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 1140.0, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1197.3, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1303.1, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1325.7, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1437.5, + "level": "full" + }, + "SAX": { + "us": 1863.9, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 1905.6, + "level": "full" + }, + "Document": { + "us": 2056.5, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 476.4, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 345.3, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 345.3, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 476.4, + "level": "full" + }, + "Value": { + "us": 3489.5, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 340.0, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 340.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 340.0, + "level": "full" + }, + "Value": { + "us": 418.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 515.3, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 515.3, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 518.0, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 518.0, + "level": "full" + }, + "variants": { + "tape (copy)": { + "us": 515.3, + "level": "full" + }, + "tape (reused)": { + "us": 518.0, + "level": "full" + }, + "borrowed (copy)": { + "us": 1217.8, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 500.6, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 500.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 500.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 500.5, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 500.5, + "level": "full" + }, + "parse": { + "us": 500.6, + "level": "full" + }, + "accept": { + "us": 501.8, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 1231.5, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 1231.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 1231.5, + "level": "full" + }, + "parse": { + "us": 5251.0, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 490.4, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 490.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 490.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 490.6, + "level": "full" + }, + "variants": { + "read": { + "us": 490.4, + "level": "full" + }, + "read (reused allocator)": { + "us": 490.6, + "level": "full" + }, + "insitu (copy)": { + "us": 490.9, + "level": "full" + }, + "read (raw numbers)": { + "us": 503.5, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 542.7, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 542.7, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 537.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 537.8, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 537.8, + "level": "full" + }, + "DOM": { + "us": 542.7, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 617.6, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 617.6, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 762.2, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 762.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 762.2, + "level": "full" + }, + "generic (double, strict)": { + "us": 3094.2, + "level": "full" + }, + "generic (double)": { + "us": 3115.1, + "level": "partial" + }, + "generic": { + "us": 4546.2, + "level": "partial" + }, + "generic (strict)": { + "us": 4649.5, + "level": "full" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 561.7, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 561.7, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 607.5, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 607.5, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 561.7, + "level": "full" + }, + "SAX (reused)": { + "us": 607.5, + "level": "full" + }, + "SAX": { + "us": 607.6, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1277.7, + "level": "full" + }, + "parser (reused)": { + "us": 1318.3, + "level": "full" + }, + "parse": { + "us": 1325.0, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1281.3, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 1281.3, + "level": "full" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1679.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 1679.5, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 1281.3, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 1293.4, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 1315.9, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1568.1, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1668.9, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1679.5, + "level": "full" + }, + "SAX": { + "us": 1718.1, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1730.1, + "level": "no UTF-8" + }, + "SAX (raw numbers)": { + "us": 2053.1, + "level": "full" + }, + "Document": { + "us": 2189.9, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 637.2, + "level": "full" + }, + "best_any": { + "variant": "from_utf8 + IgnoredAny", + "us": 637.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "from_utf8 + IgnoredAny": { + "us": 637.2, + "level": "full" + }, + "IgnoredAny": { + "us": 665.8, + "level": "no UTF-8" + }, + "Value": { + "us": 5301.8, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 640.9, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 640.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 640.9, + "level": "full" + }, + "Value": { + "us": 819.1, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 1159.4, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 1159.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 1092.3, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 1092.3, + "level": "full" + }, + "variants": { + "tape (reused)": { + "us": 1092.3, + "level": "full" + }, + "tape (copy)": { + "us": 1159.4, + "level": "full" + }, + "borrowed (copy)": { + "us": 3638.6, "level": "full" } } @@ -1326,21 +2708,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 383.0, + "us": 384.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 383.0, + "us": 384.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 376.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 376.7, "level": "full" }, "variants": { "read (reused)": { - "us": 367.4, + "us": 376.7, "level": "full" }, "parse": { - "us": 383.0, + "us": 384.1, "level": "full" } } @@ -1348,43 +2740,59 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 789.6, + "us": 800.6, "level": "full" }, "best_any": { "variant": "sax", - "us": 789.6, + "us": 800.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 789.6, + "us": 800.6, "level": "full" }, "parse": { - "us": 3780.4, + "us": 3476.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 448.0, + "variant": "read", + "us": 450.1, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 448.0, + "variant": "read", + "us": 450.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 452.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 452.8, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 448.0, + "read": { + "us": 450.1, "level": "full" }, - "read": { - "us": 451.5, + "read (reused allocator)": { + "us": 452.8, + "level": "full" + }, + "insitu (copy)": { + "us": 454.9, "level": "full" } } @@ -1392,29 +2800,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 347.1, + "us": 348.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 347.1, + "us": 348.0, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 344.9, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 344.9, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 343.9, + "us": 344.9, "level": "full" }, "On-Demand": { - "us": 347.1, + "us": 348.0, "level": "full" }, "DOM (reused)": { - "us": 374.3, + "us": 382.4, "level": "full" }, "DOM": { - "us": 381.0, + "us": 384.3, "level": "full" } } @@ -1423,56 +2841,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 462.0, + "us": 461.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 462.0, + "us": 461.5, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 2940.2, + "variant": "generic (double, strict)", + "us": 2409.9, "level": "full" }, "best_any": { - "variant": "generic", - "us": 2940.2, + "variant": "generic (double, strict)", + "us": 2409.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { + "generic (double, strict)": { + "us": 2409.9, + "level": "full" + }, + "generic (double)": { + "us": 2414.3, + "level": "partial" + }, "generic": { - "us": 2940.2, + "us": 2891.2, + "level": "partial" + }, + "generic (strict)": { + "us": 2936.6, "level": "full" }, "lazy_json": { - "us": 3214.9, + "us": 3144.2, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 668.0, + "us": 688.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 668.0, + "us": 688.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 687.5, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 687.5, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 687.5, + "level": "full" + }, "SAX": { - "us": 668.0, + "us": 688.0, + "level": "full" + }, + "parser (reused)": { + "us": 1339.6, "level": "full" }, "parse": { - "us": 1348.6, + "us": 1343.2, "level": "full" } } @@ -1480,37 +2935,55 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1296.1, + "us": 1301.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1145.2, + "us": 1141.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1578.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1448.9, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1145.2, + "us": 1141.0, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1277.4, + "us": 1291.6, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1296.1, + "us": 1301.2, "level": "full" }, - "Document (no encoding check)": { - "us": 1442.8, + "Document (reused allocator) (no encoding check)": { + "us": 1448.9, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 1466.8, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1578.2, + "level": "full" + }, "SAX": { - "us": 2055.5, + "us": 1994.3, "level": "full" }, "Document": { - "us": 2144.7, + "us": 2189.4, "level": "full" } } @@ -1518,21 +2991,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 1318.2, + "us": 1310.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 1318.2, + "us": 1310.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 1318.2, + "us": 1310.8, "level": "full" }, "Value": { - "us": 4058.1, + "us": 3672.0, "level": "full" } } @@ -1540,21 +3015,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 494.3, + "us": 503.3, "level": "full" }, "best_any": { "variant": "visitor", - "us": 494.3, + "us": 503.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 494.3, + "us": 503.3, "level": "full" }, "Value": { - "us": 808.3, + "us": 815.3, "level": "full" } } @@ -1562,25 +3039,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 722.1, + "us": 667.8, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 722.1, + "us": 667.8, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 1440.1, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 1440.1, "level": "full" }, "variants": { "visitor (copy)": { - "us": 722.1, + "us": 667.8, "level": "full" }, "borrowed (reused)": { - "us": 1451.8, + "us": 1440.1, "level": "full" }, "borrowed (copy)": { - "us": 1475.4, + "us": 1456.2, "level": "full" } } @@ -1590,21 +3077,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 932.3, + "us": 929.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 932.3, + "us": 929.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 997.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 997.3, "level": "full" }, "variants": { - "read (reused)": { - "us": 927.1, + "parse": { + "us": 929.3, "level": "full" }, - "parse": { - "us": 932.3, + "read (reused)": { + "us": 997.3, "level": "full" } } @@ -1612,21 +3109,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 1623.8, + "us": 1704.9, "level": "full" }, "best_any": { "variant": "sax", - "us": 1623.8, + "us": 1704.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 1623.8, + "us": 1704.9, "level": "full" }, "parse": { - "us": 5901.3, + "us": 6192.6, "level": "full" } } @@ -1634,21 +3133,35 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 1093.8, + "us": 1101.1, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 1093.8, + "us": 1101.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1235.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1235.6, "level": "full" }, "variants": { "insitu (copy)": { - "us": 1093.8, + "us": 1101.1, "level": "full" }, "read": { - "us": 1098.6, + "us": 1169.9, + "level": "full" + }, + "read (reused allocator)": { + "us": 1235.6, "level": "full" } } @@ -1656,29 +3169,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 795.5, + "us": 803.9, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 795.5, + "us": 803.9, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 800.1, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 800.1, "level": "full" }, "variants": { - "On-Demand": { - "us": 795.5, - "level": "full" - }, "On-Demand (reused)": { - "us": 795.6, + "us": 800.1, "level": "full" }, - "DOM (reused)": { - "us": 920.9, + "On-Demand": { + "us": 803.9, "level": "full" }, "DOM": { - "us": 925.8, + "us": 890.7, + "level": "full" + }, + "DOM (reused)": { + "us": 942.7, "level": "full" } } @@ -1687,56 +3210,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 1124.9, + "us": 1197.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1124.9, + "us": 1197.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 5527.5, + "variant": "generic (double, strict)", + "us": 4407.3, "level": "full" }, "best_any": { - "variant": "generic", - "us": 5527.5, + "variant": "generic (double, strict)", + "us": 4407.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { + "generic (double, strict)": { + "us": 4407.3, + "level": "full" + }, + "generic (double)": { + "us": 4514.4, + "level": "partial" + }, "generic": { - "us": 5527.5, + "us": 5870.7, + "level": "partial" + }, + "generic (strict)": { + "us": 6036.2, "level": "full" }, "lazy_json": { - "us": 13584.6, + "us": 14710.0, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 934.2, + "us": 1020.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 934.2, + "us": 1020.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 1010.4, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 1010.4, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 1010.4, + "level": "full" + }, "SAX": { - "us": 934.2, + "us": 1020.0, + "level": "full" + }, + "parser (reused)": { + "us": 1849.0, "level": "full" }, "parse": { - "us": 1810.8, + "us": 1904.8, "level": "full" } } @@ -1744,37 +3304,55 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2010.7, + "us": 2166.1, "level": "full" }, "best_any": { "variant": "SAX (no encoding check)", - "us": 1688.4, + "us": 1832.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2199.9, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 2120.3, "level": "no UTF-8" }, "variants": { "SAX (no encoding check)": { - "us": 1688.4, + "us": 1832.5, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 2010.7, - "level": "full" - }, - "Document (no encoding check)": { - "us": 2011.4, + "Document (reused allocator) (no encoding check)": { + "us": 2120.3, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 2029.9, + "us": 2137.7, "level": "no UTF-8" }, + "insitu (copy)": { + "us": 2166.1, + "level": "full" + }, + "Document (no encoding check)": { + "us": 2167.3, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 2199.9, + "level": "full" + }, "SAX": { - "us": 2127.4, + "us": 2275.5, "level": "full" }, "Document": { - "us": 2429.5, + "us": 2589.6, "level": "full" } } @@ -1782,21 +3360,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 2298.7, + "us": 2316.5, "level": "full" }, "best_any": { "variant": "visitor", - "us": 2298.7, + "us": 2316.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 2298.7, + "us": 2316.5, "level": "full" }, "Value": { - "us": 6416.1, + "us": 6263.6, "level": "full" } } @@ -1804,21 +3384,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 1134.9, + "us": 1122.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 1134.9, + "us": 1122.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 1134.9, + "us": 1122.8, "level": "full" }, "Value": { - "us": 1798.1, + "us": 1850.5, "level": "full" } } @@ -1826,25 +3408,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 1685.7, + "us": 1687.6, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 1685.7, + "us": 1687.6, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 3929.4, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 3929.4, "level": "full" }, "variants": { "visitor (copy)": { - "us": 1685.7, - "level": "full" - }, - "borrowed (copy)": { - "us": 3825.0, + "us": 1687.6, "level": "full" }, "borrowed (reused)": { - "us": 3865.2, + "us": 3929.4, + "level": "full" + }, + "borrowed (copy)": { + "us": 3960.3, "level": "full" } } @@ -1854,21 +3446,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 3873.9, + "us": 3867.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 3873.9, + "us": 3867.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 3858.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 3858.1, "level": "full" }, "variants": { - "parse": { - "us": 3873.9, + "read (reused)": { + "us": 3858.1, "level": "full" }, - "read (reused)": { - "us": 3874.2, + "parse": { + "us": 3867.3, "level": "full" } } @@ -1876,21 +3478,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 5671.4, + "us": 5532.2, "level": "full" }, "best_any": { "variant": "sax", - "us": 5671.4, + "us": 5532.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 5671.4, + "us": 5532.2, "level": "full" }, "parse": { - "us": 12119.7, + "us": 12322.1, "level": "full" } } @@ -1898,21 +3502,35 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 3955.4, + "us": 3944.2, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 3955.4, + "us": 3944.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 3995.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 3995.8, "level": "full" }, "variants": { "insitu (copy)": { - "us": 3955.4, + "us": 3944.2, "level": "full" }, "read": { - "us": 3965.4, + "us": 3955.7, + "level": "full" + }, + "read (reused allocator)": { + "us": 3995.8, "level": "full" } } @@ -1920,29 +3538,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 3475.8, + "us": 3367.7, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 3475.8, + "us": 3367.7, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 3366.9, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 3366.9, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 3471.4, + "us": 3366.9, "level": "full" }, "On-Demand": { - "us": 3475.8, + "us": 3367.7, "level": "full" }, "DOM (reused)": { - "us": 3988.1, + "us": 4032.8, "level": "full" }, "DOM": { - "us": 3998.6, + "us": 4033.0, "level": "full" } } @@ -1951,56 +3579,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 3866.7, + "us": 3853.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3866.7, + "us": 3853.5, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 17829.8, + "variant": "generic (double, strict)", + "us": 10384.3, "level": "full" }, "best_any": { - "variant": "generic", - "us": 17829.8, + "variant": "generic (double, strict)", + "us": 10384.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 17829.8, + "generic (double, strict)": { + "us": 10384.3, "level": "full" }, + "generic (double)": { + "us": 10528.0, + "level": "partial" + }, + "generic (strict)": { + "us": 17223.9, + "level": "full" + }, + "generic": { + "us": 17772.1, + "level": "partial" + }, "lazy_json": { - "us": 19443.4, + "us": 20117.5, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 5691.5, + "us": 5675.6, "level": "full" }, "best_any": { "variant": "SAX", - "us": 5691.5, + "us": 5675.6, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 5733.3, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 5733.3, "level": "full" }, "variants": { "SAX": { - "us": 5691.5, + "us": 5675.6, + "level": "full" + }, + "SAX (reused)": { + "us": 5733.3, + "level": "full" + }, + "parser (reused)": { + "us": 7157.5, "level": "full" }, "parse": { - "us": 7404.5, + "us": 7258.1, "level": "full" } } @@ -2008,59 +3673,79 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 10600.7, + "us": 10522.9, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 10600.7, + "variant": "insitu (copy) (no encoding check)", + "us": 10394.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 12296.5, "level": "full" }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 12243.6, + "level": "no UTF-8" + }, "variants": { - "insitu (copy)": { - "us": 10600.7, - "level": "full" - }, "insitu (copy) (no encoding check)": { - "us": 10782.8, + "us": 10394.2, "level": "no UTF-8" }, + "insitu (copy)": { + "us": 10522.9, + "level": "full" + }, "SAX (no encoding check)": { - "us": 11125.4, + "us": 10887.8, "level": "no UTF-8" }, "SAX": { - "us": 11233.5, - "level": "full" - }, - "Document": { - "us": 12111.8, + "us": 10959.4, "level": "full" }, "Document (no encoding check)": { - "us": 12165.1, + "us": 12072.7, "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 12243.6, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 12296.5, + "level": "full" + }, + "Document": { + "us": 12417.6, + "level": "full" } } }, "serde_json": { "best": { "variant": "visitor", - "us": 7610.4, + "us": 7240.7, "level": "full" }, "best_any": { "variant": "visitor", - "us": 7610.4, + "us": 7240.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 7610.4, + "us": 7240.7, "level": "full" }, "Value": { - "us": 14578.6, + "us": 13909.9, "level": "full" } } @@ -2068,21 +3753,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 4580.2, + "us": 4418.5, "level": "full" }, "best_any": { "variant": "visitor", - "us": 4580.2, + "us": 4418.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 4580.2, + "us": 4418.5, "level": "full" }, "Value": { - "us": 7489.7, + "us": 7197.0, "level": "full" } } @@ -2090,25 +3777,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 5190.9, + "us": 5134.0, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 5190.9, + "us": 5134.0, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 11297.7, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 11297.7, "level": "full" }, "variants": { "visitor (copy)": { - "us": 5190.9, - "level": "full" - }, - "borrowed (reused)": { - "us": 11384.6, + "us": 5134.0, "level": "full" }, "borrowed (copy)": { - "us": 11483.9, + "us": 11077.3, + "level": "full" + }, + "borrowed (reused)": { + "us": 11297.7, "level": "full" } } @@ -2118,21 +3815,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 93197.1, + "us": 88999.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 93197.1, + "us": 88999.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 53534.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 53534.1, "level": "full" }, "variants": { "read (reused)": { - "us": 55280.7, + "us": 53534.1, "level": "full" }, "parse": { - "us": 93197.1, + "us": 88999.8, "level": "full" } } @@ -2140,21 +3847,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 93963.8, + "us": 94951.8, "level": "full" }, "best_any": { "variant": "sax", - "us": 93963.8, + "us": 94951.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 93963.8, + "us": 94951.8, "level": "full" }, "parse": { - "us": 622544.2, + "us": 629022.1, "level": "full" } } @@ -2162,21 +3871,35 @@ "yyjson": { "best": { "variant": "read", - "us": 136684.2, + "us": 140178.4, "level": "full" }, "best_any": { "variant": "read", - "us": 136684.2, + "us": 140178.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 72833.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 72833.1, "level": "full" }, "variants": { + "read (reused allocator)": { + "us": 72833.1, + "level": "full" + }, "read": { - "us": 136684.2, + "us": 140178.4, "level": "full" }, "insitu (copy)": { - "us": 140100.3, + "us": 143827.9, "level": "full" } } @@ -2184,29 +3907,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 92000.4, + "us": 90882.4, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 92000.4, + "us": 90882.4, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 48818.1, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 48818.1, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 51134.3, + "us": 48818.1, "level": "full" }, "DOM (reused)": { - "us": 59327.1, + "us": 62728.3, "level": "full" }, "On-Demand": { - "us": 92000.4, + "us": 90882.4, "level": "full" }, "DOM": { - "us": 131068.3, + "us": 129061.0, "level": "full" } } @@ -2215,56 +3948,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 106727.1, + "us": 109984.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 106727.1, + "us": 109984.7, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 390814.5, + "variant": "generic (double, strict)", + "us": 285203.5, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 255217.2, + "us": 239394.9, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "lazy_json": { - "us": 255217.2, + "us": 239394.9, + "level": "partial" + }, + "generic (double, strict)": { + "us": 285203.5, + "level": "full" + }, + "generic (double)": { + "us": 296858.1, "level": "partial" }, "generic": { - "us": 390814.5, + "us": 373351.4, + "level": "partial" + }, + "generic (strict)": { + "us": 378652.3, "level": "full" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 62485.6, + "us": 61670.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 62485.6, + "us": 61670.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 59851.9, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 59851.9, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 59851.9, + "level": "full" + }, "SAX": { - "us": 62485.6, + "us": 61670.0, + "level": "full" + }, + "parser (reused)": { + "us": 129917.3, "level": "full" }, "parse": { - "us": 196607.9, + "us": 198668.0, "level": "full" } } @@ -2272,37 +4042,55 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 170083.4, + "us": 162402.5, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 157808.9, + "variant": "insitu (copy) (no encoding check)", + "us": 159814.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 195431.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 184309.3, "level": "no UTF-8" }, "variants": { - "SAX (no encoding check)": { - "us": 157808.9, + "insitu (copy) (no encoding check)": { + "us": 159814.7, "level": "no UTF-8" }, - "insitu (copy) (no encoding check)": { - "us": 162172.8, + "SAX (no encoding check)": { + "us": 161925.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 170083.4, + "us": 162402.5, "level": "full" }, - "Document (no encoding check)": { - "us": 187689.1, + "Document (reused allocator) (no encoding check)": { + "us": 184309.3, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 191462.1, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 195431.4, + "level": "full" + }, "SAX": { - "us": 246046.5, + "us": 249640.3, "level": "full" }, "Document": { - "us": 274825.9, + "us": 283118.6, "level": "full" } } @@ -2310,21 +4098,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 123810.1, + "us": 130249.3, "level": "full" }, "best_any": { "variant": "visitor", - "us": 123810.1, + "us": 130249.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 123810.1, + "us": 130249.3, "level": "full" }, "Value": { - "us": 526223.6, + "us": 544041.8, "level": "full" } } @@ -2332,21 +4122,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 59149.2, + "us": 59992.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 59149.2, + "us": 59992.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 59149.2, + "us": 59992.8, "level": "full" }, "Value": { - "us": 150764.0, + "us": 149296.9, "level": "full" } } @@ -2354,25 +4146,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 220581.9, + "us": 224411.1, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 220581.9, + "us": 224411.1, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 236685.9, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 236685.9, "level": "full" }, "variants": { "visitor (copy)": { - "us": 220581.9, + "us": 224411.1, "level": "full" }, "borrowed (reused)": { - "us": 228425.7, + "us": 236685.9, "level": "full" }, "borrowed (copy)": { - "us": 293609.3, + "us": 310720.1, "level": "full" } } @@ -2390,6 +4192,16 @@ "us": 2.0, "level": "full" }, + "best_reused": { + "variant": "read (reused)", + "us": 1.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1.8, + "level": "full" + }, "variants": { "read (reused)": { "us": 1.8, @@ -2404,21 +4216,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 3.9, + "us": 4.0, "level": "full" }, "best_any": { "variant": "sax", - "us": 3.9, + "us": 4.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 3.9, + "us": 4.0, "level": "full" }, "parse": { - "us": 14.4, + "us": 13.7, "level": "full" } } @@ -2434,7 +4248,21 @@ "us": 1.9, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.8, + "level": "full" + }, "variants": { + "read (reused allocator)": { + "us": 1.8, + "level": "full" + }, "read": { "us": 1.9, "level": "full" @@ -2456,6 +4284,16 @@ "us": 1.9, "level": "full" }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 1.6, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 1.6, + "level": "full" + }, "variants": { "On-Demand (reused)": { "us": 1.6, @@ -2470,7 +4308,7 @@ "level": "full" }, "DOM": { - "us": 2.1, + "us": 2.2, "level": "full" } } @@ -2482,6 +4320,8 @@ "us": 2.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { "us": 2.1, @@ -2491,8 +4331,8 @@ }, "Glaze": { "best": { - "variant": "generic", - "us": 12.6, + "variant": "generic (double, strict)", + "us": 9.4, "level": "full" }, "best_any": { @@ -2500,31 +4340,66 @@ "us": 6.3, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "lazy_json": { "us": 6.3, "level": "partial" }, - "generic": { - "us": 12.6, + "generic (double, strict)": { + "us": 9.4, "level": "full" + }, + "generic (double)": { + "us": 9.6, + "level": "partial" + }, + "generic (strict)": { + "us": 12.4, + "level": "full" + }, + "generic": { + "us": 12.5, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 2.7, + "us": 3.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 2.7, + "us": 3.0, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 3.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 3.0, "level": "full" }, "variants": { "SAX": { - "us": 2.7, + "us": 3.0, + "level": "full" + }, + "SAX (reused)": { + "us": 3.0, + "level": "full" + }, + "parser (reused)": { + "us": 5.9, "level": "full" }, "parse": { @@ -2541,12 +4416,22 @@ }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 3.9, + "us": 3.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 7.9, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7.2, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 3.9, + "us": 3.8, "level": "no UTF-8" }, "insitu (copy)": { @@ -2554,19 +4439,27 @@ "level": "full" }, "SAX (no encoding check)": { - "us": 6.4, + "us": 6.5, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 7.2, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 7.5, + "us": 7.7, "level": "no UTF-8" }, + "Document (reused allocator)": { + "us": 7.9, + "level": "full" + }, "SAX": { "us": 10.5, "level": "full" }, "Document": { - "us": 11.4, + "us": 11.8, "level": "full" } } @@ -2574,21 +4467,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 4.3, + "us": 5.1, "level": "full" }, "best_any": { "variant": "visitor", - "us": 4.3, + "us": 5.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 4.3, + "us": 5.1, "level": "full" }, "Value": { - "us": 12.9, + "us": 14.2, "level": "full" } } @@ -2596,21 +4491,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 2.4, + "us": 2.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 2.4, + "us": 2.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 2.4, + "us": 2.8, "level": "full" }, "Value": { - "us": 4.1, + "us": 4.5, "level": "full" } } @@ -2618,25 +4515,773 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 3.8, + "us": 4.0, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 3.8, + "us": 4.0, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 6.7, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 6.7, "level": "full" }, "variants": { "visitor (copy)": { - "us": 3.8, + "us": 4.0, "level": "full" }, "borrowed (reused)": { - "us": 5.7, + "us": 6.7, "level": "full" }, "borrowed (copy)": { - "us": 6.3, + "us": 7.4, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 332.1, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 332.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 326.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 326.8, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 326.8, + "level": "full" + }, + "parse": { + "us": 332.1, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 685.4, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 685.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 685.4, + "level": "full" + }, + "parse": { + "us": 3448.4, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 374.0, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 374.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 374.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 374.9, + "level": "full" + }, + "variants": { + "read": { + "us": 374.0, + "level": "full" + }, + "read (reused allocator)": { + "us": 374.9, + "level": "full" + }, + "insitu (copy)": { + "us": 375.4, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "On-Demand", + "us": 328.1, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 328.1, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 327.8, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 327.8, + "level": "full" + }, + "variants": { + "On-Demand (reused)": { + "us": 327.8, + "level": "full" + }, + "On-Demand": { + "us": 328.1, + "level": "full" + }, + "DOM": { + "us": 360.6, + "level": "full" + }, + "DOM (reused)": { + "us": 361.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 359.9, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 359.9, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 2279.8, + "level": "full" + }, + "best_any": { + "variant": "lazy_json", + "us": 1991.0, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "lazy_json": { + "us": 1991.0, + "level": "partial" + }, + "generic (double)": { + "us": 2264.5, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2279.8, + "level": "full" + }, + "generic (strict)": { + "us": 2757.3, + "level": "full" + }, + "generic": { + "us": 2768.9, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 560.4, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 560.4, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 563.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 563.0, + "level": "full" + }, + "variants": { + "SAX": { + "us": 560.4, + "level": "full" + }, + "SAX (reused)": { + "us": 563.0, + "level": "full" + }, + "parse": { + "us": 1237.7, + "level": "full" + }, + "parser (reused)": { + "us": 1309.0, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 946.7, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 890.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1535.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1371.0, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 890.8, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 946.7, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 1251.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1371.0, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1430.1, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1535.5, + "level": "full" + }, + "SAX": { + "us": 1993.8, + "level": "full" + }, + "Document": { + "us": 2191.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 1040.4, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 1040.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 1040.4, + "level": "full" + }, + "Value": { + "us": 3494.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 397.3, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 397.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 397.3, + "level": "full" + }, + "Value": { + "us": 674.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 619.8, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 619.8, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 1381.5, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 1381.5, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 619.8, + "level": "full" + }, + "borrowed (reused)": { + "us": 1381.5, + "level": "full" + }, + "borrowed (copy)": { + "us": 1415.1, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 697.0, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 697.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 689.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 689.0, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 689.0, + "level": "full" + }, + "parse": { + "us": 697.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 1278.3, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 1278.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 1278.3, + "level": "full" + }, + "parse": { + "us": 5675.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 640.8, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 640.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 646.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 646.7, + "level": "full" + }, + "variants": { + "read": { + "us": 640.8, + "level": "full" + }, + "read (reused allocator)": { + "us": 646.7, + "level": "full" + }, + "insitu (copy)": { + "us": 648.2, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "On-Demand", + "us": 662.6, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 662.6, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 662.3, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 662.3, + "level": "full" + }, + "variants": { + "On-Demand (reused)": { + "us": 662.3, + "level": "full" + }, + "On-Demand": { + "us": 662.6, + "level": "full" + }, + "DOM (reused)": { + "us": 737.7, + "level": "full" + }, + "DOM": { + "us": 741.8, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 797.9, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 797.9, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 3392.5, + "level": "full" + }, + "best_any": { + "variant": "generic (double)", + "us": 3364.5, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (double)": { + "us": 3364.5, + "level": "partial" + }, + "generic (double, strict)": { + "us": 3392.5, + "level": "full" + }, + "lazy_json": { + "us": 3782.4, + "level": "partial" + }, + "generic": { + "us": 4834.9, + "level": "partial" + }, + "generic (strict)": { + "us": 4994.3, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 631.4, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 631.4, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 639.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 639.0, + "level": "full" + }, + "variants": { + "SAX": { + "us": 631.4, + "level": "full" + }, + "SAX (reused)": { + "us": 639.0, + "level": "full" + }, + "parser (reused)": { + "us": 1481.2, + "level": "full" + }, + "parse": { + "us": 1529.0, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1426.6, + "level": "full" + }, + "best_any": { + "variant": "SAX (no encoding check)", + "us": 1420.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1837.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 1837.0, + "level": "full" + }, + "variants": { + "SAX (no encoding check)": { + "us": 1420.2, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1426.6, + "level": "full" + }, + "insitu (copy) (no encoding check)": { + "us": 1484.7, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1837.0, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1887.5, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1898.0, + "level": "no UTF-8" + }, + "SAX": { + "us": 1904.8, + "level": "full" + }, + "Document": { + "us": 2354.3, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 1337.4, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 1337.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 1337.4, + "level": "full" + }, + "Value": { + "us": 5475.1, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 836.5, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 836.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 836.5, + "level": "full" + }, + "Value": { + "us": 1438.7, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 1252.6, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 1252.6, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 3572.8, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 3572.8, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 1252.6, + "level": "full" + }, + "borrowed (reused)": { + "us": 3572.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 3644.7, "level": "full" } } @@ -2647,26 +5292,36 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "structs (from_json)", - "us": 325.2, + "variant": "parse", + "us": 327.0, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 325.2, + "variant": "parse", + "us": 327.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 321.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 321.7, "level": "full" }, "variants": { "read (reused)": { - "us": 310.7, - "level": "full" - }, - "structs (from_json)": { - "us": 325.2, + "us": 321.7, "level": "full" }, "parse": { - "us": 330.8, + "us": 327.0, + "level": "full" + }, + "structs (from_json)": { + "us": 353.5, "level": "full" } } @@ -2674,43 +5329,63 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 3642.8, + "us": 3693.3, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 3642.8, + "us": 3693.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 3642.8, + "us": 3693.3, "level": "full" }, "parse": { - "us": 3807.1, + "us": 3764.8, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 403.3, + "variant": "read", + "us": 445.1, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 403.3, + "variant": "read", + "us": 445.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 435.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 435.7, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 403.3, + "read (reused allocator)": { + "us": 435.7, "level": "full" }, "read": { - "us": 408.1, + "us": 445.1, + "level": "full" + }, + "insitu (copy)": { + "us": 447.3, + "level": "full" + }, + "read (raw numbers)": { + "us": 453.0, "level": "full" } } @@ -2718,29 +5393,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 315.1, + "us": 337.0, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 201.8, + "variant": "On-Demand structs", + "us": 183.2, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 335.8, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 184.0, "level": "partial" }, "variants": { + "On-Demand structs": { + "us": 183.2, + "level": "partial" + }, "On-Demand (reused)": { - "us": 197.8, + "us": 184.0, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 187.7, "level": "partial" }, "On-Demand": { - "us": 201.8, + "us": 197.0, "level": "partial" }, "DOM (reused)": { - "us": 307.8, + "us": 335.8, "level": "full" }, "DOM": { - "us": 315.1, + "us": 337.0, "level": "full" } } @@ -2749,12 +5442,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 409.9, + "us": 409.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 409.9, + "us": 409.2, "level": "no UTF-8" } } @@ -2762,77 +5457,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 618.7, + "us": 678.6, "level": "full" }, "best_any": { "variant": "structs", - "us": 359.6, + "us": 354.9, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 359.6, + "us": 354.9, "level": "partial" }, "structs (validate_skipped)": { - "us": 618.7, + "us": 678.6, "level": "full" }, "lazy_json": { - "us": 997.4, + "us": 1134.6, "level": "partial" }, - "generic": { - "us": 3115.4, + "generic (double)": { + "us": 2753.5, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2798.9, "level": "full" + }, + "generic (strict)": { + "us": 3287.4, + "level": "full" + }, + "generic": { + "us": 3291.4, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 1326.3, + "variant": "parse_into structs", + "us": 954.5, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1326.3, + "variant": "parse_into structs", + "us": 954.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1460.3, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1460.3, "level": "full" }, "variants": { + "parse_into structs": { + "us": 954.5, + "level": "full" + }, "parse": { - "us": 1326.3, + "us": 1399.0, + "level": "full" + }, + "parser (reused)": { + "us": 1460.3, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1274.5, + "us": 1404.9, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1098.0, + "us": 1217.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1696.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1570.3, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1098.0, + "us": 1217.8, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1274.5, + "us": 1404.9, "level": "full" }, - "Document (no encoding check)": { - "us": 1465.7, + "Document (reused allocator) (no encoding check)": { + "us": 1570.3, "level": "no UTF-8" }, + "Document (raw numbers) (no encoding check)": { + "us": 1581.1, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1581.6, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1696.0, + "level": "full" + }, "Document": { - "us": 2220.6, + "us": 2360.8, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2416.7, "level": "full" } } @@ -2840,25 +5599,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 769.2, + "us": 721.9, "level": "full" }, "best_any": { "variant": "from_utf8 + structs", - "us": 769.2, + "us": 721.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "from_utf8 + structs": { - "us": 769.2, + "us": 721.9, "level": "full" }, "structs": { - "us": 812.9, + "us": 785.8, "level": "no UTF-8" }, "Value": { - "us": 4230.2, + "us": 4043.7, "level": "full" } } @@ -2866,21 +5627,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 556.9, + "us": 538.0, "level": "full" }, "best_any": { "variant": "structs", - "us": 556.9, + "us": 538.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 556.9, + "us": 538.0, "level": "full" }, "Value": { - "us": 632.6, + "us": 601.3, "level": "full" } } @@ -2888,21 +5651,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 729.9, + "us": 740.4, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 729.9, + "us": 740.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 729.9, + "us": 740.4, "level": "full" }, "borrowed (copy)": { - "us": 1364.3, + "us": 1364.7, "level": "full" } } @@ -2911,70 +5676,100 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "structs (from_json)", - "us": 784.3, + "variant": "parse", + "us": 751.7, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 784.3, + "variant": "parse", + "us": 751.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 747.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 747.4, "level": "full" }, "variants": { - "structs (from_json)": { - "us": 784.3, + "read (reused)": { + "us": 747.4, "level": "full" }, "parse": { - "us": 784.8, + "us": 751.7, "level": "full" }, - "read (reused)": { - "us": 845.1, + "structs (from_json)": { + "us": 780.5, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 6198.8, + "variant": "parse", + "us": 5595.6, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 6198.8, + "variant": "parse", + "us": 5595.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 6198.8, + "parse": { + "us": 5595.6, "level": "full" }, - "parse": { - "us": 6278.3, + "structs (from_json)": { + "us": 5675.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 1011.4, + "variant": "read", + "us": 956.1, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 1011.4, + "variant": "read", + "us": 956.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1001.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1001.8, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 1011.4, + "read": { + "us": 956.1, "level": "full" }, - "read": { - "us": 1020.3, + "read (raw numbers)": { + "us": 957.1, + "level": "full" + }, + "insitu (copy)": { + "us": 958.0, + "level": "full" + }, + "read (reused allocator)": { + "us": 1001.8, "level": "full" } } @@ -2982,29 +5777,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 754.5, + "us": 686.5, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 641.5, + "variant": "On-Demand (key selectors)", + "us": 483.4, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 684.6, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 486.3, "level": "partial" }, "variants": { + "On-Demand (key selectors)": { + "us": 483.4, + "level": "partial" + }, "On-Demand (reused)": { - "us": 631.1, + "us": 486.3, "level": "partial" }, "On-Demand": { - "us": 641.5, + "us": 486.9, + "level": "partial" + }, + "On-Demand structs": { + "us": 522.2, "level": "partial" }, "DOM (reused)": { - "us": 728.9, + "us": 684.6, "level": "full" }, "DOM": { - "us": 754.5, + "us": 686.5, "level": "full" } } @@ -3013,12 +5826,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 951.8, + "us": 944.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 951.8, + "us": 944.0, "level": "no UTF-8" } } @@ -3026,77 +5841,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 2237.7, + "us": 1970.9, "level": "full" }, "best_any": { "variant": "structs", - "us": 412.2, + "us": 399.7, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 412.2, + "us": 399.7, "level": "partial" }, "structs (validate_skipped)": { - "us": 2237.7, + "us": 1970.9, "level": "full" }, + "generic (double, strict)": { + "us": 4081.0, + "level": "full" + }, + "generic (double)": { + "us": 4107.1, + "level": "partial" + }, "generic": { - "us": 5961.1, + "us": 5365.0, + "level": "partial" + }, + "generic (strict)": { + "us": 5593.1, "level": "full" }, "lazy_json": { - "us": 8936.7, + "us": 8473.6, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 1871.0, + "variant": "parse_into structs", + "us": 1222.7, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1871.0, + "variant": "parse_into structs", + "us": 1222.7, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1617.1, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1617.1, "level": "full" }, "variants": { + "parse_into structs": { + "us": 1222.7, + "level": "full" + }, + "parser (reused)": { + "us": 1617.1, + "level": "full" + }, "parse": { - "us": 1871.0, + "us": 1627.8, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2060.1, + "us": 1895.2, "level": "full" }, "best_any": { - "variant": "Document (no encoding check)", - "us": 2034.4, + "variant": "insitu (copy) (no encoding check)", + "us": 1841.0, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1897.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 1897.4, + "level": "full" + }, "variants": { - "Document (no encoding check)": { - "us": 2034.4, + "insitu (copy) (no encoding check)": { + "us": 1841.0, "level": "no UTF-8" }, - "insitu (copy) (no encoding check)": { - "us": 2044.4, + "Document (no encoding check)": { + "us": 1873.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2060.1, + "us": 1895.2, "level": "full" }, + "Document (reused allocator)": { + "us": 1897.4, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1916.8, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 2118.7, + "level": "no UTF-8" + }, "Document": { - "us": 2513.0, + "us": 2323.5, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2555.9, "level": "full" } } @@ -3104,25 +5983,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 1503.9, + "us": 1558.9, "level": "full" }, "best_any": { "variant": "structs", - "us": 1472.7, + "us": 1515.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1472.7, + "us": 1515.6, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 1503.9, + "us": 1558.9, "level": "full" }, "Value": { - "us": 6038.8, + "us": 6063.1, "level": "full" } } @@ -3130,21 +6011,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 1022.9, + "us": 1027.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 1022.9, + "us": 1027.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1022.9, + "us": 1027.5, "level": "full" }, "Value": { - "us": 1200.9, + "us": 1219.0, "level": "full" } } @@ -3152,21 +6035,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 1658.4, + "us": 1801.5, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 1658.4, + "us": 1801.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 1658.4, + "us": 1801.5, "level": "full" }, "borrowed (copy)": { - "us": 3571.2, + "us": 3775.9, "level": "full" } } @@ -3176,69 +6061,99 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 1686.4, + "us": 1684.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 1686.4, + "us": 1684.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1684.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1684.8, "level": "full" }, "variants": { - "read (reused)": { - "us": 1678.8, + "parse": { + "us": 1684.2, "level": "full" }, - "parse": { - "us": 1686.4, + "read (reused)": { + "us": 1684.8, "level": "full" }, "structs (from_json)": { - "us": 1689.6, + "us": 1691.0, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 11694.1, + "variant": "parse", + "us": 11688.6, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 11694.1, + "variant": "parse", + "us": 11688.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 11694.1, + "parse": { + "us": 11688.6, "level": "full" }, - "parse": { - "us": 11803.9, + "structs (from_json)": { + "us": 11715.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 3267.9, + "variant": "read (raw numbers)", + "us": 2139.4, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 3267.9, + "variant": "read (raw numbers)", + "us": 2139.4, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 3297.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 3297.2, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 3267.9, + "read (raw numbers)": { + "us": 2139.4, "level": "full" }, "read": { - "us": 3280.0, + "us": 3266.1, + "level": "full" + }, + "read (reused allocator)": { + "us": 3297.2, + "level": "full" + }, + "insitu (copy)": { + "us": 3312.6, "level": "full" } } @@ -3246,29 +6161,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3190.0, + "us": 3191.2, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 906.6, + "variant": "On-Demand (key selectors)", + "us": 700.1, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 3177.0, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 698.8, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 896.9, + "us": 698.8, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 700.1, "level": "partial" }, "On-Demand": { - "us": 906.6, + "us": 700.2, + "level": "partial" + }, + "On-Demand structs": { + "us": 912.5, "level": "partial" }, "DOM (reused)": { - "us": 3178.2, + "us": 3177.0, "level": "full" }, "DOM": { - "us": 3190.0, + "us": 3191.2, "level": "full" } } @@ -3277,12 +6210,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3249.0, + "us": 3171.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3249.0, + "us": 3171.6, "level": "no UTF-8" } } @@ -3290,103 +6225,169 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 2543.5, + "us": 2518.1, "level": "full" }, "best_any": { "variant": "structs", - "us": 433.0, + "us": 430.1, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 433.0, + "us": 430.1, "level": "partial" }, "structs (validate_skipped)": { - "us": 2543.5, + "us": 2518.1, "level": "full" }, "lazy_json": { - "us": 3465.4, + "us": 3449.1, "level": "partial" }, - "generic": { - "us": 17810.1, + "generic (double, strict)": { + "us": 9951.5, "level": "full" + }, + "generic (double)": { + "us": 10198.2, + "level": "partial" + }, + "generic (strict)": { + "us": 16978.6, + "level": "full" + }, + "generic": { + "us": 17539.0, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 6891.7, + "us": 6775.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 6891.7, + "us": 6775.4, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 6727.5, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 6727.5, "level": "full" }, "variants": { + "parser (reused)": { + "us": 6727.5, + "level": "full" + }, "parse": { - "us": 6891.7, + "us": 6775.4, + "level": "full" + }, + "parse_into structs": { + "us": 6917.1, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 10431.6, + "us": 10256.0, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 10431.6, + "variant": "insitu (copy) (no encoding check)", + "us": 9991.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 11625.7, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 11625.7, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 10431.6, - "level": "full" - }, "insitu (copy) (no encoding check)": { - "us": 10724.9, + "us": 9991.0, "level": "no UTF-8" }, - "Document": { - "us": 11757.4, + "insitu (copy)": { + "us": 10256.0, "level": "full" }, "Document (no encoding check)": { - "us": 12107.1, + "us": 11596.0, "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 11625.7, + "level": "full" + }, + "Document": { + "us": 11835.8, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 11856.9, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 12182.2, + "level": "no UTF-8" + }, + "Document (raw numbers)": { + "us": 12304.4, + "level": "full" } } }, "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 2442.0, + "us": 2585.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 2322.9, + "us": 2447.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 2322.9, + "us": 2447.5, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 2442.0, + "us": 2585.2, "level": "full" }, "Value": { - "us": 13892.3, + "us": 13748.4, "level": "full" } } @@ -3394,21 +6395,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 2246.6, + "us": 2283.1, "level": "full" }, "best_any": { "variant": "structs", - "us": 2246.6, + "us": 2283.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 2246.6, + "us": 2283.1, "level": "full" }, "Value": { - "us": 3718.3, + "us": 3833.4, "level": "full" } } @@ -3416,21 +6419,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 4915.3, + "us": 4997.1, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 4915.3, + "us": 4997.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 4915.3, + "us": 4997.1, "level": "full" }, "borrowed (copy)": { - "us": 10315.4, + "us": 10749.4, "level": "full" } } @@ -3440,25 +6445,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 91621.8, + "us": 91118.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 91621.8, + "us": 91118.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 57172.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 57172.0, "level": "full" }, "variants": { "read (reused)": { - "us": 54486.1, + "us": 57172.0, "level": "full" }, "parse": { - "us": 91621.8, + "us": 91118.6, "level": "full" }, "structs (from_json)": { - "us": 110708.7, + "us": 107244.8, "level": "full" } } @@ -3466,21 +6481,23 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 605646.4, + "us": 601494.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 605646.4, + "us": 601494.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 605646.4, + "us": 601494.9, "level": "full" }, "structs (from_json)": { - "us": 618827.0, + "us": 612174.1, "level": "full" } } @@ -3488,21 +6505,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 139622.7, + "us": 143238.5, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 139622.7, + "us": 143238.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 70176.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 70176.2, "level": "full" }, "variants": { + "read (reused allocator)": { + "us": 70176.2, + "level": "full" + }, "insitu (copy)": { - "us": 139622.7, + "us": 143238.5, "level": "full" }, "read": { - "us": 141927.9, + "us": 144039.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 146604.8, "level": "full" } } @@ -3510,29 +6545,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 129838.2, + "us": 128921.4, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 50352.2, + "variant": "On-Demand (key selectors)", + "us": 49265.4, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 57618.4, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 30815.4, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 29858.7, + "us": 30815.4, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 49265.4, "level": "partial" }, "On-Demand": { - "us": 50352.2, + "us": 49913.4, "level": "partial" }, "DOM (reused)": { - "us": 60080.8, + "us": 57618.4, "level": "full" }, + "On-Demand structs": { + "us": 70324.6, + "level": "partial" + }, "DOM": { - "us": 129838.2, + "us": 128921.4, "level": "full" } } @@ -3541,12 +6594,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 106865.5, + "us": 112498.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 106865.5, + "us": 112498.2, "level": "no UTF-8" } } @@ -3554,77 +6609,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 96608.5, + "us": 89804.1, "level": "full" }, "best_any": { "variant": "structs", - "us": 74849.3, + "us": 68491.2, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 74849.3, + "us": 68491.2, "level": "partial" }, "structs (validate_skipped)": { - "us": 96608.5, + "us": 89804.1, "level": "full" }, "lazy_json": { - "us": 132104.8, + "us": 125916.7, + "level": "partial" + }, + "generic (double, strict)": { + "us": 276644.6, + "level": "full" + }, + "generic (double)": { + "us": 282248.5, "level": "partial" }, "generic": { - "us": 411698.7, + "us": 358396.1, + "level": "partial" + }, + "generic (strict)": { + "us": 379746.7, "level": "full" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 196136.3, + "variant": "parse_into structs", + "us": 99560.4, "level": "full" }, "best_any": { - "variant": "parse", - "us": 196136.3, + "variant": "parse_into structs", + "us": 99560.4, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 130444.2, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 130444.2, "level": "full" }, "variants": { + "parse_into structs": { + "us": 99560.4, + "level": "full" + }, + "parser (reused)": { + "us": 130444.2, + "level": "full" + }, "parse": { - "us": 196136.3, + "us": 170160.4, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 165343.2, + "us": 165022.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 156011.6, + "us": 153823.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 189516.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 186816.3, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 156011.6, + "us": 153823.7, "level": "no UTF-8" }, "insitu (copy)": { - "us": 165343.2, + "us": 165022.0, + "level": "full" + }, + "Document (raw numbers) (no encoding check)": { + "us": 185864.8, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 186816.3, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 189516.4, "level": "full" }, "Document (no encoding check)": { - "us": 181269.4, + "us": 192007.2, "level": "no UTF-8" }, "Document": { - "us": 269530.7, + "us": 272584.7, + "level": "full" + }, + "Document (raw numbers)": { + "us": 275465.7, "level": "full" } } @@ -3632,25 +6751,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 108385.8, + "us": 114700.9, "level": "full" }, "best_any": { "variant": "from_utf8 + structs", - "us": 108385.8, + "us": 114700.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "from_utf8 + structs": { - "us": 108385.8, + "us": 114700.9, "level": "full" }, "structs": { - "us": 138827.1, + "us": 142510.2, "level": "no UTF-8" }, "Value": { - "us": 560794.9, + "us": 525827.6, "level": "full" } } @@ -3658,21 +6779,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 91995.7, + "us": 91949.7, "level": "full" }, "best_any": { "variant": "structs", - "us": 91995.7, + "us": 91949.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 91995.7, + "us": 91949.7, "level": "full" }, "Value": { - "us": 145370.6, + "us": 135637.3, "level": "full" } } @@ -3680,21 +6803,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 266072.7, + "us": 258565.9, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 266072.7, + "us": 258565.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 266072.7, + "us": 258565.9, "level": "full" }, "borrowed (copy)": { - "us": 328257.2, + "us": 304889.5, "level": "full" } } @@ -3704,69 +6829,99 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 1.6, + "us": 1.7, "level": "full" }, "best_any": { "variant": "parse", + "us": 1.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", "us": 1.6, "level": "full" }, "variants": { "read (reused)": { - "us": 1.5, + "us": 1.6, "level": "full" }, "parse": { - "us": 1.6, + "us": 1.7, "level": "full" }, "structs (from_json)": { - "us": 1.6, + "us": 1.7, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 14.5, + "variant": "structs (from_json)", + "us": 13.9, "level": "full" }, "best_any": { - "variant": "parse", - "us": 14.5, + "variant": "structs (from_json)", + "us": 13.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "parse": { - "us": 14.5, + "structs (from_json)": { + "us": 13.9, "level": "full" }, - "structs (from_json)": { - "us": 14.6, + "parse": { + "us": 14.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 1.7, + "variant": "read (raw numbers)", + "us": 1.8, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 1.7, + "variant": "read (raw numbers)", + "us": 1.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.6, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 1.7, + "read (reused allocator)": { + "us": 1.6, + "level": "full" + }, + "read (raw numbers)": { + "us": 1.8, "level": "full" }, "read": { - "us": 1.8, + "us": 1.9, + "level": "full" + }, + "insitu (copy)": { + "us": 1.9, "level": "full" } } @@ -3778,8 +6933,18 @@ "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 1.3, + "variant": "On-Demand (key selectors)", + "us": 1.2, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.6, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 1.0, "level": "partial" }, "variants": { @@ -3787,10 +6952,18 @@ "us": 1.0, "level": "partial" }, + "On-Demand (key selectors)": { + "us": 1.2, + "level": "partial" + }, "On-Demand": { "us": 1.3, "level": "partial" }, + "On-Demand structs": { + "us": 1.3, + "level": "partial" + }, "DOM (reused)": { "us": 1.6, "level": "full" @@ -3808,6 +6981,8 @@ "us": 1.8, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { "us": 1.8, @@ -3826,6 +7001,8 @@ "us": 1.5, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 1.5, @@ -3836,59 +7013,121 @@ "level": "full" }, "lazy_json": { - "us": 2.4, + "us": 2.5, + "level": "partial" + }, + "generic (double, strict)": { + "us": 10.8, + "level": "full" + }, + "generic (double)": { + "us": 11.0, "level": "partial" }, "generic": { - "us": 13.6, + "us": 13.3, + "level": "partial" + }, + "generic (strict)": { + "us": 13.7, "level": "full" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 6.1, + "variant": "parse_into structs", + "us": 3.6, "level": "full" }, "best_any": { - "variant": "parse", - "us": 6.1, + "variant": "parse_into structs", + "us": 3.6, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 5.8, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 5.8, "level": "full" }, "variants": { + "parse_into structs": { + "us": 3.6, + "level": "full" + }, + "parser (reused)": { + "us": 5.8, + "level": "full" + }, "parse": { - "us": 6.1, + "us": 6.3, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 5.2, + "us": 5.4, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 3.7, + "us": 4.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 7.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7.4, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 3.7, + "us": 4.0, "level": "no UTF-8" }, "insitu (copy)": { - "us": 5.2, + "us": 5.4, "level": "full" }, - "Document (no encoding check)": { + "Document (reused allocator) (no encoding check)": { "us": 7.4, "level": "no UTF-8" }, + "Document (reused allocator)": { + "us": 7.8, + "level": "full" + }, + "Document (raw numbers) (no encoding check)": { + "us": 8.1, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 8.2, + "level": "no UTF-8" + }, + "Document (raw numbers)": { + "us": 12.6, + "level": "full" + }, "Document": { - "us": 11.4, + "us": 12.9, "level": "full" } } @@ -3896,7 +7135,7 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 3.1, + "us": 3.0, "level": "full" }, "best_any": { @@ -3904,17 +7143,19 @@ "us": 3.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 3.0, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 3.1, + "us": 3.0, "level": "full" }, "Value": { - "us": 14.9, + "us": 13.0, "level": "full" } } @@ -3930,13 +7171,15 @@ "us": 2.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 2.0, "level": "full" }, "Value": { - "us": 2.8, + "us": 3.0, "level": "full" } } @@ -3944,21 +7187,791 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 3.6, + "us": 3.7, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 3.6, + "us": 3.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 3.6, + "us": 3.7, "level": "full" }, "borrowed (copy)": { - "us": 5.4, + "us": 5.9, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 270.3, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 270.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 265.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 265.1, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 265.1, + "level": "full" + }, + "parse": { + "us": 270.3, + "level": "full" + }, + "structs (from_json)": { + "us": 275.6, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "structs (from_json)", + "us": 3114.9, + "level": "full" + }, + "best_any": { + "variant": "structs (from_json)", + "us": 3114.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (from_json)": { + "us": 3114.9, + "level": "full" + }, + "parse": { + "us": 3155.8, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 329.7, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 329.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 329.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 329.5, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 329.5, + "level": "full" + }, + "insitu (copy)": { + "us": 329.7, + "level": "full" + }, + "read": { + "us": 332.4, + "level": "full" + }, + "read (raw numbers)": { + "us": 335.3, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 290.9, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 156.8, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 293.2, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 155.1, + "level": "partial" + }, + "variants": { + "On-Demand (reused)": { + "us": 155.1, + "level": "partial" + }, + "On-Demand": { + "us": 156.8, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 160.4, + "level": "partial" + }, + "On-Demand structs": { + "us": 162.5, + "level": "partial" + }, + "DOM": { + "us": 290.9, + "level": "full" + }, + "DOM (reused)": { + "us": 293.2, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 303.5, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 303.5, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "structs (validate_skipped)", + "us": 468.0, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 296.1, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 296.1, + "level": "partial" + }, + "structs (validate_skipped)": { + "us": 468.0, + "level": "full" + }, + "lazy_json": { + "us": 487.3, + "level": "partial" + }, + "generic (double)": { + "us": 2222.6, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2244.9, + "level": "full" + }, + "generic": { + "us": 2740.0, + "level": "partial" + }, + "generic (strict)": { + "us": 2782.1, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse_into structs", + "us": 732.0, + "level": "full" + }, + "best_any": { + "variant": "parse_into structs", + "us": 732.0, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1193.8, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1193.8, + "level": "full" + }, + "variants": { + "parse_into structs": { + "us": 732.0, + "level": "full" + }, + "parser (reused)": { + "us": 1193.8, + "level": "full" + }, + "parse": { + "us": 1199.7, + "level": "full" + } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 905.5, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 851.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1447.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1313.3, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 851.8, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 905.5, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1313.3, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1334.5, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1363.3, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1447.8, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2058.4, + "level": "full" + }, + "Document": { + "us": 2070.1, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + structs", + "us": 543.5, + "level": "full" + }, + "best_any": { + "variant": "from_utf8 + structs", + "us": 543.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "from_utf8 + structs": { + "us": 543.5, + "level": "full" + }, + "structs": { + "us": 580.2, + "level": "no UTF-8" + }, + "Value": { + "us": 3409.8, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "structs", + "us": 374.9, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 374.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 374.9, + "level": "full" + }, + "Value": { + "us": 439.6, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "structs (copy)", + "us": 658.8, + "level": "full" + }, + "best_any": { + "variant": "structs (copy)", + "us": 658.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (copy)": { + "us": 658.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 1225.0, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 514.5, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 514.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 515.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 515.2, + "level": "full" + }, + "variants": { + "parse": { + "us": 514.5, + "level": "full" + }, + "read (reused)": { + "us": 515.2, + "level": "full" + }, + "structs (from_json)": { + "us": 557.1, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse", + "us": 5284.9, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 5284.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 5284.9, + "level": "full" + }, + "structs (from_json)": { + "us": 5328.6, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 495.9, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 495.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 496.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 496.3, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 495.9, + "level": "full" + }, + "read (reused allocator)": { + "us": 496.3, + "level": "full" + }, + "read": { + "us": 497.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 519.3, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 547.3, + "level": "full" + }, + "best_any": { + "variant": "On-Demand (key selectors)", + "us": 329.9, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 549.3, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 334.4, + "level": "partial" + }, + "variants": { + "On-Demand (key selectors)": { + "us": 329.9, + "level": "partial" + }, + "On-Demand (reused)": { + "us": 334.4, + "level": "partial" + }, + "On-Demand": { + "us": 336.3, + "level": "partial" + }, + "On-Demand structs": { + "us": 368.7, + "level": "partial" + }, + "DOM": { + "us": 547.3, + "level": "full" + }, + "DOM (reused)": { + "us": 549.3, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 620.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 620.1, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "structs (validate_skipped)", + "us": 785.6, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 199.4, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 199.4, + "level": "partial" + }, + "structs (validate_skipped)": { + "us": 785.6, + "level": "full" + }, + "lazy_json": { + "us": 1614.7, + "level": "partial" + }, + "generic (double)": { + "us": 3096.9, + "level": "partial" + }, + "generic (double, strict)": { + "us": 3161.5, + "level": "full" + }, + "generic": { + "us": 4633.3, + "level": "partial" + }, + "generic (strict)": { + "us": 4814.5, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse_into structs", + "us": 972.0, + "level": "full" + }, + "best_any": { + "variant": "parse_into structs", + "us": 972.0, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1340.9, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1340.9, + "level": "full" + }, + "variants": { + "parse_into structs": { + "us": 972.0, + "level": "full" + }, + "parse": { + "us": 1340.0, + "level": "full" + }, + "parser (reused)": { + "us": 1340.9, + "level": "full" + } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1289.9, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 1289.9, + "level": "full" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1695.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 1695.8, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 1289.9, + "level": "full" + }, + "insitu (copy) (no encoding check)": { + "us": 1323.3, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1675.0, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1695.8, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1729.5, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1982.0, + "level": "no UTF-8" + }, + "Document": { + "us": 2148.0, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2378.1, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + structs", + "us": 694.2, + "level": "full" + }, + "best_any": { + "variant": "from_utf8 + structs", + "us": 694.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "from_utf8 + structs": { + "us": 694.2, + "level": "full" + }, + "structs": { + "us": 727.6, + "level": "no UTF-8" + }, + "Value": { + "us": 5020.7, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "structs", + "us": 649.8, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 649.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 649.8, + "level": "full" + }, + "Value": { + "us": 866.6, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "structs (copy)", + "us": 1329.8, + "level": "full" + }, + "best_any": { + "variant": "structs (copy)", + "us": 1329.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (copy)": { + "us": 1329.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 3306.8, "level": "full" } } @@ -3969,22 +7982,24 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 531.3, + "variant": "editable", + "us": 531.4, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 531.3, + "variant": "editable", + "us": 531.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 531.3, + "editable": { + "us": 531.4, "level": "full" }, - "editable": { - "us": 551.9, + "editable (source numbers)": { + "us": 536.2, "level": "full" } } @@ -3992,21 +8007,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 3046.2, + "us": 2914.4, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 3046.2, + "us": 2914.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 3046.2, + "us": 2914.4, "level": "full" }, "parse": { - "us": 4465.9, + "us": 4069.8, "level": "full" } } @@ -4014,21 +8031,23 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 801.0, + "us": 797.8, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 801.0, + "us": 797.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) + mut copy": { - "us": 801.0, + "us": 797.8, "level": "full" }, "mut copy": { - "us": 810.0, + "us": 801.9, "level": "full" } } @@ -4037,48 +8056,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 628.7, + "us": 623.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 628.7, + "us": 623.9, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 3547.1, + "variant": "generic (strict)", + "us": 3451.0, "level": "full" }, "best_any": { "variant": "generic", - "us": 3547.1, - "level": "full" + "us": 3331.6, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 3547.1, + "us": 3331.6, + "level": "partial" + }, + "generic (strict)": { + "us": 3451.0, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 1770.8, + "us": 1755.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 1770.8, + "us": 1755.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 1770.8, + "us": 1755.4, "level": "full" } } @@ -4086,29 +8119,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1983.2, + "us": 1980.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1799.3, + "us": 1823.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 1799.3, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 1980.9, + "us": 1823.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1983.2, + "us": 1980.7, "level": "full" }, + "Document (no encoding check)": { + "us": 2006.6, + "level": "no UTF-8" + }, "Document": { - "us": 2788.5, + "us": 2730.3, "level": "full" } } @@ -4116,17 +8151,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 4474.5, + "us": 4036.2, "level": "full" }, "best_any": { "variant": "Value", - "us": 4474.5, + "us": 4036.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 4474.5, + "us": 4036.2, "level": "full" } } @@ -4134,17 +8171,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 1188.6, + "us": 1200.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 1188.6, + "us": 1200.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1188.6, + "us": 1200.7, "level": "full" } } @@ -4152,21 +8191,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 2071.4, + "us": 1923.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 2071.4, + "us": 1923.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 2071.4, + "us": 1923.5, "level": "full" }, "owned (copy)": { - "us": 2880.3, + "us": 2634.1, "level": "full" } } @@ -4175,22 +8216,24 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 1081.5, + "variant": "editable", + "us": 1080.8, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 1081.5, + "variant": "editable", + "us": 1080.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 1081.5, + "editable": { + "us": 1080.8, "level": "full" }, - "editable": { - "us": 1081.7, + "editable (source numbers)": { + "us": 1088.5, "level": "full" } } @@ -4198,43 +8241,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 5086.9, + "us": 5182.3, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 5086.9, + "us": 5182.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 5086.9, + "us": 5182.3, "level": "full" }, "parse": { - "us": 6376.5, + "us": 6440.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 1640.9, + "variant": "insitu (copy) + mut copy", + "us": 1644.9, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 1640.9, + "variant": "insitu (copy) + mut copy", + "us": 1644.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "mut copy": { - "us": 1640.9, + "insitu (copy) + mut copy": { + "us": 1644.9, "level": "full" }, - "insitu (copy) + mut copy": { - "us": 1644.6, + "mut copy": { + "us": 1647.6, "level": "full" } } @@ -4243,48 +8290,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 1454.9, + "us": 1445.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1454.9, + "us": 1445.0, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 6079.8, + "variant": "generic (strict)", + "us": 6456.6, "level": "full" }, "best_any": { "variant": "generic", - "us": 6079.8, - "level": "full" + "us": 6197.8, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 6079.8, + "us": 6197.8, + "level": "partial" + }, + "generic (strict)": { + "us": 6456.6, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 2496.5, + "us": 2482.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 2496.5, + "us": 2482.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 2496.5, + "us": 2482.2, "level": "full" } } @@ -4292,29 +8353,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2858.8, + "us": 2969.4, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 2858.8, - "level": "full" + "variant": "insitu (copy) (no encoding check)", + "us": 2810.1, + "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy)": { - "us": 2858.8, - "level": "full" - }, "insitu (copy) (no encoding check)": { - "us": 2873.5, + "us": 2810.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2887.2, + "us": 2843.5, "level": "no UTF-8" }, + "insitu (copy)": { + "us": 2969.4, + "level": "full" + }, "Document": { - "us": 3181.2, + "us": 3245.3, "level": "full" } } @@ -4322,17 +8385,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 6922.5, + "us": 7180.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 6922.5, + "us": 7180.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6922.5, + "us": 7180.9, "level": "full" } } @@ -4340,17 +8405,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2383.6, + "us": 2415.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 2383.6, + "us": 2415.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2383.6, + "us": 2415.5, "level": "full" } } @@ -4358,21 +8425,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 4465.1, + "us": 4575.1, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 4465.1, + "us": 4575.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 4465.1, + "us": 4575.1, "level": "full" }, "owned (copy)": { - "us": 5204.4, + "us": 5459.1, "level": "full" } } @@ -4382,21 +8451,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 2546.0, + "us": 2605.5, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 2546.0, + "us": 2605.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 2546.0, + "us": 2605.5, "level": "full" }, "editable": { - "us": 5800.7, + "us": 5913.6, "level": "full" } } @@ -4404,43 +8475,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 15464.1, + "us": 15283.9, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 15464.1, + "us": 15283.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 15464.1, + "us": 15283.9, "level": "full" }, "parse": { - "us": 15816.1, + "us": 16804.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 7402.3, + "variant": "insitu (copy) + mut copy", + "us": 7429.9, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 7402.3, + "variant": "insitu (copy) + mut copy", + "us": 7429.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "mut copy": { - "us": 7402.3, + "insitu (copy) + mut copy": { + "us": 7429.9, "level": "full" }, - "insitu (copy) + mut copy": { - "us": 7588.0, + "mut copy": { + "us": 7625.0, "level": "full" } } @@ -4449,48 +8524,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 8594.2, + "us": 8362.8, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 8594.2, + "us": 8362.8, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 22146.4, + "variant": "generic (strict)", + "us": 21020.9, "level": "full" }, "best_any": { - "variant": "generic", - "us": 22146.4, + "variant": "generic (strict)", + "us": 21020.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 22146.4, + "generic (strict)": { + "us": 21020.9, "level": "full" + }, + "generic": { + "us": 22755.6, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 12503.9, + "us": 12290.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 12503.9, + "us": 12290.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 12503.9, + "us": 12290.8, "level": "full" } } @@ -4498,47 +8587,51 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 19769.3, + "us": 19674.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 19394.3, + "us": 19176.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 19394.3, + "us": 19176.2, "level": "no UTF-8" }, "insitu (copy)": { - "us": 19769.3, + "us": 19674.7, + "level": "full" + }, + "Document": { + "us": 20936.6, "level": "full" }, "Document (no encoding check)": { - "us": 21121.9, + "us": 21439.0, "level": "no UTF-8" - }, - "Document": { - "us": 21351.1, - "level": "full" } } }, "serde_json": { "best": { "variant": "Value", - "us": 18301.0, + "us": 17371.4, "level": "full" }, "best_any": { "variant": "Value", - "us": 18301.0, + "us": 17371.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 18301.0, + "us": 17371.4, "level": "full" } } @@ -4546,17 +8639,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 8007.1, + "us": 7957.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 8007.1, + "us": 7957.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 8007.1, + "us": 7957.7, "level": "full" } } @@ -4564,21 +8659,23 @@ "simd-json": { "best": { "variant": "owned (copy)", - "us": 16360.2, + "us": 15746.3, "level": "full" }, "best_any": { "variant": "owned (copy)", - "us": 16360.2, + "us": 15746.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "owned (copy)": { - "us": 16360.2, + "us": 15746.3, "level": "full" }, "borrowed (copy)": { - "us": 16446.2, + "us": 16036.0, "level": "full" } } @@ -4587,22 +8684,24 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 197693.5, + "variant": "editable", + "us": 174421.9, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 197693.5, + "variant": "editable", + "us": 174421.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 197693.5, + "editable": { + "us": 174421.9, "level": "full" }, - "editable": { - "us": 198866.9, + "editable (source numbers)": { + "us": 194895.9, "level": "full" } } @@ -4610,43 +8709,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 863465.4, + "us": 842581.3, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 863465.4, + "us": 842581.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 863465.4, + "us": 842581.3, "level": "full" }, "parse": { - "us": 1225477.2, + "us": 1078052.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 313181.5, + "variant": "mut copy", + "us": 297561.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 313181.5, + "variant": "mut copy", + "us": 297561.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 313181.5, + "mut copy": { + "us": 297561.7, "level": "full" }, - "mut copy": { - "us": 336588.9, + "insitu (copy) + mut copy": { + "us": 309156.7, "level": "full" } } @@ -4655,48 +8758,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 185870.5, + "us": 188709.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 185870.5, + "us": 188709.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 937712.0, + "variant": "generic (strict)", + "us": 737297.5, "level": "full" }, "best_any": { "variant": "generic", - "us": 937712.0, - "level": "full" + "us": 736994.6, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 937712.0, + "us": 736994.6, + "level": "partial" + }, + "generic (strict)": { + "us": 737297.5, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 311015.4, + "us": 331024.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 311015.4, + "us": 331024.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 311015.4, + "us": 331024.2, "level": "full" } } @@ -4704,29 +8821,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 298015.0, + "us": 306063.8, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 286230.6, + "us": 301160.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 286230.6, + "us": 301160.1, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 305749.8, "level": "no UTF-8" }, "insitu (copy)": { - "us": 298015.0, + "us": 306063.8, "level": "full" }, - "Document (no encoding check)": { - "us": 314163.2, - "level": "no UTF-8" - }, "Document": { - "us": 402509.8, + "us": 390430.5, "level": "full" } } @@ -4734,17 +8853,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 805289.9, + "us": 843034.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 805289.9, + "us": 843034.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 805289.9, + "us": 843034.0, "level": "full" } } @@ -4752,17 +8873,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 413714.2, + "us": 421718.3, "level": "full" }, "best_any": { "variant": "Value", - "us": 413714.2, + "us": 421718.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 413714.2, + "us": 421718.3, "level": "full" } } @@ -4770,21 +8893,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 416658.4, + "us": 435817.2, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 416658.4, + "us": 435817.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 416658.4, + "us": 435817.2, "level": "full" }, "owned (copy)": { - "us": 701262.6, + "us": 696004.8, "level": "full" } } @@ -4793,22 +8918,24 @@ "status": { "nlohmann json_document": { "best": { - "variant": "editable", + "variant": "editable (source numbers)", "us": 3.1, "level": "full" }, "best_any": { - "variant": "editable", + "variant": "editable (source numbers)", "us": 3.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "editable": { + "editable (source numbers)": { "us": 3.1, "level": "full" }, - "editable (source numbers)": { - "us": 3.1, + "editable": { + "us": 3.4, "level": "full" } } @@ -4816,21 +8943,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 13.8, + "us": 14.8, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 13.8, + "us": 14.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 13.8, + "us": 14.8, "level": "full" }, "parse": { - "us": 17.2, + "us": 17.5, "level": "full" } } @@ -4838,21 +8967,23 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 3.7, + "us": 4.1, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 3.7, + "us": 4.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) + mut copy": { - "us": 3.7, + "us": 4.1, "level": "full" }, "mut copy": { - "us": 3.8, + "us": 4.2, "level": "full" } } @@ -4861,48 +8992,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 3.5, + "us": 3.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3.5, + "us": 3.6, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 15.6, + "variant": "generic (strict)", + "us": 16.7, "level": "full" }, "best_any": { "variant": "generic", - "us": 15.6, - "level": "full" + "us": 16.1, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 15.6, + "us": 16.1, + "level": "partial" + }, + "generic (strict)": { + "us": 16.7, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 8.6, + "us": 9.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 8.6, + "us": 9.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 8.6, + "us": 9.5, "level": "full" } } @@ -4910,29 +9055,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 9.0, + "us": 9.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 7.5, + "us": 7.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 7.5, + "us": 7.6, "level": "no UTF-8" }, "insitu (copy)": { - "us": 9.0, + "us": 9.3, "level": "full" }, "Document (no encoding check)": { - "us": 11.1, + "us": 11.5, "level": "no UTF-8" }, "Document": { - "us": 15.5, + "us": 17.3, "level": "full" } } @@ -4940,17 +9087,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 21.2, + "us": 16.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 21.2, + "us": 16.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 21.2, + "us": 16.9, "level": "full" } } @@ -4958,17 +9107,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 6.6, + "us": 6.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 6.6, + "us": 6.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6.6, + "us": 6.9, "level": "full" } } @@ -4976,21 +9127,491 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 9.0, + "us": 9.6, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 9.0, + "us": 9.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 9.0, + "us": 9.6, "level": "full" }, "owned (copy)": { - "us": 14.6, + "us": 14.3, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "editable", + "us": 472.2, + "level": "full" + }, + "best_any": { + "variant": "editable", + "us": 472.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "editable": { + "us": 472.2, + "level": "full" + }, + "editable (source numbers)": { + "us": 474.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "ordered_json", + "us": 2830.8, + "level": "full" + }, + "best_any": { + "variant": "ordered_json", + "us": 2830.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "ordered_json": { + "us": 2830.8, + "level": "full" + }, + "parse": { + "us": 3877.1, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "mut copy", + "us": 706.5, + "level": "full" + }, + "best_any": { + "variant": "mut copy", + "us": 706.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "mut copy": { + "us": 706.5, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 708.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 515.0, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 515.0, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 3210.4, + "level": "full" + }, + "best_any": { + "variant": "generic", + "us": 3119.2, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 3119.2, + "level": "partial" + }, + "generic (strict)": { + "us": 3210.4, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse", + "us": 1648.3, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 1648.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 1648.3, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1575.4, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1533.6, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1533.6, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1575.4, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1918.8, + "level": "no UTF-8" + }, + "Document": { + "us": 2649.9, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 3752.3, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 3752.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 3752.3, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 1050.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 1050.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 1050.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 1851.6, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 1851.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 1851.6, + "level": "full" + }, + "owned (copy)": { + "us": 2606.9, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "editable", + "us": 833.5, + "level": "full" + }, + "best_any": { + "variant": "editable", + "us": 833.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "editable": { + "us": 833.5, + "level": "full" + }, + "editable (source numbers)": { + "us": 848.3, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "ordered_json", + "us": 4812.3, + "level": "full" + }, + "best_any": { + "variant": "ordered_json", + "us": 4812.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "ordered_json": { + "us": 4812.3, + "level": "full" + }, + "parse": { + "us": 6037.5, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "mut copy", + "us": 1174.2, + "level": "full" + }, + "best_any": { + "variant": "mut copy", + "us": 1174.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "mut copy": { + "us": 1174.2, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 1176.7, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 1107.7, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 1107.7, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 5583.7, + "level": "full" + }, + "best_any": { + "variant": "generic", + "us": 5361.4, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 5361.4, + "level": "partial" + }, + "generic (strict)": { + "us": 5583.7, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse", + "us": 2195.9, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 2195.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 2195.9, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 2234.3, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 2234.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy)": { + "us": 2234.3, + "level": "full" + }, + "insitu (copy) (no encoding check)": { + "us": 2265.9, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 2734.5, + "level": "no UTF-8" + }, + "Document": { + "us": 3108.0, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 5491.4, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 5491.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 5491.4, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 2034.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 2034.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 2034.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 4140.4, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 4140.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 4140.4, + "level": "full" + }, + "owned (copy)": { + "us": 5070.4, "level": "full" } } @@ -5002,25 +9623,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 456.7, + "us": 461.3, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 456.7, + "us": 461.3, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 472.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 472.3, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 456.7, + "us": 461.3, "level": "full" }, "read + dump (reused)": { - "us": 468.2, + "us": 472.3, "level": "full" }, "parse + dump": { - "us": 482.3, + "us": 480.1, "level": "full" } } @@ -5028,39 +9659,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 4167.8, + "us": 3821.9, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 4167.8, + "us": 3821.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 4167.8, + "us": 3821.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 658.0, + "variant": "insitu (copy) + write", + "us": 622.1, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 658.0, + "variant": "insitu (copy) + write", + "us": 622.1, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 638.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 638.8, "level": "full" }, "variants": { - "read + write": { - "us": 658.0, + "insitu (copy) + write": { + "us": 622.1, "level": "full" }, - "insitu (copy) + write": { - "us": 659.3, + "read + write": { + "us": 622.9, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 629.3, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 638.8, "level": "full" } } @@ -5068,25 +9719,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 799.1, + "us": 787.4, "level": "full" }, "best_any": { "variant": "minify", - "us": 104.4, + "us": 104.0, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 788.1, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 788.1, + "level": "full" + }, "variants": { "minify": { - "us": 104.4, + "us": 104.0, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 798.8, + "DOM + to_string": { + "us": 787.4, "level": "full" }, - "DOM + to_string": { - "us": 799.1, + "DOM (reused) + to_string": { + "us": 788.1, "level": "full" } } @@ -5095,90 +9756,134 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 632.8, + "us": 633.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 632.8, + "us": 633.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 3393.7, + "variant": "generic (strict)", + "us": 3331.7, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 419.2, + "us": 416.2, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 419.2, + "us": 416.2, "level": "partial" }, "generic": { - "us": 3393.7, + "us": 3246.1, + "level": "partial" + }, + "generic (strict)": { + "us": 3331.7, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1803.1, + "us": 1771.6, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1803.1, + "us": 1771.6, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1765.0, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1765.0, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 1765.0, + "level": "full" + }, "parse + serialize": { - "us": 1803.1, + "us": 1771.6, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer (raw numbers)", - "us": 2559.6, + "variant": "SAX to Writer", + "us": 2458.1, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1820.0, + "variant": "SAX to Writer (raw numbers) (no encoding check)", + "us": 1760.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2148.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2028.8, "level": "no UTF-8" }, "variants": { - "SAX to Writer (no encoding check)": { - "us": 1820.0, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 1760.5, "level": "no UTF-8" }, - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1866.5, + "SAX to Writer (no encoding check)": { + "us": 1764.0, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2096.1, + "us": 2015.1, "level": "no UTF-8" }, - "SAX to Writer (raw numbers)": { - "us": 2559.6, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2028.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 2148.1, "level": "full" }, "SAX to Writer": { - "us": 2606.5, + "us": 2458.1, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 2476.6, "level": "full" }, "Document + Writer": { - "us": 2866.1, + "us": 2761.1, "level": "full" } } @@ -5186,17 +9891,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 4081.3, + "us": 4220.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 4081.3, + "us": 4220.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 4081.3, + "us": 4220.0, "level": "full" } } @@ -5204,17 +9911,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 987.7, + "us": 1003.1, "level": "full" }, "best_any": { "variant": "Value", - "us": 987.7, + "us": 1003.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 987.7, + "us": 1003.1, "level": "full" } } @@ -5222,17 +9931,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 1924.3, + "us": 1877.7, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 1924.3, + "us": 1877.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 1924.3, + "us": 1877.7, "level": "full" } } @@ -5242,25 +9953,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 979.5, + "us": 969.4, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 979.5, + "us": 969.4, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 993.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 993.6, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 979.5, + "us": 969.4, "level": "full" }, "read + dump (reused)": { - "us": 996.2, + "us": 993.6, "level": "full" }, "parse + dump": { - "us": 1001.0, + "us": 994.7, "level": "full" } } @@ -5268,39 +9989,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 6252.7, + "us": 6430.7, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 6252.7, + "us": 6430.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 6252.7, + "us": 6430.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 1268.4, + "variant": "read (raw numbers) + write", + "us": 1212.2, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 1268.4, + "variant": "read (raw numbers) + write", + "us": 1212.2, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 1377.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 1377.6, "level": "full" }, "variants": { + "read (raw numbers) + write": { + "us": 1212.2, + "level": "full" + }, "insitu (copy) + write": { - "us": 1268.4, + "us": 1263.8, "level": "full" }, "read + write": { - "us": 1269.2, + "us": 1274.1, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 1377.6, "level": "full" } } @@ -5308,25 +10049,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1460.9, + "us": 1299.8, "level": "full" }, "best_any": { "variant": "minify", - "us": 246.2, + "us": 247.0, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 1300.0, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 1300.0, + "level": "full" + }, "variants": { "minify": { - "us": 246.2, + "us": 247.0, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 1428.7, + "DOM + to_string": { + "us": 1299.8, "level": "full" }, - "DOM + to_string": { - "us": 1460.9, + "DOM (reused) + to_string": { + "us": 1300.0, "level": "full" } } @@ -5335,52 +10086,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1436.3, + "us": 1434.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1436.3, + "us": 1434.9, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 6016.3, + "variant": "generic (strict)", + "us": 6408.3, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 1300.8, + "us": 1297.9, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 1300.8, + "us": 1297.9, "level": "partial" }, "generic": { - "us": 6016.3, + "us": 6115.8, + "level": "partial" + }, + "generic (strict)": { + "us": 6408.3, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2480.2, + "us": 2495.1, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2480.2, + "us": 2495.1, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 2451.5, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 2451.5, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 2451.5, + "level": "full" + }, "parse + serialize": { - "us": 2480.2, + "us": 2495.1, "level": "full" } } @@ -5388,37 +10165,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 2810.5, + "us": 2872.9, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 2456.2, + "us": 2494.3, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2932.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator)", + "us": 2932.5, + "level": "full" + }, "variants": { "SAX to Writer (no encoding check)": { - "us": 2456.2, + "us": 2494.3, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2675.5, + "us": 2752.3, + "level": "no UTF-8" + }, + "Document + Writer (no encoding check)": { + "us": 2834.8, "level": "no UTF-8" }, "SAX to Writer": { - "us": 2810.5, + "us": 2872.9, "level": "full" }, - "Document + Writer (no encoding check)": { - "us": 2810.7, + "Document + Writer (reused allocator)": { + "us": 2932.5, + "level": "full" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2938.9, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 3152.2, + "us": 3183.1, "level": "full" }, "Document + Writer": { - "us": 3214.9, + "us": 3307.1, "level": "full" } } @@ -5426,17 +10221,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 6879.5, + "us": 6875.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 6879.5, + "us": 6875.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6879.5, + "us": 6875.5, "level": "full" } } @@ -5444,17 +10241,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2093.3, + "us": 2174.1, "level": "full" }, "best_any": { "variant": "Value", - "us": 2093.3, + "us": 2174.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2093.3, + "us": 2174.1, "level": "full" } } @@ -5462,17 +10261,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 4375.1, + "us": 4655.1, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 4375.1, + "us": 4655.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 4375.1, + "us": 4655.1, "level": "full" } } @@ -5482,25 +10283,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 2569.0, + "us": 2535.5, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 2569.0, + "us": 2535.5, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 5622.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 5622.8, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 2569.0, - "level": "full" - }, - "parse + dump": { - "us": 5856.1, + "us": 2535.5, "level": "full" }, "read + dump (reused)": { - "us": 5942.1, + "us": 5622.8, + "level": "full" + }, + "parse + dump": { + "us": 5655.2, "level": "full" } } @@ -5508,39 +10319,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 16655.9, + "us": 15804.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 16655.9, + "us": 15804.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 16655.9, + "us": 15804.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 6934.0, + "variant": "read (raw numbers) + write", + "us": 2854.2, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 6934.0, + "variant": "read (raw numbers) + write", + "us": 2854.2, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 6648.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 6648.3, "level": "full" }, "variants": { + "read (raw numbers) + write": { + "us": 2854.2, + "level": "full" + }, "insitu (copy) + write": { - "us": 6934.0, + "us": 6623.7, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 6648.3, "level": "full" }, "read + write": { - "us": 7267.1, + "us": 6657.2, "level": "full" } } @@ -5548,25 +10379,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 15172.6, + "us": 8943.6, "level": "full" }, "best_any": { "variant": "minify", - "us": 364.6, + "us": 366.9, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 8896.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 8896.8, + "level": "full" + }, "variants": { "minify": { - "us": 364.6, + "us": 366.9, "level": "partial" }, "DOM (reused) + to_string": { - "us": 14978.9, + "us": 8896.8, "level": "full" }, "DOM + to_string": { - "us": 15172.6, + "us": 8943.6, "level": "full" } } @@ -5575,52 +10416,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 8992.1, + "us": 8403.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 8992.1, + "us": 8403.6, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 23222.8, + "variant": "generic (strict)", + "us": 21303.1, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 2832.4, + "us": 2661.4, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 2832.4, + "us": 2661.4, "level": "partial" }, - "generic": { - "us": 23222.8, + "generic (strict)": { + "us": 21303.1, "level": "full" + }, + "generic": { + "us": 21317.1, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 13545.3, + "us": 12783.4, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 13545.3, + "us": 12783.4, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 12098.1, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 12098.1, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 12098.1, + "level": "full" + }, "parse + serialize": { - "us": 13545.3, + "us": 12783.4, "level": "full" } } @@ -5628,37 +10495,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 15169.9, + "us": 14212.0, "level": "full" }, "best_any": { "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 15167.0, + "us": 14021.7, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 20621.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator)", + "us": 20621.2, + "level": "full" + }, "variants": { "SAX to Writer (raw numbers) (no encoding check)": { - "us": 15167.0, + "us": 14021.7, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 15169.9, + "us": 14212.0, "level": "full" }, - "SAX to Writer (no encoding check)": { - "us": 21770.0, - "level": "no UTF-8" - }, - "Document + Writer": { - "us": 22159.5, + "Document + Writer (reused allocator)": { + "us": 20621.2, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 22784.5, + "us": 20765.8, + "level": "no UTF-8" + }, + "Document + Writer": { + "us": 21008.6, + "level": "full" + }, + "SAX to Writer (no encoding check)": { + "us": 21152.0, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 21383.2, "level": "no UTF-8" }, "SAX to Writer": { - "us": 23328.6, + "us": 21813.6, "level": "full" } } @@ -5666,17 +10551,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 17248.7, + "us": 17275.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 17248.7, + "us": 17275.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 17248.7, + "us": 17275.8, "level": "full" } } @@ -5684,17 +10571,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 7774.6, + "us": 7753.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 7774.6, + "us": 7753.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 7774.6, + "us": 7753.0, "level": "full" } } @@ -5702,17 +10591,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 15278.3, + "us": 15954.8, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 15278.3, + "us": 15954.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 15278.3, + "us": 15954.8, "level": "full" } } @@ -5721,26 +10612,36 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 157051.6, + "variant": "parse + dump", + "us": 147811.8, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 157051.6, + "variant": "parse + dump", + "us": 147811.8, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 113163.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 113163.4, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 118671.3, - "level": "full" - }, - "parse + dump (source numbers)": { - "us": 157051.6, + "us": 113163.4, "level": "full" }, "parse + dump": { - "us": 159532.7, + "us": 147811.8, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 151015.7, "level": "full" } } @@ -5748,39 +10649,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 777124.8, + "us": 737629.0, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 777124.8, + "us": 737629.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 777124.8, + "us": 737629.0, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 210677.3, + "variant": "read + write", + "us": 198884.3, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 210677.3, + "variant": "read + write", + "us": 198884.3, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 102746.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 102746.1, "level": "full" }, "variants": { - "insitu (copy) + write": { - "us": 210677.3, + "read + write (reused allocator)": { + "us": 102746.1, "level": "full" }, "read + write": { - "us": 210865.1, + "us": 198884.3, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 200055.1, + "level": "full" + }, + "insitu (copy) + write": { + "us": 202288.9, "level": "full" } } @@ -5788,25 +10709,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 310524.3, + "us": 295040.8, "level": "full" }, "best_any": { "variant": "minify", - "us": 47396.7, + "us": 46756.5, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 233411.0, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 233411.0, + "level": "full" + }, "variants": { "minify": { - "us": 47396.7, + "us": 46756.5, "level": "partial" }, "DOM (reused) + to_string": { - "us": 231143.4, + "us": 233411.0, "level": "full" }, "DOM + to_string": { - "us": 310524.3, + "us": 295040.8, "level": "full" } } @@ -5815,90 +10746,134 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 178112.8, + "us": 179297.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 178112.8, + "us": 179297.5, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 512061.4, + "variant": "generic (strict)", + "us": 494207.6, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 92189.7, + "us": 93100.9, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 92189.7, + "us": 93100.9, "level": "partial" }, "generic": { - "us": 512061.4, + "us": 468852.3, + "level": "partial" + }, + "generic (strict)": { + "us": 494207.6, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 324720.8, + "us": 304037.1, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 324720.8, + "us": 304037.1, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 252371.2, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 252371.2, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 252371.2, + "level": "full" + }, "parse + serialize": { - "us": 324720.8, + "us": 304037.1, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer (raw numbers)", - "us": 355670.8, + "variant": "SAX to Writer", + "us": 353444.3, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 277281.0, + "us": 271282.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 315448.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 304517.8, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 277281.0, + "us": 271282.0, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 277975.6, + "us": 281002.0, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 304517.8, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 307801.0, + "us": 308117.9, "level": "no UTF-8" }, - "SAX to Writer (raw numbers)": { - "us": 355670.8, + "Document + Writer (reused allocator)": { + "us": 315448.0, "level": "full" }, "SAX to Writer": { - "us": 360474.5, + "us": 353444.3, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 355989.1, "level": "full" }, "Document + Writer": { - "us": 390895.4, + "us": 409086.8, "level": "full" } } @@ -5906,17 +10881,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 615033.2, + "us": 628191.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 615033.2, + "us": 628191.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 615033.2, + "us": 628191.9, "level": "full" } } @@ -5924,17 +10901,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 217697.4, + "us": 217354.2, "level": "full" }, "best_any": { "variant": "Value", - "us": 217697.4, + "us": 217354.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 217697.4, + "us": 217354.2, "level": "full" } } @@ -5942,17 +10921,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 419473.7, + "us": 419412.0, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 419473.7, + "us": 419412.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 419473.7, + "us": 419412.0, "level": "full" } } @@ -5961,20 +10942,26 @@ "status": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 2.4, + "variant": "parse + dump", + "us": 2.5, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", + "variant": "parse + dump", + "us": 2.5, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 2.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", "us": 2.4, "level": "full" }, "variants": { - "parse + dump (source numbers)": { - "us": 2.4, - "level": "full" - }, "read + dump (reused)": { "us": 2.4, "level": "full" @@ -5982,23 +10969,29 @@ "parse + dump": { "us": 2.5, "level": "full" + }, + "parse + dump (source numbers)": { + "us": 2.5, + "level": "full" } } }, "nlohmann json": { "best": { "variant": "parse + dump", - "us": 16.4, + "us": 15.2, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 16.4, + "us": 15.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 16.4, + "us": 15.2, "level": "full" } } @@ -6014,7 +11007,21 @@ "us": 2.9, "level": "full" }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 2.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 2.7, + "level": "full" + }, "variants": { + "read + write (reused allocator)": { + "us": 2.7, + "level": "full" + }, "read + write": { "us": 2.9, "level": "full" @@ -6022,6 +11029,10 @@ "insitu (copy) + write": { "us": 2.9, "level": "full" + }, + "read (raw numbers) + write": { + "us": 2.9, + "level": "full" } } }, @@ -6036,6 +11047,16 @@ "us": 0.5, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 4.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 4.4, + "level": "full" + }, "variants": { "minify": { "us": 0.5, @@ -6058,6 +11079,8 @@ "us": 3.3, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { "us": 3.3, @@ -6067,8 +11090,8 @@ }, "Glaze": { "best": { - "variant": "generic", - "us": 15.1, + "variant": "generic (strict)", + "us": 15.0, "level": "full" }, "best_any": { @@ -6076,31 +11099,55 @@ "us": 1.9, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { "us": 1.9, "level": "partial" }, "generic": { - "us": 15.1, + "us": 14.2, + "level": "partial" + }, + "generic (strict)": { + "us": 15.0, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 8.7, + "us": 8.5, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 8.7, + "us": 8.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 8.2, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 8.2, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 8.2, + "level": "full" + }, "parse + serialize": { - "us": 8.7, + "us": 8.5, "level": "full" } } @@ -6108,33 +11155,51 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 13.6, + "us": 13.5, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 9.4, + "us": 9.6, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 11.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 10.8, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 9.4, + "us": 9.6, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { "us": 10.1, "level": "no UTF-8" }, - "Document + Writer (no encoding check)": { - "us": 11.0, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 10.8, "level": "no UTF-8" }, + "Document + Writer (no encoding check)": { + "us": 11.2, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 11.5, + "level": "full" + }, "SAX to Writer": { - "us": 13.6, + "us": 13.5, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 13.6, + "us": 13.9, "level": "full" }, "Document + Writer": { @@ -6146,17 +11211,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 18.4, + "us": 16.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 18.4, + "us": 16.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 18.4, + "us": 16.7, "level": "full" } } @@ -6164,17 +11231,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 5.3, + "us": 5.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 5.3, + "us": 5.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 5.3, + "us": 5.5, "level": "full" } } @@ -6182,17 +11251,679 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 8.7, + "us": 9.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 8.7, + "us": 9.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 9.5, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse + dump (source numbers)", + "us": 405.5, + "level": "full" + }, + "best_any": { + "variant": "parse + dump (source numbers)", + "us": 405.5, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 414.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 414.0, "level": "full" }, + "variants": { + "parse + dump (source numbers)": { + "us": 405.5, + "level": "full" + }, + "read + dump (reused)": { + "us": 414.0, + "level": "full" + }, + "parse + dump": { + "us": 422.1, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse + dump", + "us": 3614.1, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 3614.1, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse + dump": { + "us": 3614.1, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy) + write", + "us": 542.1, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) + write", + "us": 542.1, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 544.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 544.8, + "level": "full" + }, + "variants": { + "insitu (copy) + write": { + "us": 542.1, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 544.8, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 556.7, + "level": "full" + }, + "read + write": { + "us": 580.0, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM + to_string", + "us": 764.3, + "level": "full" + }, + "best_any": { + "variant": "minify", + "us": 68.6, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 762.0, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 762.0, + "level": "full" + }, + "variants": { + "minify": { + "us": 68.6, + "level": "partial" + }, + "DOM (reused) + to_string": { + "us": 762.0, + "level": "full" + }, + "DOM + to_string": { + "us": 764.3, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document + Serialize", + "us": 538.7, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document + Serialize": { + "us": 538.7, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 3112.6, + "level": "full" + }, + "best_any": { + "variant": "minify_json", + "us": 352.0, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "minify_json": { + "us": 352.0, + "level": "partial" + }, + "generic": { + "us": 3024.1, + "level": "partial" + }, + "generic (strict)": { + "us": 3112.6, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse + serialize", + "us": 1653.8, + "level": "full" + }, + "best_any": { + "variant": "parse + serialize", + "us": 1653.8, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1651.0, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1651.0, + "level": "full" + }, + "variants": { + "parser (reused) + serialize": { + "us": 1651.0, + "level": "full" + }, + "parse + serialize": { + "us": 1653.8, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX to Writer", + "us": 2385.1, + "level": "full" + }, + "best_any": { + "variant": "SAX to Writer (no encoding check)", + "us": 1693.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2095.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 1957.8, + "level": "no UTF-8" + }, + "variants": { + "SAX to Writer (no encoding check)": { + "us": 1693.8, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 1760.5, + "level": "no UTF-8" + }, + "Document + Writer (no encoding check)": { + "us": 1935.4, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 1957.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 2095.0, + "level": "full" + }, + "SAX to Writer": { + "us": 2385.1, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 2435.1, + "level": "full" + }, + "Document + Writer": { + "us": 2681.0, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 4035.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 4035.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 4035.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 860.5, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 860.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 860.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 1851.3, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 1851.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 8.7, + "us": 1851.3, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse + dump (source numbers)", + "us": 733.9, + "level": "full" + }, + "best_any": { + "variant": "parse + dump (source numbers)", + "us": 733.9, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 758.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 758.5, + "level": "full" + }, + "variants": { + "parse + dump (source numbers)": { + "us": 733.9, + "level": "full" + }, + "read + dump (reused)": { + "us": 758.5, + "level": "full" + }, + "parse + dump": { + "us": 763.4, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse + dump", + "us": 6181.1, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 6181.1, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse + dump": { + "us": 6181.1, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read (raw numbers) + write", + "us": 768.7, + "level": "full" + }, + "best_any": { + "variant": "read (raw numbers) + write", + "us": 768.7, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 811.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 811.0, + "level": "full" + }, + "variants": { + "read (raw numbers) + write": { + "us": 768.7, + "level": "full" + }, + "read + write": { + "us": 807.3, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 811.0, + "level": "full" + }, + "insitu (copy) + write": { + "us": 818.8, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM + to_string", + "us": 1150.5, + "level": "full" + }, + "best_any": { + "variant": "minify", + "us": 78.7, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 1146.9, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 1146.9, + "level": "full" + }, + "variants": { + "minify": { + "us": 78.7, + "level": "partial" + }, + "DOM (reused) + to_string": { + "us": 1146.9, + "level": "full" + }, + "DOM + to_string": { + "us": 1150.5, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document + Serialize", + "us": 1112.9, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document + Serialize": { + "us": 1112.9, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 5608.6, + "level": "full" + }, + "best_any": { + "variant": "minify_json", + "us": 665.1, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "minify_json": { + "us": 665.1, + "level": "partial" + }, + "generic": { + "us": 5331.9, + "level": "partial" + }, + "generic (strict)": { + "us": 5608.6, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse + serialize", + "us": 2254.6, + "level": "full" + }, + "best_any": { + "variant": "parse + serialize", + "us": 2254.6, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 2213.7, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 2213.7, + "level": "full" + }, + "variants": { + "parser (reused) + serialize": { + "us": 2213.7, + "level": "full" + }, + "parse + serialize": { + "us": 2254.6, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX to Writer", + "us": 2772.9, + "level": "full" + }, + "best_any": { + "variant": "SAX to Writer (no encoding check)", + "us": 2175.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2801.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator)", + "us": 2801.2, + "level": "full" + }, + "variants": { + "SAX to Writer (no encoding check)": { + "us": 2175.1, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 2547.9, + "level": "no UTF-8" + }, + "Document + Writer (no encoding check)": { + "us": 2658.3, + "level": "no UTF-8" + }, + "SAX to Writer": { + "us": 2772.9, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 2801.2, + "level": "full" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2891.5, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers)": { + "us": 2970.8, + "level": "full" + }, + "Document + Writer": { + "us": 3192.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 5949.5, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 5949.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 5949.5, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 1731.3, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 1731.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 1731.3, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 4193.3, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 4193.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 4193.3, "level": "full" } } @@ -6204,21 +11935,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 138.0, + "us": 139.3, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 138.0, + "us": 139.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 138.0, + "us": 139.3, "level": "n/a" }, "dump": { - "us": 155.2, + "us": 154.5, "level": "n/a" } } @@ -6226,17 +11959,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 433.3, + "us": 430.6, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 433.3, + "us": 430.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 433.3, + "us": 430.6, "level": "n/a" } } @@ -6244,17 +11979,19 @@ "yyjson": { "best": { "variant": "write", - "us": 189.7, + "us": 193.4, "level": "n/a" }, "best_any": { "variant": "write", - "us": 189.7, + "us": 193.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 189.7, + "us": 193.4, "level": "n/a" } } @@ -6262,17 +11999,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 471.2, + "us": 457.3, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 471.2, + "us": 457.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 471.2, + "us": 457.3, "level": "n/a" } } @@ -6280,17 +12019,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 653.4, + "us": 649.4, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 653.4, + "us": 649.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 653.4, + "us": 649.4, "level": "n/a" } } @@ -6298,17 +12039,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 259.1, + "us": 259.6, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 259.1, + "us": 259.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 259.1, + "us": 259.6, "level": "n/a" } } @@ -6316,35 +12059,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 366.7, + "us": 378.6, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 366.7, + "us": 378.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 366.7, + "us": 378.6, + "level": "n/a" + }, + "generic (strict)": { + "us": 412.3, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 454.2, + "us": 451.6, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 454.2, + "us": 451.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 454.2, + "us": 451.6, "level": "n/a" } } @@ -6352,17 +12107,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 562.8, + "us": 559.5, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 562.8, + "us": 559.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 562.8, + "us": 559.5, "level": "n/a" } } @@ -6370,17 +12127,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 442.3, + "us": 445.3, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 442.3, + "us": 445.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 442.3, + "us": 445.3, "level": "n/a" } } @@ -6388,17 +12147,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 604.4, + "us": 597.0, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 604.4, + "us": 597.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 604.4, + "us": 597.0, "level": "n/a" } } @@ -6408,21 +12169,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 228.6, + "us": 231.1, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 228.6, + "us": 231.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 228.6, + "us": 231.1, "level": "n/a" }, "dump": { - "us": 253.4, + "us": 251.6, "level": "n/a" } } @@ -6430,17 +12193,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 606.7, + "us": 605.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 606.7, + "us": 605.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 606.7, + "us": 605.0, "level": "n/a" } } @@ -6448,17 +12213,19 @@ "yyjson": { "best": { "variant": "write", - "us": 320.5, + "us": 320.2, "level": "n/a" }, "best_any": { "variant": "write", - "us": 320.5, + "us": 320.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 320.5, + "us": 320.2, "level": "n/a" } } @@ -6466,17 +12233,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 711.7, + "us": 596.9, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 711.7, + "us": 596.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 711.7, + "us": 596.9, "level": "n/a" } } @@ -6484,17 +12253,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 977.6, + "us": 974.1, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 977.6, + "us": 974.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 977.6, + "us": 974.1, "level": "n/a" } } @@ -6502,17 +12273,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 510.0, + "us": 508.2, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 510.0, + "us": 508.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 510.0, + "us": 508.2, "level": "n/a" } } @@ -6520,35 +12293,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 688.5, + "us": 729.7, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 688.5, + "us": 729.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 688.5, + "us": 729.7, + "level": "n/a" + }, + "generic (strict)": { + "us": 747.7, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 835.0, + "us": 826.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 835.0, + "us": 826.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 835.0, + "us": 826.7, "level": "n/a" } } @@ -6556,17 +12341,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 882.5, + "us": 848.0, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 882.5, + "us": 848.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 882.5, + "us": 848.0, "level": "n/a" } } @@ -6574,17 +12361,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 934.6, + "us": 931.3, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 934.6, + "us": 931.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 934.6, + "us": 931.3, "level": "n/a" } } @@ -6592,17 +12381,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 809.4, + "us": 808.9, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 809.4, + "us": 808.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 809.4, + "us": 808.9, "level": "n/a" } } @@ -6612,21 +12403,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 833.8, + "us": 825.6, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 833.8, + "us": 825.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 833.8, + "us": 825.6, "level": "n/a" }, "dump": { - "us": 3899.3, + "us": 3864.1, "level": "n/a" } } @@ -6634,17 +12427,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 3896.5, + "us": 3893.6, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 3896.5, + "us": 3893.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 3896.5, + "us": 3893.6, "level": "n/a" } } @@ -6652,17 +12447,19 @@ "yyjson": { "best": { "variant": "write", - "us": 3348.8, + "us": 3391.4, "level": "n/a" }, "best_any": { "variant": "write", - "us": 3348.8, + "us": 3391.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 3348.8, + "us": 3391.4, "level": "n/a" } } @@ -6670,17 +12467,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 11156.4, + "us": 5271.9, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 11156.4, + "us": 5271.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 11156.4, + "us": 5271.9, "level": "n/a" } } @@ -6688,17 +12487,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 9071.2, + "us": 9079.7, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 9071.2, + "us": 9079.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 9071.2, + "us": 9079.7, "level": "n/a" } } @@ -6706,53 +12507,67 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 5268.6, + "us": 5333.4, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 5268.6, + "us": 5333.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 5268.6, + "us": 5333.4, "level": "n/a" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 4096.9, + "variant": "generic (strict)", + "us": 4088.4, "level": "n/a" }, "best_any": { - "variant": "generic", - "us": 4096.9, + "variant": "generic (strict)", + "us": 4088.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { + "generic (strict)": { + "us": 4088.4, + "level": "n/a" + }, "generic": { - "us": 4096.9, + "us": 4129.2, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 5468.2, + "us": 5615.2, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 5468.2, + "us": 5615.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 5468.2, + "us": 5615.2, "level": "n/a" } } @@ -6760,17 +12575,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 3978.8, + "us": 3963.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 3978.8, + "us": 3963.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 3978.8, + "us": 3963.8, "level": "n/a" } } @@ -6778,17 +12595,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 3954.2, + "us": 4047.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 3954.2, + "us": 4047.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 3954.2, + "us": 4047.8, "level": "n/a" } } @@ -6796,17 +12615,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 4824.9, + "us": 4816.6, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 4824.9, + "us": 4816.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 4824.9, + "us": 4816.6, "level": "n/a" } } @@ -6815,22 +12636,24 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "dump", - "us": 69593.3, + "variant": "dump (source numbers)", + "us": 66355.2, "level": "n/a" }, "best_any": { - "variant": "dump", - "us": 69593.3, + "variant": "dump (source numbers)", + "us": 66355.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "dump": { - "us": 69593.3, + "dump (source numbers)": { + "us": 66355.2, "level": "n/a" }, - "dump (source numbers)": { - "us": 70109.3, + "dump": { + "us": 67299.0, "level": "n/a" } } @@ -6838,17 +12661,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 126529.1, + "us": 116688.9, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 126529.1, + "us": 116688.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 126529.1, + "us": 116688.9, "level": "n/a" } } @@ -6856,17 +12681,19 @@ "yyjson": { "best": { "variant": "write", - "us": 69581.7, + "us": 68366.9, "level": "n/a" }, "best_any": { "variant": "write", - "us": 69581.7, + "us": 68366.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 69581.7, + "us": 68366.9, "level": "n/a" } } @@ -6874,17 +12701,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 186861.4, + "us": 173760.1, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 186861.4, + "us": 173760.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 186861.4, + "us": 173760.1, "level": "n/a" } } @@ -6892,17 +12721,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 138831.7, + "us": 129698.3, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 138831.7, + "us": 129698.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 138831.7, + "us": 129698.3, "level": "n/a" } } @@ -6910,17 +12741,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 76583.6, + "us": 73211.6, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 76583.6, + "us": 73211.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 76583.6, + "us": 73211.6, "level": "n/a" } } @@ -6928,35 +12761,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 134165.2, + "us": 133699.4, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 134165.2, + "us": 133699.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 134165.2, + "us": 133699.4, + "level": "n/a" + }, + "generic (strict)": { + "us": 142285.7, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 132655.9, + "us": 123766.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 132655.9, + "us": 123766.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 132655.9, + "us": 123766.7, "level": "n/a" } } @@ -6964,17 +12809,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 120716.3, + "us": 129472.9, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 120716.3, + "us": 129472.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 120716.3, + "us": 129472.9, "level": "n/a" } } @@ -6982,17 +12829,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 100888.7, + "us": 104487.1, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 100888.7, + "us": 104487.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 100888.7, + "us": 104487.1, "level": "n/a" } } @@ -7000,17 +12849,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 110710.5, + "us": 114244.7, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 110710.5, + "us": 114244.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 110710.5, + "us": 114244.7, "level": "n/a" } } @@ -7020,21 +12871,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 0.9, + "us": 0.8, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 0.9, + "us": 0.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 0.9, + "us": 0.8, "level": "n/a" }, "dump": { - "us": 1.0, + "us": 0.9, "level": "n/a" } } @@ -7050,6 +12903,8 @@ "us": 1.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { "us": 1.9, @@ -7068,6 +12923,8 @@ "us": 1.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { "us": 1.2, @@ -7086,6 +12943,8 @@ "us": 2.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { "us": 2.9, @@ -7096,17 +12955,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 4.0, + "us": 3.7, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 4.0, + "us": 3.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 4.0, + "us": 3.7, "level": "n/a" } } @@ -7114,17 +12975,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 1.5, + "us": 1.4, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 1.5, + "us": 1.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 1.5, + "us": 1.4, "level": "n/a" } } @@ -7132,19 +12995,29 @@ "Glaze": { "best": { "variant": "generic", - "us": 1.9, + "us": 2.0, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 1.9, + "us": 2.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 1.9, + "us": 2.0, + "level": "n/a" + }, + "generic (strict)": { + "us": 2.3, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { @@ -7158,6 +13031,8 @@ "us": 2.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { "us": 2.5, @@ -7168,17 +13043,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 2.9, + "us": 3.2, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 2.9, + "us": 3.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2.9, + "us": 3.2, "level": "n/a" } } @@ -7186,17 +13063,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2.6, + "us": 2.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 2.6, + "us": 2.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2.6, + "us": 2.8, "level": "n/a" } } @@ -7204,17 +13083,487 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 2.7, + "us": 3.1, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 2.7, + "us": 3.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 2.7, + "us": 3.1, + "level": "n/a" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "dump (source numbers)", + "us": 137.4, + "level": "n/a" + }, + "best_any": { + "variant": "dump (source numbers)", + "us": 137.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump (source numbers)": { + "us": 137.4, + "level": "n/a" + }, + "dump": { + "us": 151.5, + "level": "n/a" + } + } + }, + "nlohmann json": { + "best": { + "variant": "dump", + "us": 433.1, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 433.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 433.1, + "level": "n/a" + } + } + }, + "yyjson": { + "best": { + "variant": "write", + "us": 208.1, + "level": "n/a" + }, + "best_any": { + "variant": "write", + "us": 208.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "write": { + "us": 208.1, + "level": "n/a" + } + } + }, + "simdjson": { + "best": { + "variant": "to_string", + "us": 460.0, + "level": "n/a" + }, + "best_any": { + "variant": "to_string", + "us": 460.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "to_string": { + "us": 460.0, + "level": "n/a" + } + } + }, + "RapidJSON": { + "best": { + "variant": "Writer", + "us": 631.3, + "level": "n/a" + }, + "best_any": { + "variant": "Writer", + "us": 631.3, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Writer": { + "us": 631.3, + "level": "n/a" + } + } + }, + "sonic-cpp": { + "best": { + "variant": "Serialize", + "us": 241.1, + "level": "n/a" + }, + "best_any": { + "variant": "Serialize", + "us": 241.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Serialize": { + "us": 241.1, + "level": "n/a" + } + } + }, + "Glaze": { + "best": { + "variant": "generic", + "us": 378.7, + "level": "n/a" + }, + "best_any": { + "variant": "generic", + "us": 378.7, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 378.7, + "level": "n/a" + }, + "generic (strict)": { + "us": 413.9, + "level": "n/a" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "serialize", + "us": 452.9, + "level": "n/a" + }, + "best_any": { + "variant": "serialize", + "us": 452.9, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "serialize": { + "us": 452.9, + "level": "n/a" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 562.4, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 562.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 562.4, + "level": "n/a" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 442.4, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 442.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 442.4, + "level": "n/a" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed", + "us": 594.0, + "level": "n/a" + }, + "best_any": { + "variant": "borrowed", + "us": 594.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed": { + "us": 594.0, + "level": "n/a" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "dump (source numbers)", + "us": 225.1, + "level": "n/a" + }, + "best_any": { + "variant": "dump (source numbers)", + "us": 225.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump (source numbers)": { + "us": 225.1, + "level": "n/a" + }, + "dump": { + "us": 249.2, + "level": "n/a" + } + } + }, + "nlohmann json": { + "best": { + "variant": "dump", + "us": 604.1, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 604.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 604.1, + "level": "n/a" + } + } + }, + "yyjson": { + "best": { + "variant": "write", + "us": 319.0, + "level": "n/a" + }, + "best_any": { + "variant": "write", + "us": 319.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "write": { + "us": 319.0, + "level": "n/a" + } + } + }, + "simdjson": { + "best": { + "variant": "to_string", + "us": 594.6, + "level": "n/a" + }, + "best_any": { + "variant": "to_string", + "us": 594.6, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "to_string": { + "us": 594.6, + "level": "n/a" + } + } + }, + "RapidJSON": { + "best": { + "variant": "Writer", + "us": 978.3, + "level": "n/a" + }, + "best_any": { + "variant": "Writer", + "us": 978.3, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Writer": { + "us": 978.3, + "level": "n/a" + } + } + }, + "sonic-cpp": { + "best": { + "variant": "Serialize", + "us": 499.0, + "level": "n/a" + }, + "best_any": { + "variant": "Serialize", + "us": 499.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Serialize": { + "us": 499.0, + "level": "n/a" + } + } + }, + "Glaze": { + "best": { + "variant": "generic", + "us": 724.2, + "level": "n/a" + }, + "best_any": { + "variant": "generic", + "us": 724.2, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 724.2, + "level": "n/a" + }, + "generic (strict)": { + "us": 741.2, + "level": "n/a" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "serialize", + "us": 831.0, + "level": "n/a" + }, + "best_any": { + "variant": "serialize", + "us": 831.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "serialize": { + "us": 831.0, + "level": "n/a" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 851.0, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 851.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 851.0, + "level": "n/a" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 908.2, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 908.2, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 908.2, + "level": "n/a" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed", + "us": 788.3, + "level": "n/a" + }, + "best_any": { + "variant": "borrowed", + "us": 788.3, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed": { + "us": 788.3, "level": "n/a" } } diff --git a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc13.json b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc13.json index 4c9f1e598..0bc8a8660 100644 --- a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc13.json +++ b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc13.json @@ -4,25 +4,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 325.3, + "us": 332.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 325.3, + "us": 332.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 329.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 329.7, "level": "full" }, "variants": { "read (reused)": { - "us": 318.4, + "us": 329.7, "level": "full" }, "parse": { - "us": 325.3, + "us": 332.1, "level": "full" }, "accept": { - "us": 331.3, + "us": 334.3, "level": "full" } } @@ -30,21 +40,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 789.1, + "us": 783.3, "level": "full" }, "best_any": { "variant": "accept", - "us": 789.1, + "us": 783.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "accept": { - "us": 789.1, + "us": 783.3, "level": "full" }, "parse": { - "us": 3627.4, + "us": 3308.8, "level": "full" } } @@ -52,21 +64,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 390.5, + "us": 393.2, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 390.5, + "us": 393.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 417.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 417.0, "level": "full" }, "variants": { "insitu (copy)": { - "us": 390.5, + "us": 393.2, "level": "full" }, "read": { - "us": 395.7, + "us": 395.5, + "level": "full" + }, + "read (raw numbers)": { + "us": 396.9, + "level": "full" + }, + "read (reused allocator)": { + "us": 417.0, "level": "full" } } @@ -74,21 +104,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 328.2, + "us": 312.2, "level": "full" }, "best_any": { "variant": "DOM", - "us": 328.2, + "us": 312.2, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 310.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 310.4, "level": "full" }, "variants": { "DOM (reused)": { - "us": 314.9, + "us": 310.4, "level": "full" }, "DOM": { - "us": 328.2, + "us": 312.2, "level": "full" } } @@ -97,12 +137,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 424.6, + "us": 407.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 424.6, + "us": 407.2, "level": "no UTF-8" } } @@ -110,39 +152,2395 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 590.5, + "us": 596.6, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 590.5, + "us": 596.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "validate_json": { - "us": 590.5, + "us": 596.6, + "level": "full" + }, + "generic (double, strict)": { + "us": 2420.5, + "level": "full" + }, + "generic (double)": { + "us": 2447.4, + "level": "partial" + }, + "generic (strict)": { + "us": 3115.3, "level": "full" }, "generic": { - "us": 3234.7, - "level": "full" + "us": 3180.5, + "level": "partial" } } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 737.6, + "us": 724.9, "level": "full" }, "best_any": { "variant": "SAX", - "us": 737.6, + "us": 724.9, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 724.9, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 724.9, "level": "full" }, "variants": { "SAX": { - "us": 737.6, + "us": 724.9, + "level": "full" + }, + "SAX (reused)": { + "us": 724.9, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 743.8, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1395.0, + "level": "full" + }, + "parse": { + "us": 1413.9, + "level": "full" + }, + "parser (reused)": { + "us": 1429.8, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1651.0, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1120.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1596.3, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1487.8, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1120.5, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1364.6, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1382.4, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1487.8, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1514.4, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1596.3, + "level": "full" + }, + "insitu (copy)": { + "us": 1651.0, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2264.3, + "level": "full" + }, + "SAX": { + "us": 2346.2, + "level": "full" + }, + "Document": { + "us": 2347.9, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 621.9, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 480.2, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 480.2, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 621.9, + "level": "full" + }, + "Value": { + "us": 3675.2, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 481.8, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 481.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 481.8, + "level": "full" + }, + "Value": { + "us": 557.9, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 563.4, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 563.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 572.1, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 572.1, + "level": "full" + }, + "variants": { + "tape (copy)": { + "us": 563.4, + "level": "full" + }, + "tape (reused)": { + "us": 572.1, + "level": "full" + }, + "borrowed (copy)": { + "us": 1259.6, + "level": "full" + } + } + } + }, + "citm_catalog": { + "nlohmann json_document": { + "best": { + "variant": "accept", + "us": 764.3, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 764.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 763.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 763.2, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 763.2, + "level": "full" + }, + "accept": { + "us": 764.3, + "level": "full" + }, + "parse": { + "us": 766.6, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 1619.4, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 1619.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 1619.4, + "level": "full" + }, + "parse": { + "us": 5421.6, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read (raw numbers)", + "us": 987.7, + "level": "full" + }, + "best_any": { + "variant": "read (raw numbers)", + "us": 987.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1017.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1017.7, + "level": "full" + }, + "variants": { + "read (raw numbers)": { + "us": 987.7, + "level": "full" + }, + "read": { + "us": 989.0, + "level": "full" + }, + "insitu (copy)": { + "us": 990.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 1017.7, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 730.0, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 730.0, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 726.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 726.4, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 726.4, + "level": "full" + }, + "DOM": { + "us": 730.0, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 1022.2, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 1022.2, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 1406.7, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 1406.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 1406.7, + "level": "full" + }, + "generic (double, strict)": { + "us": 3931.5, + "level": "full" + }, + "generic (double)": { + "us": 3939.8, + "level": "partial" + }, + "generic": { + "us": 5688.5, + "level": "partial" + }, + "generic (strict)": { + "us": 5733.2, + "level": "full" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 924.2, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 924.2, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 986.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 986.0, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 924.2, + "level": "full" + }, + "SAX (reused)": { + "us": 986.0, + "level": "full" + }, + "SAX": { + "us": 986.6, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1718.4, + "level": "full" + }, + "parser (reused)": { + "us": 1804.5, + "level": "full" + }, + "parse": { + "us": 1812.6, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX", + "us": 2232.2, + "level": "full" + }, + "best_any": { + "variant": "SAX (no encoding check)", + "us": 1660.3, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1980.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1921.6, + "level": "no UTF-8" + }, + "variants": { + "SAX (no encoding check)": { + "us": 1660.3, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 1899.3, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1907.9, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1914.7, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1921.6, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1980.1, + "level": "full" + }, + "SAX": { + "us": 2232.2, + "level": "full" + }, + "insitu (copy)": { + "us": 2248.4, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2476.8, + "level": "full" + }, + "Document": { + "us": 2493.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 1439.7, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 1370.7, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 1370.7, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 1439.7, + "level": "full" + }, + "Value": { + "us": 5958.6, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 969.0, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 969.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 969.0, + "level": "full" + }, + "Value": { + "us": 1191.8, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 1402.8, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 1402.8, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 1451.4, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 1451.4, + "level": "full" + }, + "variants": { + "tape (copy)": { + "us": 1402.8, + "level": "full" + }, + "tape (reused)": { + "us": 1451.4, + "level": "full" + }, + "borrowed (copy)": { + "us": 3702.4, + "level": "full" + } + } + } + }, + "canada": { + "nlohmann json_document": { + "best": { + "variant": "accept", + "us": 1691.0, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 1691.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1698.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1698.9, + "level": "full" + }, + "variants": { + "accept": { + "us": 1691.0, + "level": "full" + }, + "parse": { + "us": 1693.8, + "level": "full" + }, + "read (reused)": { + "us": 1698.9, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 4620.7, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 4620.7, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 4620.7, + "level": "full" + }, + "parse": { + "us": 11990.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read (raw numbers)", + "us": 2211.3, + "level": "full" + }, + "best_any": { + "variant": "read (raw numbers)", + "us": 2211.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 5323.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 5323.1, + "level": "full" + }, + "variants": { + "read (raw numbers)": { + "us": 2211.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 5323.1, + "level": "full" + }, + "read": { + "us": 5325.9, + "level": "full" + }, + "insitu (copy)": { + "us": 5329.1, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 3166.1, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 3166.1, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 3181.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 3181.4, + "level": "full" + }, + "variants": { + "DOM": { + "us": 3166.1, + "level": "full" + }, + "DOM (reused)": { + "us": 3181.4, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 3560.0, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 3560.0, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 1843.8, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 1843.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 1843.8, + "level": "full" + }, + "generic (double)": { + "us": 10489.8, + "level": "partial" + }, + "generic (double, strict)": { + "us": 10575.1, + "level": "full" + }, + "generic (strict)": { + "us": 19809.0, + "level": "full" + }, + "generic": { + "us": 19817.0, + "level": "partial" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 1637.3, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 1637.3, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 5293.7, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 5293.7, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 1637.3, + "level": "full" + }, + "parse (numbers: none)": { + "us": 2826.5, + "level": "full" + }, + "SAX": { + "us": 5289.3, + "level": "full" + }, + "SAX (reused)": { + "us": 5293.7, + "level": "full" + }, + "parser (reused)": { + "us": 7092.8, + "level": "full" + }, + "parse": { + "us": 7096.3, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX (raw numbers)", + "us": 10380.1, + "level": "full" + }, + "best_any": { + "variant": "SAX (raw numbers) (no encoding check)", + "us": 10317.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 11270.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 11270.4, + "level": "full" + }, + "variants": { + "SAX (raw numbers) (no encoding check)": { + "us": 10317.1, + "level": "no UTF-8" + }, + "SAX (raw numbers)": { + "us": 10380.1, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 10876.7, + "level": "no UTF-8" + }, + "SAX": { + "us": 10992.0, + "level": "full" + }, + "Document (no encoding check)": { + "us": 11131.3, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 11172.6, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 11242.7, + "level": "full" + }, + "Document (reused allocator)": { + "us": 11270.4, + "level": "full" + }, + "Document": { + "us": 11422.7, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 11463.9, + "level": "no UTF-8" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 2621.0, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 2537.6, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 2537.6, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 2621.0, + "level": "full" + }, + "Value": { + "us": 14488.3, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 2489.1, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 2489.1, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 2489.1, + "level": "full" + }, + "Value": { + "us": 4041.2, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 4629.8, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 4629.8, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 4807.9, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 4807.9, + "level": "full" + }, + "variants": { + "tape (copy)": { + "us": 4629.8, + "level": "full" + }, + "tape (reused)": { + "us": 4807.9, + "level": "full" + }, + "borrowed (copy)": { + "us": 11597.1, + "level": "full" + } + } + } + }, + "jeopardy": { + "nlohmann json_document": { + "best": { + "variant": "accept", + "us": 82408.0, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 82408.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 46736.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 46736.3, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 46736.3, + "level": "full" + }, + "accept": { + "us": 82408.0, + "level": "full" + }, + "parse": { + "us": 83824.3, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 98860.4, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 98860.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 98860.4, + "level": "full" + }, + "parse": { + "us": 558062.0, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 131843.7, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 131843.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 62888.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 62888.0, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 62888.0, + "level": "full" + }, + "read": { + "us": 131843.7, + "level": "full" + }, + "insitu (copy)": { + "us": 136066.7, + "level": "full" + }, + "read (raw numbers)": { + "us": 139255.5, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 123619.9, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 123619.9, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 49738.1, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 49738.1, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 49738.1, + "level": "full" + }, + "DOM": { + "us": 123619.9, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 90971.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 90971.1, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 71645.8, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 71645.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 71645.8, + "level": "full" + }, + "generic (double, strict)": { + "us": 267266.3, + "level": "full" + }, + "generic (double)": { + "us": 268028.8, + "level": "partial" + }, + "generic (strict)": { + "us": 368752.0, + "level": "full" + }, + "generic": { + "us": 373188.8, + "level": "partial" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 62571.3, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 62571.3, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 66460.5, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 66460.5, + "level": "full" + }, + "variants": { + "SAX": { + "us": 62571.3, + "level": "full" + }, + "SAX (numbers: none)": { + "us": 63026.3, + "level": "full" + }, + "SAX (reused)": { + "us": 66460.5, + "level": "full" + }, + "parser (reused)": { + "us": 140960.0, + "level": "full" + }, + "parse (numbers: none)": { + "us": 187974.9, + "level": "full" + }, + "parse": { + "us": 197064.0, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 210971.7, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 157831.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 199112.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 195134.8, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 157831.0, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 167656.7, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 171157.4, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 195134.8, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 196736.9, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 199112.2, + "level": "full" + }, + "insitu (copy)": { + "us": 210971.7, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 279833.9, + "level": "full" + }, + "SAX": { + "us": 280025.2, + "level": "full" + }, + "Document": { + "us": 296620.3, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 65602.4, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 60154.2, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 60154.2, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 65602.4, + "level": "full" + }, + "Value": { + "us": 514855.6, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 55486.2, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 55486.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 55486.2, + "level": "full" + }, + "Value": { + "us": 113431.8, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 212467.4, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 212467.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 142848.3, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 142848.3, + "level": "full" + }, + "variants": { + "tape (reused)": { + "us": 142848.3, + "level": "full" + }, + "tape (copy)": { + "us": 212467.4, + "level": "full" + }, + "borrowed (copy)": { + "us": 297916.2, + "level": "full" + } + } + } + }, + "status": { + "nlohmann json_document": { + "best": { + "variant": "accept", + "us": 1.6, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 1.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1.5, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 1.5, + "level": "full" + }, + "accept": { + "us": 1.6, + "level": "full" + }, + "parse": { + "us": 1.6, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 3.9, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 3.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 3.9, + "level": "full" + }, + "parse": { + "us": 13.2, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 1.6, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 1.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.6, + "level": "full" + }, + "variants": { + "read": { + "us": 1.6, + "level": "full" + }, + "read (reused allocator)": { + "us": 1.6, + "level": "full" + }, + "insitu (copy)": { + "us": 1.7, + "level": "full" + }, + "read (raw numbers)": { + "us": 1.7, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 1.8, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 1.8, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.4, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 1.4, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 1.4, + "level": "full" + }, + "DOM": { + "us": 1.8, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 1.6, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 1.6, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 2.3, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 2.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 2.3, + "level": "full" + }, + "generic (double, strict)": { + "us": 9.2, + "level": "full" + }, + "generic (double)": { + "us": 9.4, + "level": "partial" + }, + "generic": { + "us": 13.3, + "level": "partial" + }, + "generic (strict)": { + "us": 13.9, + "level": "full" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 3.1, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 3.1, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 3.2, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 3.2, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 3.1, + "level": "full" + }, + "SAX": { + "us": 3.2, + "level": "full" + }, + "SAX (reused)": { + "us": 3.2, + "level": "full" + }, + "parser (reused)": { + "us": 6.5, + "level": "full" + }, + "parse": { + "us": 6.6, + "level": "full" + }, + "parse (numbers: none)": { + "us": 6.6, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 7.1, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 3.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 8.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7.9, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 3.8, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 7.0, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 7.1, + "level": "full" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 7.1, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 7.9, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 8.0, + "level": "full" + }, + "Document (no encoding check)": { + "us": 8.2, + "level": "no UTF-8" + }, + "SAX": { + "us": 12.1, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 12.2, + "level": "full" + }, + "Document": { + "us": 12.8, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 2.5, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 1.9, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 1.9, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 2.5, + "level": "full" + }, + "Value": { + "us": 13.9, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 1.8, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 1.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 1.8, + "level": "full" + }, + "Value": { + "us": 2.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 2.9, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 2.9, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 2.4, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 2.4, + "level": "full" + }, + "variants": { + "tape (reused)": { + "us": 2.4, + "level": "full" + }, + "tape (copy)": { + "us": 2.9, + "level": "full" + }, + "borrowed (copy)": { + "us": 5.9, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 281.7, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 281.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 275.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 275.9, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 275.9, + "level": "full" + }, + "parse": { + "us": 281.7, + "level": "full" + }, + "accept": { + "us": 283.4, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 671.4, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 671.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 671.4, + "level": "full" + }, + "parse": { + "us": 3030.0, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 330.1, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 330.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 331.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 331.3, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 330.1, + "level": "full" + }, + "read": { + "us": 330.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 331.3, + "level": "full" + }, + "read (raw numbers)": { + "us": 334.8, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 291.1, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 291.1, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 290.8, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 290.8, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 290.8, + "level": "full" + }, + "DOM": { + "us": 291.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 291.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 291.1, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 449.4, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 449.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 449.4, + "level": "full" + }, + "generic (double)": { + "us": 2133.8, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2140.5, + "level": "full" + }, + "generic": { + "us": 2853.9, + "level": "partial" + }, + "generic (strict)": { + "us": 2886.5, + "level": "full" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 589.6, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 589.6, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 602.9, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 602.9, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 589.6, + "level": "full" + }, + "SAX (reused)": { + "us": 602.9, + "level": "full" + }, + "SAX": { + "us": 604.2, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1271.1, + "level": "full" + }, + "parser (reused)": { + "us": 1279.7, + "level": "full" + }, + "parse": { + "us": 1282.8, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1255.1, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 844.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1495.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1407.5, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 844.0, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1255.1, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 1290.8, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1307.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1407.5, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1430.8, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1495.1, + "level": "full" + }, + "SAX": { + "us": 2131.2, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2164.5, + "level": "full" + }, + "Document": { + "us": 2261.4, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + IgnoredAny", + "us": 476.4, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 345.3, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 345.3, + "level": "no UTF-8" + }, + "from_utf8 + IgnoredAny": { + "us": 476.4, + "level": "full" + }, + "Value": { + "us": 3489.5, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "IgnoredAny", + "us": 340.0, + "level": "full" + }, + "best_any": { + "variant": "IgnoredAny", + "us": 340.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "IgnoredAny": { + "us": 340.0, + "level": "full" + }, + "Value": { + "us": 418.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "tape (copy)", + "us": 515.3, + "level": "full" + }, + "best_any": { + "variant": "tape (copy)", + "us": 515.3, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 518.0, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 518.0, + "level": "full" + }, + "variants": { + "tape (copy)": { + "us": 515.3, + "level": "full" + }, + "tape (reused)": { + "us": 518.0, + "level": "full" + }, + "borrowed (copy)": { + "us": 1217.8, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 545.5, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 545.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 546.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 546.8, + "level": "full" + }, + "variants": { + "parse": { + "us": 545.5, + "level": "full" + }, + "read (reused)": { + "us": 546.8, + "level": "full" + }, + "accept": { + "us": 548.1, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "accept", + "us": 1269.8, + "level": "full" + }, + "best_any": { + "variant": "accept", + "us": 1269.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "accept": { + "us": 1269.8, + "level": "full" + }, + "parse": { + "us": 5146.2, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 506.1, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 506.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 507.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 507.8, + "level": "full" + }, + "variants": { + "read": { + "us": 506.1, + "level": "full" + }, + "insitu (copy)": { + "us": 507.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 507.8, + "level": "full" + }, + "read (raw numbers)": { + "us": 518.1, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 585.1, + "level": "full" + }, + "best_any": { + "variant": "DOM", + "us": 585.1, + "level": "full" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 578.2, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused)", + "us": 578.2, + "level": "full" + }, + "variants": { + "DOM (reused)": { + "us": 578.2, + "level": "full" + }, + "DOM": { + "us": 585.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 692.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 692.1, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "validate_json", + "us": 622.4, + "level": "full" + }, + "best_any": { + "variant": "validate_json", + "us": 622.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "validate_json": { + "us": 622.4, + "level": "full" + }, + "generic (double, strict)": { + "us": 3219.8, + "level": "full" + }, + "generic (double)": { + "us": 3249.2, + "level": "partial" + }, + "generic": { + "us": 4993.4, + "level": "partial" + }, + "generic (strict)": { + "us": 5008.2, + "level": "full" + } + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX (numbers: none)", + "us": 570.3, + "level": "full" + }, + "best_any": { + "variant": "SAX (numbers: none)", + "us": 570.3, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 655.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 655.0, + "level": "full" + }, + "variants": { + "SAX (numbers: none)": { + "us": 570.3, + "level": "full" + }, + "SAX (reused)": { + "us": 655.0, + "level": "full" + }, + "SAX": { + "us": 655.8, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1365.4, + "level": "full" + }, + "parser (reused)": { + "us": 1477.8, "level": "full" }, "parse": { @@ -154,301 +2552,63 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1637.8, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 1135.4, - "level": "no UTF-8" - }, - "variants": { - "insitu (copy) (no encoding check)": { - "us": 1135.4, - "level": "no UTF-8" - }, - "SAX (no encoding check)": { - "us": 1373.5, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 1552.5, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 1637.8, - "level": "full" - }, - "SAX": { - "us": 2343.5, - "level": "full" - }, - "Document": { - "us": 2543.1, - "level": "full" - } - } - }, - "serde_json": { - "best": { - "variant": "from_utf8 + IgnoredAny", - "us": 633.5, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 486.9, - "level": "no UTF-8" - }, - "variants": { - "IgnoredAny": { - "us": 486.9, - "level": "no UTF-8" - }, - "from_utf8 + IgnoredAny": { - "us": 633.5, - "level": "full" - }, - "Value": { - "us": 3815.1, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "IgnoredAny", - "us": 469.6, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 469.6, - "level": "full" - }, - "variants": { - "IgnoredAny": { - "us": 469.6, - "level": "full" - }, - "Value": { - "us": 563.3, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "tape (copy)", - "us": 591.5, - "level": "full" - }, - "best_any": { - "variant": "tape (copy)", - "us": 591.5, - "level": "full" - }, - "variants": { - "tape (reused)": { - "us": 578.1, - "level": "full" - }, - "tape (copy)": { - "us": 591.5, - "level": "full" - }, - "borrowed (copy)": { - "us": 1281.8, - "level": "full" - } - } - } - }, - "citm_catalog": { - "nlohmann json_document": { - "best": { - "variant": "parse", - "us": 742.3, - "level": "full" - }, - "best_any": { - "variant": "parse", - "us": 742.3, - "level": "full" - }, - "variants": { - "parse": { - "us": 742.3, - "level": "full" - }, - "read (reused)": { - "us": 747.5, - "level": "full" - }, - "accept": { - "us": 755.4, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "accept", - "us": 1631.1, - "level": "full" - }, - "best_any": { - "variant": "accept", - "us": 1631.1, - "level": "full" - }, - "variants": { - "accept": { - "us": 1631.1, - "level": "full" - }, - "parse": { - "us": 5659.5, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "insitu (copy)", - "us": 994.9, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy)", - "us": 994.9, - "level": "full" - }, - "variants": { - "insitu (copy)": { - "us": 994.9, - "level": "full" - }, - "read": { - "us": 1024.8, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "DOM", - "us": 809.8, - "level": "full" - }, - "best_any": { - "variant": "DOM", - "us": 809.8, - "level": "full" - }, - "variants": { - "DOM": { - "us": 809.8, - "level": "full" - }, - "DOM (reused)": { - "us": 814.5, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 1031.5, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 1031.5, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "validate_json", - "us": 1399.4, - "level": "full" - }, - "best_any": { - "variant": "validate_json", - "us": 1399.4, - "level": "full" - }, - "variants": { - "validate_json": { - "us": 1399.4, - "level": "full" - }, - "generic": { - "us": 5956.1, - "level": "full" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 1006.8, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 1006.8, - "level": "full" - }, - "variants": { - "SAX": { - "us": 1006.8, - "level": "full" - }, - "parse": { - "us": 1900.0, - "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "SAX", - "us": 2229.7, + "us": 1641.6, "level": "full" }, "best_any": { "variant": "SAX (no encoding check)", - "us": 1665.7, + "us": 1419.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1775.3, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1750.2, "level": "no UTF-8" }, "variants": { "SAX (no encoding check)": { - "us": 1665.7, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 2006.0, + "us": 1419.5, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 2023.3, + "us": 1443.7, "level": "no UTF-8" }, - "SAX": { - "us": 2229.7, - "level": "full" + "SAX (raw numbers) (no encoding check)": { + "us": 1606.3, + "level": "no UTF-8" }, "insitu (copy)": { - "us": 2353.0, + "us": 1641.6, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1733.5, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1750.2, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1775.3, + "level": "full" + }, + "SAX": { + "us": 1944.0, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2166.6, "level": "full" }, "Document": { - "us": 2578.4, + "us": 2334.5, "level": "full" } } @@ -456,289 +2616,27 @@ "serde_json": { "best": { "variant": "from_utf8 + IgnoredAny", - "us": 1447.6, + "us": 637.2, "level": "full" }, "best_any": { - "variant": "IgnoredAny", - "us": 1370.5, - "level": "no UTF-8" - }, - "variants": { - "IgnoredAny": { - "us": 1370.5, - "level": "no UTF-8" - }, - "from_utf8 + IgnoredAny": { - "us": 1447.6, - "level": "full" - }, - "Value": { - "us": 6238.9, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "IgnoredAny", - "us": 965.6, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 965.6, - "level": "full" - }, - "variants": { - "IgnoredAny": { - "us": 965.6, - "level": "full" - }, - "Value": { - "us": 1189.7, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "tape (copy)", - "us": 1425.7, - "level": "full" - }, - "best_any": { - "variant": "tape (copy)", - "us": 1425.7, - "level": "full" - }, - "variants": { - "tape (reused)": { - "us": 1409.5, - "level": "full" - }, - "tape (copy)": { - "us": 1425.7, - "level": "full" - }, - "borrowed (copy)": { - "us": 3637.0, - "level": "full" - } - } - } - }, - "canada": { - "nlohmann json_document": { - "best": { - "variant": "accept", - "us": 1698.9, - "level": "full" - }, - "best_any": { - "variant": "accept", - "us": 1698.9, - "level": "full" - }, - "variants": { - "accept": { - "us": 1698.9, - "level": "full" - }, - "read (reused)": { - "us": 1699.7, - "level": "full" - }, - "parse": { - "us": 1699.8, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "accept", - "us": 4569.5, - "level": "full" - }, - "best_any": { - "variant": "accept", - "us": 4569.5, - "level": "full" - }, - "variants": { - "accept": { - "us": 4569.5, - "level": "full" - }, - "parse": { - "us": 12253.4, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "read", - "us": 5320.0, - "level": "full" - }, - "best_any": { - "variant": "read", - "us": 5320.0, - "level": "full" - }, - "variants": { - "read": { - "us": 5320.0, - "level": "full" - }, - "insitu (copy)": { - "us": 5322.6, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "DOM", - "us": 3177.5, - "level": "full" - }, - "best_any": { - "variant": "DOM", - "us": 3177.5, - "level": "full" - }, - "variants": { - "DOM": { - "us": 3177.5, - "level": "full" - }, - "DOM (reused)": { - "us": 3220.4, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 3618.0, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 3618.0, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "validate_json", - "us": 1847.3, - "level": "full" - }, - "best_any": { - "variant": "validate_json", - "us": 1847.3, - "level": "full" - }, - "variants": { - "validate_json": { - "us": 1847.3, - "level": "full" - }, - "generic": { - "us": 19742.6, - "level": "full" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 5464.9, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 5464.9, - "level": "full" - }, - "variants": { - "SAX": { - "us": 5464.9, - "level": "full" - }, - "parse": { - "us": 7475.1, - "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "SAX", - "us": 11264.3, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 11264.3, - "level": "full" - }, - "variants": { - "SAX": { - "us": 11264.3, - "level": "full" - }, - "Document (no encoding check)": { - "us": 11671.6, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 11736.9, - "level": "full" - }, - "SAX (no encoding check)": { - "us": 11748.6, - "level": "no UTF-8" - }, - "Document": { - "us": 11864.0, - "level": "full" - }, - "insitu (copy) (no encoding check)": { - "us": 12082.6, - "level": "no UTF-8" - } - } - }, - "serde_json": { - "best": { "variant": "from_utf8 + IgnoredAny", - "us": 2401.7, + "us": 637.2, "level": "full" }, - "best_any": { - "variant": "IgnoredAny", - "us": 2318.5, - "level": "no UTF-8" - }, + "best_reused": null, + "best_reused_any": null, "variants": { - "IgnoredAny": { - "us": 2318.5, - "level": "no UTF-8" - }, "from_utf8 + IgnoredAny": { - "us": 2401.7, + "us": 637.2, "level": "full" }, + "IgnoredAny": { + "us": 665.8, + "level": "no UTF-8" + }, "Value": { - "us": 13367.6, + "us": 5301.8, "level": "full" } } @@ -746,21 +2644,23 @@ "sonic-rs": { "best": { "variant": "IgnoredAny", - "us": 2249.4, + "us": 640.9, "level": "full" }, "best_any": { "variant": "IgnoredAny", - "us": 2249.4, + "us": 640.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "IgnoredAny": { - "us": 2249.4, + "us": 640.9, "level": "full" }, "Value": { - "us": 3754.2, + "us": 819.1, "level": "full" } } @@ -768,553 +2668,35 @@ "simd-json": { "best": { "variant": "tape (copy)", - "us": 4302.9, + "us": 1159.4, "level": "full" }, "best_any": { "variant": "tape (copy)", - "us": 4302.9, + "us": 1159.4, + "level": "full" + }, + "best_reused": { + "variant": "tape (reused)", + "us": 1092.3, + "level": "full" + }, + "best_reused_any": { + "variant": "tape (reused)", + "us": 1092.3, "level": "full" }, "variants": { "tape (reused)": { - "us": 4245.2, + "us": 1092.3, "level": "full" }, "tape (copy)": { - "us": 4302.9, + "us": 1159.4, "level": "full" }, "borrowed (copy)": { - "us": 10036.5, - "level": "full" - } - } - } - }, - "jeopardy": { - "nlohmann json_document": { - "best": { - "variant": "accept", - "us": 84789.7, - "level": "full" - }, - "best_any": { - "variant": "accept", - "us": 84789.7, - "level": "full" - }, - "variants": { - "read (reused)": { - "us": 45936.0, - "level": "full" - }, - "accept": { - "us": 84789.7, - "level": "full" - }, - "parse": { - "us": 86197.9, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "accept", - "us": 94288.7, - "level": "full" - }, - "best_any": { - "variant": "accept", - "us": 94288.7, - "level": "full" - }, - "variants": { - "accept": { - "us": 94288.7, - "level": "full" - }, - "parse": { - "us": 559746.2, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "read", - "us": 132598.1, - "level": "full" - }, - "best_any": { - "variant": "read", - "us": 132598.1, - "level": "full" - }, - "variants": { - "read": { - "us": 132598.1, - "level": "full" - }, - "insitu (copy)": { - "us": 133444.3, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "DOM", - "us": 121064.1, - "level": "full" - }, - "best_any": { - "variant": "DOM", - "us": 121064.1, - "level": "full" - }, - "variants": { - "DOM (reused)": { - "us": 48456.0, - "level": "full" - }, - "DOM": { - "us": 121064.1, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 95771.6, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 95771.6, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "validate_json", - "us": 71292.8, - "level": "full" - }, - "best_any": { - "variant": "validate_json", - "us": 71292.8, - "level": "full" - }, - "variants": { - "validate_json": { - "us": 71292.8, - "level": "full" - }, - "generic": { - "us": 384085.4, - "level": "full" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 59248.7, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 59248.7, - "level": "full" - }, - "variants": { - "SAX": { - "us": 59248.7, - "level": "full" - }, - "parse": { - "us": 193186.4, - "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "insitu (copy)", - "us": 209690.7, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 157273.7, - "level": "no UTF-8" - }, - "variants": { - "insitu (copy) (no encoding check)": { - "us": 157273.7, - "level": "no UTF-8" - }, - "SAX (no encoding check)": { - "us": 169612.9, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 184567.0, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 209690.7, - "level": "full" - }, - "SAX": { - "us": 276801.4, - "level": "full" - }, - "Document": { - "us": 297025.8, - "level": "full" - } - } - }, - "serde_json": { - "best": { - "variant": "from_utf8 + IgnoredAny", - "us": 66822.2, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 59800.9, - "level": "no UTF-8" - }, - "variants": { - "IgnoredAny": { - "us": 59800.9, - "level": "no UTF-8" - }, - "from_utf8 + IgnoredAny": { - "us": 66822.2, - "level": "full" - }, - "Value": { - "us": 490960.4, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "IgnoredAny", - "us": 54246.3, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 54246.3, - "level": "full" - }, - "variants": { - "IgnoredAny": { - "us": 54246.3, - "level": "full" - }, - "Value": { - "us": 117743.3, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "tape (copy)", - "us": 211715.5, - "level": "full" - }, - "best_any": { - "variant": "tape (copy)", - "us": 211715.5, - "level": "full" - }, - "variants": { - "tape (reused)": { - "us": 135460.9, - "level": "full" - }, - "tape (copy)": { - "us": 211715.5, - "level": "full" - }, - "borrowed (copy)": { - "us": 289558.6, - "level": "full" - } - } - } - }, - "status": { - "nlohmann json_document": { - "best": { - "variant": "accept", - "us": 1.6, - "level": "full" - }, - "best_any": { - "variant": "accept", - "us": 1.6, - "level": "full" - }, - "variants": { - "read (reused)": { - "us": 1.5, - "level": "full" - }, - "accept": { - "us": 1.6, - "level": "full" - }, - "parse": { - "us": 1.6, - "level": "full" - } - } - }, - "nlohmann json": { - "best": { - "variant": "accept", - "us": 4.0, - "level": "full" - }, - "best_any": { - "variant": "accept", - "us": 4.0, - "level": "full" - }, - "variants": { - "accept": { - "us": 4.0, - "level": "full" - }, - "parse": { - "us": 14.3, - "level": "full" - } - } - }, - "yyjson": { - "best": { - "variant": "read", - "us": 1.7, - "level": "full" - }, - "best_any": { - "variant": "read", - "us": 1.7, - "level": "full" - }, - "variants": { - "read": { - "us": 1.7, - "level": "full" - }, - "insitu (copy)": { - "us": 1.7, - "level": "full" - } - } - }, - "simdjson": { - "best": { - "variant": "DOM", - "us": 1.9, - "level": "full" - }, - "best_any": { - "variant": "DOM", - "us": 1.9, - "level": "full" - }, - "variants": { - "DOM (reused)": { - "us": 1.5, - "level": "full" - }, - "DOM": { - "us": 1.9, - "level": "full" - } - } - }, - "sonic-cpp": { - "best": null, - "best_any": { - "variant": "Document", - "us": 1.8, - "level": "no UTF-8" - }, - "variants": { - "Document": { - "us": 1.8, - "level": "no UTF-8" - } - } - }, - "Glaze": { - "best": { - "variant": "validate_json", - "us": 2.3, - "level": "full" - }, - "best_any": { - "variant": "validate_json", - "us": 2.3, - "level": "full" - }, - "variants": { - "validate_json": { - "us": 2.3, - "level": "full" - }, - "generic": { - "us": 13.8, - "level": "full" - } - } - }, - "Boost.JSON": { - "best": { - "variant": "SAX", - "us": 3.2, - "level": "full" - }, - "best_any": { - "variant": "SAX", - "us": 3.2, - "level": "full" - }, - "variants": { - "SAX": { - "us": 3.2, - "level": "full" - }, - "parse": { - "us": 7.0, - "level": "full" - } - } - }, - "RapidJSON": { - "best": { - "variant": "insitu (copy)", - "us": 7.3, - "level": "full" - }, - "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 3.8, - "level": "no UTF-8" - }, - "variants": { - "insitu (copy) (no encoding check)": { - "us": 3.8, - "level": "no UTF-8" - }, - "SAX (no encoding check)": { - "us": 7.2, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 7.3, - "level": "full" - }, - "Document (no encoding check)": { - "us": 8.1, - "level": "no UTF-8" - }, - "SAX": { - "us": 12.0, - "level": "full" - }, - "Document": { - "us": 13.6, - "level": "full" - } - } - }, - "serde_json": { - "best": { - "variant": "from_utf8 + IgnoredAny", - "us": 2.4, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 1.9, - "level": "no UTF-8" - }, - "variants": { - "IgnoredAny": { - "us": 1.9, - "level": "no UTF-8" - }, - "from_utf8 + IgnoredAny": { - "us": 2.4, - "level": "full" - }, - "Value": { - "us": 12.5, - "level": "full" - } - } - }, - "sonic-rs": { - "best": { - "variant": "IgnoredAny", - "us": 1.8, - "level": "full" - }, - "best_any": { - "variant": "IgnoredAny", - "us": 1.8, - "level": "full" - }, - "variants": { - "IgnoredAny": { - "us": 1.8, - "level": "full" - }, - "Value": { - "us": 2.4, - "level": "full" - } - } - }, - "simd-json": { - "best": { - "variant": "tape (copy)", - "us": 2.8, - "level": "full" - }, - "best_any": { - "variant": "tape (copy)", - "us": 2.8, - "level": "full" - }, - "variants": { - "tape (reused)": { - "us": 2.4, - "level": "full" - }, - "tape (copy)": { - "us": 2.8, - "level": "full" - }, - "borrowed (copy)": { - "us": 5.3, + "us": 3638.6, "level": "full" } } @@ -1326,21 +2708,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 405.1, + "us": 409.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 405.1, + "us": 409.7, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 402.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 402.4, "level": "full" }, "variants": { "read (reused)": { - "us": 393.8, + "us": 402.4, "level": "full" }, "parse": { - "us": 405.1, + "us": 409.7, "level": "full" } } @@ -1348,21 +2740,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 806.9, + "us": 813.2, "level": "full" }, "best_any": { "variant": "sax", - "us": 806.9, + "us": 813.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 806.9, + "us": 813.2, "level": "full" }, "parse": { - "us": 3746.6, + "us": 3381.8, "level": "full" } } @@ -1370,21 +2764,35 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 446.7, + "us": 446.9, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 446.7, + "us": 446.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 451.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 451.1, "level": "full" }, "variants": { "insitu (copy)": { - "us": 446.7, + "us": 446.9, + "level": "full" + }, + "read (reused allocator)": { + "us": 451.1, "level": "full" }, "read": { - "us": 450.8, + "us": 452.1, "level": "full" } } @@ -1392,29 +2800,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 358.0, + "us": 360.4, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 358.0, + "us": 360.4, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 357.1, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 357.1, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 355.5, + "us": 357.1, "level": "full" }, "On-Demand": { - "us": 358.0, + "us": 360.4, "level": "full" }, "DOM (reused)": { - "us": 429.3, + "us": 417.7, "level": "full" }, "DOM": { - "us": 433.1, + "us": 420.3, "level": "full" } } @@ -1423,56 +2841,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 481.8, + "us": 477.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 481.8, + "us": 477.7, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 3206.1, + "variant": "generic (double, strict)", + "us": 2399.0, "level": "full" }, "best_any": { - "variant": "lazy_json", - "us": 2947.8, - "level": "partial" + "variant": "generic (double, strict)", + "us": 2399.0, + "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { + "generic (double, strict)": { + "us": 2399.0, + "level": "full" + }, + "generic (double)": { + "us": 2414.3, + "level": "partial" + }, "lazy_json": { - "us": 2947.8, + "us": 2975.4, "level": "partial" }, "generic": { - "us": 3206.1, + "us": 3141.4, + "level": "partial" + }, + "generic (strict)": { + "us": 3169.1, "level": "full" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 753.3, + "us": 748.2, "level": "full" }, "best_any": { "variant": "SAX", - "us": 753.3, + "us": 748.2, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 738.4, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 738.4, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 738.4, + "level": "full" + }, "SAX": { - "us": 753.3, + "us": 748.2, + "level": "full" + }, + "parser (reused)": { + "us": 1464.0, "level": "full" }, "parse": { - "us": 1502.2, + "us": 1469.4, "level": "full" } } @@ -1480,37 +2935,55 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1679.2, + "us": 1679.1, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1184.6, + "us": 1175.3, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1637.9, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1540.4, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1184.6, + "us": 1175.3, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1372.2, + "us": 1365.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1540.4, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1560.9, + "us": 1542.6, "level": "no UTF-8" }, + "Document (reused allocator)": { + "us": 1637.9, + "level": "full" + }, "insitu (copy)": { - "us": 1679.2, + "us": 1679.1, "level": "full" }, "SAX": { - "us": 2283.0, + "us": 2297.8, "level": "full" }, "Document": { - "us": 2476.5, + "us": 2414.4, "level": "full" } } @@ -1518,21 +2991,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 1318.2, + "us": 1310.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 1318.2, + "us": 1310.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 1318.2, + "us": 1310.8, "level": "full" }, "Value": { - "us": 4058.1, + "us": 3672.0, "level": "full" } } @@ -1540,21 +3015,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 494.3, + "us": 503.3, "level": "full" }, "best_any": { "variant": "visitor", - "us": 494.3, + "us": 503.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 494.3, + "us": 503.3, "level": "full" }, "Value": { - "us": 808.3, + "us": 815.3, "level": "full" } } @@ -1562,25 +3039,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 722.1, + "us": 667.8, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 722.1, + "us": 667.8, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 1440.1, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 1440.1, "level": "full" }, "variants": { "visitor (copy)": { - "us": 722.1, + "us": 667.8, "level": "full" }, "borrowed (reused)": { - "us": 1451.8, + "us": 1440.1, "level": "full" }, "borrowed (copy)": { - "us": 1475.4, + "us": 1456.2, "level": "full" } } @@ -1590,21 +3077,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 944.8, + "us": 959.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 944.8, + "us": 959.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 958.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 958.7, "level": "full" }, "variants": { "read (reused)": { - "us": 941.6, + "us": 958.7, "level": "full" }, "parse": { - "us": 944.8, + "us": 959.8, "level": "full" } } @@ -1612,21 +3109,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 1647.0, + "us": 1675.8, "level": "full" }, "best_any": { "variant": "sax", - "us": 1647.0, + "us": 1675.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 1647.0, + "us": 1675.8, "level": "full" }, "parse": { - "us": 5918.4, + "us": 5749.4, "level": "full" } } @@ -1634,21 +3133,35 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 1148.3, + "us": 1146.3, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 1148.3, + "us": 1146.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1184.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1184.7, "level": "full" }, "variants": { "insitu (copy)": { - "us": 1148.3, + "us": 1146.3, "level": "full" }, "read": { - "us": 1150.0, + "us": 1153.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 1184.7, "level": "full" } } @@ -1656,29 +3169,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 817.1, + "us": 819.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 817.1, + "us": 819.0, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 810.6, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 810.6, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 815.9, + "us": 810.6, "level": "full" }, "On-Demand": { - "us": 817.1, - "level": "full" - }, - "DOM (reused)": { - "us": 1183.7, + "us": 819.0, "level": "full" }, "DOM": { - "us": 1189.6, + "us": 1034.9, + "level": "full" + }, + "DOM (reused)": { + "us": 1035.8, "level": "full" } } @@ -1687,56 +3210,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 1233.9, + "us": 1233.7, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1233.9, + "us": 1233.7, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 5928.3, + "variant": "generic (double, strict)", + "us": 4212.5, "level": "full" }, "best_any": { - "variant": "generic", - "us": 5928.3, - "level": "full" + "variant": "generic (double)", + "us": 4140.8, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { + "generic (double)": { + "us": 4140.8, + "level": "partial" + }, + "generic (double, strict)": { + "us": 4212.5, + "level": "full" + }, "generic": { - "us": 5928.3, + "us": 5938.9, + "level": "partial" + }, + "generic (strict)": { + "us": 6019.7, "level": "full" }, "lazy_json": { - "us": 13066.4, + "us": 13349.9, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 1030.3, + "us": 1017.7, "level": "full" }, "best_any": { "variant": "SAX", - "us": 1030.3, + "us": 1017.7, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 1015.2, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 1015.2, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 1015.2, + "level": "full" + }, "SAX": { - "us": 1030.3, + "us": 1017.7, + "level": "full" + }, + "parser (reused)": { + "us": 1971.7, "level": "full" }, "parse": { - "us": 2036.1, + "us": 1975.9, "level": "full" } } @@ -1744,37 +3304,55 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 2387.7, + "us": 2310.8, "level": "full" }, "best_any": { "variant": "SAX (no encoding check)", - "us": 1767.6, + "us": 1740.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2200.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 2127.8, "level": "no UTF-8" }, "variants": { "SAX (no encoding check)": { - "us": 1767.6, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 2126.6, + "us": 1740.2, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 2129.4, + "us": 2073.3, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 2120.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 2127.8, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 2200.4, + "level": "full" + }, "SAX": { - "us": 2387.7, + "us": 2310.8, "level": "full" }, "insitu (copy)": { - "us": 2462.6, + "us": 2420.1, "level": "full" }, "Document": { - "us": 2699.9, + "us": 2672.8, "level": "full" } } @@ -1782,21 +3360,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 2298.7, + "us": 2316.5, "level": "full" }, "best_any": { "variant": "visitor", - "us": 2298.7, + "us": 2316.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 2298.7, + "us": 2316.5, "level": "full" }, "Value": { - "us": 6416.1, + "us": 6263.6, "level": "full" } } @@ -1804,21 +3384,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 1134.9, + "us": 1122.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 1134.9, + "us": 1122.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 1134.9, + "us": 1122.8, "level": "full" }, "Value": { - "us": 1798.1, + "us": 1850.5, "level": "full" } } @@ -1826,25 +3408,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 1685.7, + "us": 1687.6, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 1685.7, + "us": 1687.6, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 3929.4, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 3929.4, "level": "full" }, "variants": { "visitor (copy)": { - "us": 1685.7, - "level": "full" - }, - "borrowed (copy)": { - "us": 3825.0, + "us": 1687.6, "level": "full" }, "borrowed (reused)": { - "us": 3865.2, + "us": 3929.4, + "level": "full" + }, + "borrowed (copy)": { + "us": 3960.3, "level": "full" } } @@ -1854,21 +3446,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 4037.6, + "us": 4026.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 4037.6, + "us": 4026.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 4032.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 4032.8, "level": "full" }, "variants": { "parse": { - "us": 4037.6, + "us": 4026.0, "level": "full" }, "read (reused)": { - "us": 4038.8, + "us": 4032.8, "level": "full" } } @@ -1876,21 +3478,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 5962.1, + "us": 6045.3, "level": "full" }, "best_any": { "variant": "sax", - "us": 5962.1, + "us": 6045.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 5962.1, + "us": 6045.3, "level": "full" }, "parse": { - "us": 12643.1, + "us": 12469.2, "level": "full" } } @@ -1898,21 +3502,35 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 5958.7, + "us": 6051.1, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 5958.7, + "us": 6051.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 6038.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 6038.1, "level": "full" }, "variants": { + "read (reused allocator)": { + "us": 6038.1, + "level": "full" + }, "insitu (copy)": { - "us": 5958.7, + "us": 6051.1, "level": "full" }, "read": { - "us": 5962.0, + "us": 6109.1, "level": "full" } } @@ -1920,29 +3538,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 3407.1, + "us": 3268.7, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 3407.1, + "us": 3268.7, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 3265.8, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 3265.8, "level": "full" }, "variants": { - "On-Demand": { - "us": 3407.1, + "On-Demand (reused)": { + "us": 3265.8, "level": "full" }, - "On-Demand (reused)": { - "us": 3415.9, + "On-Demand": { + "us": 3268.7, "level": "full" }, "DOM (reused)": { - "us": 4813.5, + "us": 4209.6, "level": "full" }, "DOM": { - "us": 4851.7, + "us": 4262.9, "level": "full" } } @@ -1951,94 +3579,149 @@ "best": null, "best_any": { "variant": "Document", - "us": 4412.4, + "us": 4453.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 4412.4, + "us": 4453.6, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 20405.3, + "variant": "generic (double, strict)", + "us": 11368.6, "level": "full" }, "best_any": { - "variant": "lazy_json", - "us": 16202.7, - "level": "partial" + "variant": "generic (double, strict)", + "us": 11368.6, + "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "lazy_json": { - "us": 16202.7, + "generic (double, strict)": { + "us": 11368.6, + "level": "full" + }, + "generic (double)": { + "us": 11455.1, "level": "partial" }, - "generic": { - "us": 20405.3, + "lazy_json": { + "us": 17100.0, + "level": "partial" + }, + "generic (strict)": { + "us": 20097.5, "level": "full" + }, + "generic": { + "us": 20622.9, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 5688.3, + "us": 5667.5, "level": "full" }, "best_any": { "variant": "SAX", - "us": 5688.3, + "us": 5667.5, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 5683.0, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 5683.0, "level": "full" }, "variants": { "SAX": { - "us": 5688.3, + "us": 5667.5, + "level": "full" + }, + "SAX (reused)": { + "us": 5683.0, + "level": "full" + }, + "parser (reused)": { + "us": 7633.1, "level": "full" }, "parse": { - "us": 7851.4, + "us": 7672.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 11029.7, + "variant": "insitu (copy)", + "us": 11995.4, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 11029.7, + "variant": "Document (no encoding check)", + "us": 11756.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 12044.9, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator)", + "us": 12044.9, "level": "full" }, "variants": { - "SAX": { - "us": 11029.7, - "level": "full" + "Document (no encoding check)": { + "us": 11756.1, + "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 11862.3, + "us": 11941.2, "level": "no UTF-8" }, "insitu (copy)": { - "us": 12174.6, + "us": 11995.4, "level": "full" }, - "Document (no encoding check)": { - "us": 12190.6, - "level": "no UTF-8" + "Document (reused allocator)": { + "us": 12044.9, + "level": "full" }, - "Document": { - "us": 12316.5, + "SAX": { + "us": 12058.0, "level": "full" }, "insitu (copy) (no encoding check)": { - "us": 12595.4, + "us": 12077.2, + "level": "no UTF-8" + }, + "Document": { + "us": 12110.0, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 12247.3, "level": "no UTF-8" } } @@ -2046,21 +3729,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 7610.4, + "us": 7240.7, "level": "full" }, "best_any": { "variant": "visitor", - "us": 7610.4, + "us": 7240.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 7610.4, + "us": 7240.7, "level": "full" }, "Value": { - "us": 14578.6, + "us": 13909.9, "level": "full" } } @@ -2068,21 +3753,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 4580.2, + "us": 4418.5, "level": "full" }, "best_any": { "variant": "visitor", - "us": 4580.2, + "us": 4418.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 4580.2, + "us": 4418.5, "level": "full" }, "Value": { - "us": 7489.7, + "us": 7197.0, "level": "full" } } @@ -2090,25 +3777,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 5190.9, + "us": 5134.0, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 5190.9, + "us": 5134.0, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 11297.7, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 11297.7, "level": "full" }, "variants": { "visitor (copy)": { - "us": 5190.9, - "level": "full" - }, - "borrowed (reused)": { - "us": 11384.6, + "us": 5134.0, "level": "full" }, "borrowed (copy)": { - "us": 11483.9, + "us": 11077.3, + "level": "full" + }, + "borrowed (reused)": { + "us": 11297.7, "level": "full" } } @@ -2118,21 +3815,31 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 87781.3, + "us": 91856.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 87781.3, + "us": 91856.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 56473.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 56473.3, "level": "full" }, "variants": { "read (reused)": { - "us": 54112.5, + "us": 56473.3, "level": "full" }, "parse": { - "us": 87781.3, + "us": 91856.6, "level": "full" } } @@ -2140,43 +3847,59 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 100803.8, + "us": 104843.4, "level": "full" }, "best_any": { "variant": "sax", - "us": 100803.8, + "us": 104843.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { - "us": 100803.8, + "us": 104843.4, "level": "full" }, "parse": { - "us": 580467.2, + "us": 631253.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 138000.6, + "variant": "read", + "us": 137147.6, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 138000.6, + "variant": "read", + "us": 137147.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 70351.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 70351.4, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 138000.6, + "read (reused allocator)": { + "us": 70351.4, "level": "full" }, "read": { - "us": 138521.1, + "us": 137147.6, + "level": "full" + }, + "insitu (copy)": { + "us": 141423.7, "level": "full" } } @@ -2184,29 +3907,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 90337.5, + "us": 95621.9, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 90337.5, + "us": 95621.9, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 52860.2, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 52860.2, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 49752.3, + "us": 52860.2, "level": "full" }, "DOM (reused)": { - "us": 60608.5, + "us": 64730.7, "level": "full" }, "On-Demand": { - "us": 90337.5, + "us": 95621.9, "level": "full" }, "DOM": { - "us": 130727.4, + "us": 133026.9, "level": "full" } } @@ -2215,56 +3948,93 @@ "best": null, "best_any": { "variant": "Document", - "us": 105062.1, + "us": 109508.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 105062.1, + "us": 109508.9, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 403974.9, + "variant": "generic (double, strict)", + "us": 307211.0, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 231683.1, + "us": 236277.3, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "lazy_json": { - "us": 231683.1, + "us": 236277.3, "level": "partial" }, - "generic": { - "us": 403974.9, + "generic (double)": { + "us": 305808.2, + "level": "partial" + }, + "generic (double, strict)": { + "us": 307211.0, "level": "full" + }, + "generic (strict)": { + "us": 402123.1, + "level": "full" + }, + "generic": { + "us": 410020.0, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 61478.6, + "us": 64462.5, "level": "full" }, "best_any": { "variant": "SAX", - "us": 61478.6, + "us": 64462.5, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 63208.9, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 63208.9, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 63208.9, + "level": "full" + }, "SAX": { - "us": 61478.6, + "us": 64462.5, + "level": "full" + }, + "parser (reused)": { + "us": 143491.0, "level": "full" }, "parse": { - "us": 198675.4, + "us": 208260.5, "level": "full" } } @@ -2272,37 +4042,55 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 216612.1, + "us": 226217.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 161396.9, + "us": 167558.5, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 207920.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 207527.6, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 161396.9, + "us": 167558.5, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 164281.4, + "us": 183587.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 199407.5, + "us": 203643.7, "level": "no UTF-8" }, + "Document (reused allocator) (no encoding check)": { + "us": 207527.6, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 207920.2, + "level": "full" + }, "insitu (copy)": { - "us": 216612.1, + "us": 226217.2, "level": "full" }, "SAX": { - "us": 280258.9, + "us": 300502.6, "level": "full" }, "Document": { - "us": 308388.4, + "us": 314684.2, "level": "full" } } @@ -2310,21 +4098,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 123810.1, + "us": 130249.3, "level": "full" }, "best_any": { "variant": "visitor", - "us": 123810.1, + "us": 130249.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 123810.1, + "us": 130249.3, "level": "full" }, "Value": { - "us": 526223.6, + "us": 544041.8, "level": "full" } } @@ -2332,21 +4122,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 59149.2, + "us": 59992.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 59149.2, + "us": 59992.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 59149.2, + "us": 59992.8, "level": "full" }, "Value": { - "us": 150764.0, + "us": 149296.9, "level": "full" } } @@ -2354,25 +4146,35 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 220581.9, + "us": 224411.1, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 220581.9, + "us": 224411.1, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 236685.9, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 236685.9, "level": "full" }, "variants": { "visitor (copy)": { - "us": 220581.9, + "us": 224411.1, "level": "full" }, "borrowed (reused)": { - "us": 228425.7, + "us": 236685.9, "level": "full" }, "borrowed (copy)": { - "us": 293609.3, + "us": 310720.1, "level": "full" } } @@ -2390,6 +4192,16 @@ "us": 2.1, "level": "full" }, + "best_reused": { + "variant": "read (reused)", + "us": 2.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 2.0, + "level": "full" + }, "variants": { "read (reused)": { "us": 2.0, @@ -2412,13 +4224,15 @@ "us": 4.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "sax": { "us": 4.1, "level": "full" }, "parse": { - "us": 14.2, + "us": 13.6, "level": "full" } } @@ -2434,7 +4248,21 @@ "us": 2.0, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.9, + "level": "full" + }, "variants": { + "read (reused allocator)": { + "us": 1.9, + "level": "full" + }, "read": { "us": 2.0, "level": "full" @@ -2456,21 +4284,31 @@ "us": 2.0, "level": "full" }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 1.7, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 1.7, + "level": "full" + }, "variants": { "On-Demand (reused)": { "us": 1.7, "level": "full" }, + "DOM (reused)": { + "us": 2.0, + "level": "full" + }, "On-Demand": { "us": 2.0, "level": "full" }, - "DOM (reused)": { - "us": 2.1, - "level": "full" - }, "DOM": { - "us": 2.5, + "us": 2.4, "level": "full" } } @@ -2479,36 +4317,55 @@ "best": null, "best_any": { "variant": "Document", - "us": 2.2, + "us": 2.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 2.2, + "us": 2.1, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 13.5, + "variant": "generic (double, strict)", + "us": 9.8, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 6.0, + "us": 6.2, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "lazy_json": { - "us": 6.0, + "us": 6.2, "level": "partial" }, + "generic (double)": { + "us": 9.7, + "level": "partial" + }, + "generic (double, strict)": { + "us": 9.8, + "level": "full" + }, "generic": { - "us": 13.5, + "us": 13.6, + "level": "partial" + }, + "generic (strict)": { + "us": 14.3, "level": "full" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" } }, "Boost.JSON": { @@ -2522,11 +4379,29 @@ "us": 3.2, "level": "full" }, + "best_reused": { + "variant": "SAX (reused)", + "us": 3.3, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 3.3, + "level": "full" + }, "variants": { "SAX": { "us": 3.2, "level": "full" }, + "SAX (reused)": { + "us": 3.3, + "level": "full" + }, + "parser (reused)": { + "us": 6.6, + "level": "full" + }, "parse": { "us": 7.0, "level": "full" @@ -2544,6 +4419,16 @@ "us": 4.1, "level": "no UTF-8" }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 8.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 7.9, + "level": "no UTF-8" + }, "variants": { "insitu (copy) (no encoding check)": { "us": 4.1, @@ -2557,12 +4442,20 @@ "us": 7.4, "level": "full" }, + "Document (reused allocator) (no encoding check)": { + "us": 7.9, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 8.4, + "level": "full" + }, "Document (no encoding check)": { "us": 8.4, "level": "no UTF-8" }, "SAX": { - "us": 11.8, + "us": 12.3, "level": "full" }, "Document": { @@ -2574,21 +4467,23 @@ "serde_json": { "best": { "variant": "visitor", - "us": 4.3, + "us": 5.1, "level": "full" }, "best_any": { "variant": "visitor", - "us": 4.3, + "us": 5.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 4.3, + "us": 5.1, "level": "full" }, "Value": { - "us": 12.9, + "us": 14.2, "level": "full" } } @@ -2596,21 +4491,23 @@ "sonic-rs": { "best": { "variant": "visitor", - "us": 2.4, + "us": 2.8, "level": "full" }, "best_any": { "variant": "visitor", - "us": 2.4, + "us": 2.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "visitor": { - "us": 2.4, + "us": 2.8, "level": "full" }, "Value": { - "us": 4.1, + "us": 4.5, "level": "full" } } @@ -2618,25 +4515,773 @@ "simd-json": { "best": { "variant": "visitor (copy)", - "us": 3.8, + "us": 4.0, "level": "full" }, "best_any": { "variant": "visitor (copy)", - "us": 3.8, + "us": 4.0, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 6.7, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 6.7, "level": "full" }, "variants": { "visitor (copy)": { - "us": 3.8, + "us": 4.0, "level": "full" }, "borrowed (reused)": { - "us": 5.7, + "us": 6.7, "level": "full" }, "borrowed (copy)": { - "us": 6.3, + "us": 7.4, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 362.0, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 362.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 355.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 355.3, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 355.3, + "level": "full" + }, + "parse": { + "us": 362.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 749.5, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 749.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 749.5, + "level": "full" + }, + "parse": { + "us": 3447.3, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 382.8, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 382.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 410.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 410.6, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 382.8, + "level": "full" + }, + "read": { + "us": 385.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 410.6, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "On-Demand", + "us": 338.7, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 338.7, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 346.4, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 346.4, + "level": "full" + }, + "variants": { + "On-Demand": { + "us": 338.7, + "level": "full" + }, + "On-Demand (reused)": { + "us": 346.4, + "level": "full" + }, + "DOM": { + "us": 399.4, + "level": "full" + }, + "DOM (reused)": { + "us": 403.8, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 361.6, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 361.6, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 2256.0, + "level": "full" + }, + "best_any": { + "variant": "lazy_json", + "us": 1756.6, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "lazy_json": { + "us": 1756.6, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2256.0, + "level": "full" + }, + "generic (double)": { + "us": 2390.7, + "level": "partial" + }, + "generic": { + "us": 2998.8, + "level": "partial" + }, + "generic (strict)": { + "us": 3190.5, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 664.2, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 664.2, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 625.7, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 625.7, + "level": "full" + }, + "variants": { + "SAX (reused)": { + "us": 625.7, + "level": "full" + }, + "SAX": { + "us": 664.2, + "level": "full" + }, + "parse": { + "us": 1353.5, + "level": "full" + }, + "parser (reused)": { + "us": 1461.1, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1342.9, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 956.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1662.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1555.8, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 956.8, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1342.9, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 1376.2, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1555.8, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1597.2, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1662.1, + "level": "full" + }, + "Document": { + "us": 2379.4, + "level": "full" + }, + "SAX": { + "us": 2396.3, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 1040.4, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 1040.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 1040.4, + "level": "full" + }, + "Value": { + "us": 3494.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 397.3, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 397.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 397.3, + "level": "full" + }, + "Value": { + "us": 674.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 619.8, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 619.8, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 1381.5, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 1381.5, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 619.8, + "level": "full" + }, + "borrowed (reused)": { + "us": 1381.5, + "level": "full" + }, + "borrowed (copy)": { + "us": 1415.1, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 744.8, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 744.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 742.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 742.8, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 742.8, + "level": "full" + }, + "parse": { + "us": 744.8, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "sax", + "us": 1340.0, + "level": "full" + }, + "best_any": { + "variant": "sax", + "us": 1340.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "sax": { + "us": 1340.0, + "level": "full" + }, + "parse": { + "us": 5771.4, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read", + "us": 664.5, + "level": "full" + }, + "best_any": { + "variant": "read", + "us": 664.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 672.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 672.6, + "level": "full" + }, + "variants": { + "read": { + "us": 664.5, + "level": "full" + }, + "read (reused allocator)": { + "us": 672.6, + "level": "full" + }, + "insitu (copy)": { + "us": 721.1, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "On-Demand", + "us": 705.9, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 705.9, + "level": "full" + }, + "best_reused": { + "variant": "On-Demand (reused)", + "us": 691.6, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 691.6, + "level": "full" + }, + "variants": { + "On-Demand (reused)": { + "us": 691.6, + "level": "full" + }, + "On-Demand": { + "us": 705.9, + "level": "full" + }, + "DOM": { + "us": 891.8, + "level": "full" + }, + "DOM (reused)": { + "us": 904.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 927.9, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 927.9, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (double, strict)", + "us": 3629.0, + "level": "full" + }, + "best_any": { + "variant": "generic (double, strict)", + "us": 3629.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (double, strict)": { + "us": 3629.0, + "level": "full" + }, + "lazy_json": { + "us": 3695.9, + "level": "partial" + }, + "generic (double)": { + "us": 3754.9, + "level": "partial" + }, + "generic": { + "us": 5487.2, + "level": "partial" + }, + "generic (strict)": { + "us": 5519.9, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (nodes 13914 str 369145 num 9.9386218228619264e+19); wrong result (nodes 1735441 str 42965417 num 0); wrong result (nodes 37778 str 221381 num 341051379245698); wrong result (nodes 80 str 1988 num 5.0587492701461376e+17)" + } + }, + "Boost.JSON": { + "best": { + "variant": "SAX", + "us": 735.6, + "level": "full" + }, + "best_any": { + "variant": "SAX", + "us": 735.6, + "level": "full" + }, + "best_reused": { + "variant": "SAX (reused)", + "us": 746.3, + "level": "full" + }, + "best_reused_any": { + "variant": "SAX (reused)", + "us": 746.3, + "level": "full" + }, + "variants": { + "SAX": { + "us": 735.6, + "level": "full" + }, + "SAX (reused)": { + "us": 746.3, + "level": "full" + }, + "parser (reused)": { + "us": 1722.0, + "level": "full" + }, + "parse": { + "us": 1735.7, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1892.8, + "level": "full" + }, + "best_any": { + "variant": "SAX (no encoding check)", + "us": 1586.9, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 2061.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 2041.3, + "level": "no UTF-8" + }, + "variants": { + "SAX (no encoding check)": { + "us": 1586.9, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 1610.4, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1892.8, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1949.3, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 2041.3, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 2061.1, + "level": "full" + }, + "SAX": { + "us": 2214.7, + "level": "full" + }, + "Document": { + "us": 2673.1, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "visitor", + "us": 1337.4, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 1337.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 1337.4, + "level": "full" + }, + "Value": { + "us": 5475.1, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "visitor", + "us": 836.5, + "level": "full" + }, + "best_any": { + "variant": "visitor", + "us": 836.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "visitor": { + "us": 836.5, + "level": "full" + }, + "Value": { + "us": 1438.7, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "visitor (copy)", + "us": 1252.6, + "level": "full" + }, + "best_any": { + "variant": "visitor (copy)", + "us": 1252.6, + "level": "full" + }, + "best_reused": { + "variant": "borrowed (reused)", + "us": 3572.8, + "level": "full" + }, + "best_reused_any": { + "variant": "borrowed (reused)", + "us": 3572.8, + "level": "full" + }, + "variants": { + "visitor (copy)": { + "us": 1252.6, + "level": "full" + }, + "borrowed (reused)": { + "us": 3572.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 3644.7, "level": "full" } } @@ -2648,69 +5293,99 @@ "nlohmann json_document": { "best": { "variant": "structs (from_json)", - "us": 347.4, + "us": 361.0, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 347.4, + "us": 361.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 343.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 343.2, "level": "full" }, "variants": { "read (reused)": { - "us": 333.3, + "us": 343.2, "level": "full" }, "structs (from_json)": { - "us": 347.4, + "us": 361.0, "level": "full" }, "parse": { - "us": 358.5, + "us": 391.7, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 3523.0, + "variant": "structs (from_json)", + "us": 3609.1, "level": "full" }, "best_any": { - "variant": "parse", - "us": 3523.0, + "variant": "structs (from_json)", + "us": 3609.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "parse": { - "us": 3523.0, + "structs (from_json)": { + "us": 3609.1, "level": "full" }, - "structs (from_json)": { - "us": 3655.6, + "parse": { + "us": 3652.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 408.4, + "variant": "read", + "us": 403.5, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 408.4, + "variant": "read", + "us": 403.5, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 426.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 426.1, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 408.4, + "read": { + "us": 403.5, "level": "full" }, - "read": { - "us": 414.5, + "insitu (copy)": { + "us": 423.9, + "level": "full" + }, + "read (reused allocator)": { + "us": 426.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 455.6, "level": "full" } } @@ -2718,29 +5393,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 337.4, + "us": 348.4, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 211.4, + "variant": "On-Demand (key selectors)", + "us": 189.7, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 347.7, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 202.2, "level": "partial" }, "variants": { - "On-Demand (reused)": { - "us": 207.2, + "On-Demand (key selectors)": { + "us": 189.7, "level": "partial" }, "On-Demand": { - "us": 211.4, + "us": 200.9, + "level": "partial" + }, + "On-Demand (reused)": { + "us": 202.2, + "level": "partial" + }, + "On-Demand structs": { + "us": 213.3, "level": "partial" }, "DOM (reused)": { - "us": 331.7, + "us": 347.7, "level": "full" }, "DOM": { - "us": 337.4, + "us": 348.4, "level": "full" } } @@ -2749,12 +5442,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 419.3, + "us": 453.4, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 419.3, + "us": 453.4, "level": "no UTF-8" } } @@ -2762,77 +5457,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 538.9, + "us": 595.0, "level": "full" }, "best_any": { "variant": "structs", - "us": 348.4, + "us": 339.8, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 348.4, + "us": 339.8, "level": "partial" }, "structs (validate_skipped)": { - "us": 538.9, + "us": 595.0, "level": "full" }, "lazy_json": { - "us": 958.4, + "us": 1053.5, "level": "partial" }, - "generic": { - "us": 3329.8, + "generic (double)": { + "us": 2741.7, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2761.8, "level": "full" + }, + "generic (strict)": { + "us": 3354.5, + "level": "full" + }, + "generic": { + "us": 3607.3, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 1604.6, + "variant": "parse_into structs", + "us": 973.2, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1604.6, + "variant": "parse_into structs", + "us": 973.2, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1615.7, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1615.7, "level": "full" }, "variants": { + "parse_into structs": { + "us": 973.2, + "level": "full" + }, "parse": { - "us": 1604.6, + "us": 1548.6, + "level": "full" + }, + "parser (reused)": { + "us": 1615.7, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1779.2, + "us": 1703.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1193.8, + "us": 1175.9, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1783.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1601.7, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 1193.8, + "us": 1175.9, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1601.7, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1667.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1615.3, + "us": 1680.6, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1779.2, + "us": 1703.3, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1783.4, "level": "full" }, "Document": { - "us": 2588.0, + "us": 2578.0, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2607.5, "level": "full" } } @@ -2840,25 +5599,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 769.2, + "us": 721.9, "level": "full" }, "best_any": { "variant": "from_utf8 + structs", - "us": 769.2, + "us": 721.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "from_utf8 + structs": { - "us": 769.2, + "us": 721.9, "level": "full" }, "structs": { - "us": 812.9, + "us": 785.8, "level": "no UTF-8" }, "Value": { - "us": 4230.2, + "us": 4043.7, "level": "full" } } @@ -2866,21 +5627,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 556.9, + "us": 538.0, "level": "full" }, "best_any": { "variant": "structs", - "us": 556.9, + "us": 538.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 556.9, + "us": 538.0, "level": "full" }, "Value": { - "us": 632.6, + "us": 601.3, "level": "full" } } @@ -2888,21 +5651,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 729.9, + "us": 740.4, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 729.9, + "us": 740.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 729.9, + "us": 740.4, "level": "full" }, "borrowed (copy)": { - "us": 1364.3, + "us": 1364.7, "level": "full" } } @@ -2912,25 +5677,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 762.6, + "us": 788.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 762.6, + "us": 788.1, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 786.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 786.0, "level": "full" }, "variants": { "read (reused)": { - "us": 761.9, + "us": 786.0, "level": "full" }, "parse": { - "us": 762.6, + "us": 788.1, "level": "full" }, "structs (from_json)": { - "us": 794.8, + "us": 807.4, "level": "full" } } @@ -2938,43 +5713,63 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 5534.0, + "us": 5673.2, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 5534.0, + "us": 5673.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 5534.0, + "us": 5673.2, "level": "full" }, "parse": { - "us": 5623.7, + "us": 5689.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 995.7, + "variant": "read", + "us": 999.8, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 995.7, + "variant": "read", + "us": 999.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1035.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1035.9, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 995.7, + "read": { + "us": 999.8, "level": "full" }, - "read": { - "us": 1000.7, + "insitu (copy)": { + "us": 1000.9, + "level": "full" + }, + "read (raw numbers)": { + "us": 1008.1, + "level": "full" + }, + "read (reused allocator)": { + "us": 1035.9, "level": "full" } } @@ -2982,29 +5777,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 837.1, + "us": 739.6, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 804.5, + "variant": "On-Demand (key selectors)", + "us": 498.4, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 745.1, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 499.4, "level": "partial" }, "variants": { + "On-Demand (key selectors)": { + "us": 498.4, + "level": "partial" + }, "On-Demand (reused)": { - "us": 788.7, + "us": 499.4, "level": "partial" }, "On-Demand": { - "us": 804.5, + "us": 501.2, "level": "partial" }, - "DOM (reused)": { - "us": 836.3, - "level": "full" + "On-Demand structs": { + "us": 540.3, + "level": "partial" }, "DOM": { - "us": 837.1, + "us": 739.6, + "level": "full" + }, + "DOM (reused)": { + "us": 745.1, "level": "full" } } @@ -3013,12 +5826,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1043.6, + "us": 1041.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1043.6, + "us": 1041.2, "level": "no UTF-8" } } @@ -3026,77 +5841,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1475.3, + "us": 1499.6, "level": "full" }, "best_any": { "variant": "structs", - "us": 408.3, + "us": 402.6, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 408.3, + "us": 402.6, "level": "partial" }, "structs (validate_skipped)": { - "us": 1475.3, + "us": 1499.6, + "level": "full" + }, + "generic (double)": { + "us": 4121.3, + "level": "partial" + }, + "generic (double, strict)": { + "us": 4215.4, "level": "full" }, "generic": { - "us": 5806.9, + "us": 5822.4, + "level": "partial" + }, + "generic (strict)": { + "us": 5863.1, "level": "full" }, "lazy_json": { - "us": 9183.1, + "us": 9279.3, "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 1902.8, + "variant": "parse_into structs", + "us": 1358.0, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1902.8, + "variant": "parse_into structs", + "us": 1358.0, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1878.6, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1878.6, "level": "full" }, "variants": { + "parse_into structs": { + "us": 1358.0, + "level": "full" + }, "parse": { - "us": 1902.8, + "us": 1834.8, + "level": "full" + }, + "parser (reused)": { + "us": 1878.6, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2257.0, + "us": 2296.9, "level": "full" }, "best_any": { - "variant": "Document (no encoding check)", - "us": 1923.3, + "variant": "insitu (copy) (no encoding check)", + "us": 1914.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1994.9, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1927.4, "level": "no UTF-8" }, "variants": { - "Document (no encoding check)": { - "us": 1923.3, - "level": "no UTF-8" - }, "insitu (copy) (no encoding check)": { - "us": 2005.3, + "us": 1914.7, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 2257.0, + "Document (reused allocator) (no encoding check)": { + "us": 1927.4, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1930.7, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1994.9, "level": "full" }, + "insitu (copy)": { + "us": 2296.9, + "level": "full" + }, + "Document (raw numbers) (no encoding check)": { + "us": 2297.5, + "level": "no UTF-8" + }, "Document": { - "us": 2535.8, + "us": 2496.4, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2837.8, "level": "full" } } @@ -3104,25 +5983,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 1503.9, + "us": 1558.9, "level": "full" }, "best_any": { "variant": "structs", - "us": 1472.7, + "us": 1515.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1472.7, + "us": 1515.6, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 1503.9, + "us": 1558.9, "level": "full" }, "Value": { - "us": 6038.8, + "us": 6063.1, "level": "full" } } @@ -3130,21 +6011,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 1022.9, + "us": 1027.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 1022.9, + "us": 1027.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 1022.9, + "us": 1027.5, "level": "full" }, "Value": { - "us": 1200.9, + "us": 1219.0, "level": "full" } } @@ -3152,21 +6035,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 1658.4, + "us": 1801.5, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 1658.4, + "us": 1801.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 1658.4, + "us": 1801.5, "level": "full" }, "borrowed (copy)": { - "us": 3571.2, + "us": 3775.9, "level": "full" } } @@ -3175,70 +6060,100 @@ "canada": { "nlohmann json_document": { "best": { - "variant": "parse", - "us": 1700.3, + "variant": "structs (from_json)", + "us": 1692.8, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1700.3, + "variant": "structs (from_json)", + "us": 1692.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1701.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 1701.5, "level": "full" }, "variants": { - "parse": { - "us": 1700.3, - "level": "full" - }, "structs (from_json)": { - "us": 1702.5, + "us": 1692.8, "level": "full" }, "read (reused)": { - "us": 1713.6, + "us": 1701.5, + "level": "full" + }, + "parse": { + "us": 1701.7, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 12683.9, + "variant": "structs (from_json)", + "us": 12030.9, "level": "full" }, "best_any": { - "variant": "parse", - "us": 12683.9, + "variant": "structs (from_json)", + "us": 12030.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "parse": { - "us": 12683.9, + "structs (from_json)": { + "us": 12030.9, "level": "full" }, - "structs (from_json)": { - "us": 12721.4, + "parse": { + "us": 12119.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 5374.8, + "variant": "read (raw numbers)", + "us": 2214.2, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 5374.8, + "variant": "read (raw numbers)", + "us": 2214.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 5334.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 5334.4, "level": "full" }, "variants": { + "read (raw numbers)": { + "us": 2214.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 5334.4, + "level": "full" + }, "insitu (copy)": { - "us": 5374.8, + "us": 5387.7, "level": "full" }, "read": { - "us": 5414.7, + "us": 5415.9, "level": "full" } } @@ -3246,29 +6161,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3282.8, + "us": 3170.4, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 1138.2, + "us": 726.5, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 3176.6, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 725.4, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 1132.1, + "us": 725.4, "level": "partial" }, "On-Demand": { - "us": 1138.2, + "us": 726.5, "level": "partial" }, - "DOM (reused)": { - "us": 3227.7, - "level": "full" + "On-Demand (key selectors)": { + "us": 739.8, + "level": "partial" + }, + "On-Demand structs": { + "us": 938.3, + "level": "partial" }, "DOM": { - "us": 3282.8, + "us": 3170.4, + "level": "full" + }, + "DOM (reused)": { + "us": 3176.6, "level": "full" } } @@ -3277,12 +6210,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3674.7, + "us": 3638.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3674.7, + "us": 3638.9, "level": "no UTF-8" } } @@ -3290,77 +6225,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1850.4, + "us": 1853.9, "level": "full" }, "best_any": { "variant": "structs", - "us": 449.3, + "us": 447.2, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 449.3, + "us": 447.2, "level": "partial" }, "structs (validate_skipped)": { - "us": 1850.4, + "us": 1853.9, "level": "full" }, "lazy_json": { - "us": 3777.1, + "us": 3667.2, "level": "partial" }, - "generic": { - "us": 20153.8, + "generic (double)": { + "us": 10489.9, + "level": "partial" + }, + "generic (double, strict)": { + "us": 10520.3, "level": "full" + }, + "generic (strict)": { + "us": 19808.6, + "level": "full" + }, + "generic": { + "us": 19812.9, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 7604.8, + "variant": "parse_into structs", + "us": 6912.8, "level": "full" }, "best_any": { - "variant": "parse", - "us": 7604.8, + "variant": "parse_into structs", + "us": 6912.8, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 7163.0, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 7163.0, "level": "full" }, "variants": { + "parse_into structs": { + "us": 6912.8, + "level": "full" + }, + "parser (reused)": { + "us": 7163.0, + "level": "full" + }, "parse": { - "us": 7604.8, + "us": 7174.3, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { - "variant": "Document", - "us": 12214.5, + "variant": "insitu (copy)", + "us": 11423.0, "level": "full" }, "best_any": { - "variant": "Document (no encoding check)", - "us": 12165.4, + "variant": "insitu (copy) (no encoding check)", + "us": 11128.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 11421.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 11341.6, "level": "no UTF-8" }, "variants": { - "Document (no encoding check)": { - "us": 12165.4, + "insitu (copy) (no encoding check)": { + "us": 11128.1, "level": "no UTF-8" }, - "Document": { - "us": 12214.5, + "Document (no encoding check)": { + "us": 11326.7, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 11341.6, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 11421.1, "level": "full" }, "insitu (copy)": { - "us": 12220.3, + "us": 11423.0, "level": "full" }, - "insitu (copy) (no encoding check)": { - "us": 12249.8, + "Document": { + "us": 11485.1, + "level": "full" + }, + "Document (raw numbers)": { + "us": 13226.4, + "level": "full" + }, + "Document (raw numbers) (no encoding check)": { + "us": 13305.0, "level": "no UTF-8" } } @@ -3368,25 +6367,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 2442.0, + "us": 2585.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 2322.9, + "us": 2447.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 2322.9, + "us": 2447.5, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 2442.0, + "us": 2585.2, "level": "full" }, "Value": { - "us": 13892.3, + "us": 13748.4, "level": "full" } } @@ -3394,21 +6395,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 2246.6, + "us": 2283.1, "level": "full" }, "best_any": { "variant": "structs", - "us": 2246.6, + "us": 2283.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 2246.6, + "us": 2283.1, "level": "full" }, "Value": { - "us": 3718.3, + "us": 3833.4, "level": "full" } } @@ -3416,21 +6419,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 4915.3, + "us": 4997.1, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 4915.3, + "us": 4997.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 4915.3, + "us": 4997.1, "level": "full" }, "borrowed (copy)": { - "us": 10315.4, + "us": 10749.4, "level": "full" } } @@ -3440,69 +6445,99 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 98540.3, + "us": 92199.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 98540.3, + "us": 92199.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 59939.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 59939.5, "level": "full" }, "variants": { "read (reused)": { - "us": 59200.3, + "us": 59939.5, "level": "full" }, "parse": { - "us": 98540.3, + "us": 92199.6, "level": "full" }, "structs (from_json)": { - "us": 115776.5, + "us": 107204.6, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 623070.2, + "variant": "parse", + "us": 607902.4, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 623070.2, + "variant": "parse", + "us": 607902.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 623070.2, + "parse": { + "us": 607902.4, "level": "full" }, - "parse": { - "us": 638969.7, + "structs (from_json)": { + "us": 633886.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 142712.6, + "variant": "read (raw numbers)", + "us": 139234.3, "level": "full" }, "best_any": { - "variant": "read", - "us": 142712.6, + "variant": "read (raw numbers)", + "us": 139234.3, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 70668.6, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 70668.6, "level": "full" }, "variants": { - "read": { - "us": 142712.6, + "read (reused allocator)": { + "us": 70668.6, + "level": "full" + }, + "read (raw numbers)": { + "us": 139234.3, "level": "full" }, "insitu (copy)": { - "us": 143620.7, + "us": 139573.9, + "level": "full" + }, + "read": { + "us": 145043.3, "level": "full" } } @@ -3510,29 +6545,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 134701.0, + "us": 124766.0, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 51878.1, + "variant": "On-Demand (key selectors)", + "us": 49901.2, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 57404.4, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 29919.8, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 30910.5, + "us": 29919.8, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 49901.2, "level": "partial" }, "On-Demand": { - "us": 51878.1, + "us": 50708.6, "level": "partial" }, "DOM (reused)": { - "us": 63616.6, + "us": 57404.4, "level": "full" }, + "On-Demand structs": { + "us": 72609.1, + "level": "partial" + }, "DOM": { - "us": 134701.0, + "us": 124766.0, "level": "full" } } @@ -3541,12 +6594,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 111999.3, + "us": 106529.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 111999.3, + "us": 106529.2, "level": "no UTF-8" } } @@ -3554,77 +6609,141 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 99194.0, + "us": 86510.0, "level": "full" }, "best_any": { "variant": "structs", - "us": 77564.7, + "us": 68532.1, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 77564.7, + "us": 68532.1, "level": "partial" }, "structs (validate_skipped)": { - "us": 99194.0, + "us": 86510.0, "level": "full" }, "lazy_json": { - "us": 123768.8, + "us": 114296.8, "level": "partial" }, - "generic": { - "us": 433836.4, + "generic (double, strict)": { + "us": 290685.1, "level": "full" + }, + "generic (double)": { + "us": 293691.7, + "level": "partial" + }, + "generic (strict)": { + "us": 379997.3, + "level": "full" + }, + "generic": { + "us": 393604.2, + "level": "partial" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 214973.3, + "variant": "parse_into structs", + "us": 103145.4, "level": "full" }, "best_any": { - "variant": "parse", - "us": 214973.3, + "variant": "parse_into structs", + "us": 103145.4, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 144906.8, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 144906.8, "level": "full" }, "variants": { + "parse_into structs": { + "us": 103145.4, + "level": "full" + }, + "parser (reused)": { + "us": 144906.8, + "level": "full" + }, "parse": { - "us": 214973.3, + "us": 189158.5, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 226825.4, + "us": 217155.1, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 175262.1, + "us": 171258.4, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 199708.0, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 192216.3, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 175262.1, + "us": 171258.4, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 192216.3, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 209366.0, + "us": 195082.1, "level": "no UTF-8" }, + "Document (raw numbers) (no encoding check)": { + "us": 195745.8, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 199708.0, + "level": "full" + }, "insitu (copy)": { - "us": 226825.4, + "us": 217155.1, + "level": "full" + }, + "Document (raw numbers)": { + "us": 308858.1, "level": "full" }, "Document": { - "us": 316379.3, + "us": 312143.9, "level": "full" } } @@ -3632,25 +6751,27 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 108385.8, + "us": 114700.9, "level": "full" }, "best_any": { "variant": "from_utf8 + structs", - "us": 108385.8, + "us": 114700.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "from_utf8 + structs": { - "us": 108385.8, + "us": 114700.9, "level": "full" }, "structs": { - "us": 138827.1, + "us": 142510.2, "level": "no UTF-8" }, "Value": { - "us": 560794.9, + "us": 525827.6, "level": "full" } } @@ -3658,21 +6779,23 @@ "sonic-rs": { "best": { "variant": "structs", - "us": 91995.7, + "us": 91949.7, "level": "full" }, "best_any": { "variant": "structs", - "us": 91995.7, + "us": 91949.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { - "us": 91995.7, + "us": 91949.7, "level": "full" }, "Value": { - "us": 145370.6, + "us": 135637.3, "level": "full" } } @@ -3680,21 +6803,23 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 266072.7, + "us": 258565.9, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 266072.7, + "us": 258565.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 266072.7, + "us": 258565.9, "level": "full" }, "borrowed (copy)": { - "us": 328257.2, + "us": 304889.5, "level": "full" } } @@ -3704,47 +6829,59 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 1.7, + "us": 1.8, "level": "full" }, "best_any": { "variant": "parse", + "us": 1.8, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 1.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", "us": 1.7, "level": "full" }, "variants": { "read (reused)": { - "us": 1.6, + "us": 1.7, "level": "full" }, "parse": { - "us": 1.7, + "us": 1.8, "level": "full" }, "structs (from_json)": { - "us": 1.7, + "us": 1.9, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 13.6, + "variant": "parse", + "us": 14.4, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 13.6, + "variant": "parse", + "us": 14.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 13.6, + "parse": { + "us": 14.4, "level": "full" }, - "parse": { - "us": 14.0, + "structs (from_json)": { + "us": 15.7, "level": "full" } } @@ -3760,35 +6897,71 @@ "us": 1.8, "level": "full" }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 1.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 1.8, + "level": "full" + }, "variants": { "read": { "us": 1.8, "level": "full" }, - "insitu (copy)": { + "read (reused allocator)": { "us": 1.8, "level": "full" + }, + "insitu (copy)": { + "us": 2.0, + "level": "full" + }, + "read (raw numbers)": { + "us": 2.0, + "level": "full" } } }, "simdjson": { "best": { "variant": "DOM", - "us": 2.1, + "us": 2.2, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 1.4, + "us": 1.3, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 1.7, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 1.0, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 1.1, + "us": 1.0, "level": "partial" }, "On-Demand": { - "us": 1.4, + "us": 1.3, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 1.3, + "level": "partial" + }, + "On-Demand structs": { + "us": 1.5, "level": "partial" }, "DOM (reused)": { @@ -3796,7 +6969,7 @@ "level": "full" }, "DOM": { - "us": 2.1, + "us": 2.2, "level": "full" } } @@ -3808,6 +6981,8 @@ "us": 1.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { "us": 1.9, @@ -3818,7 +6993,7 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1.9, + "us": 2.1, "level": "full" }, "best_any": { @@ -3826,69 +7001,133 @@ "us": 1.5, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 1.5, "level": "partial" }, "structs (validate_skipped)": { - "us": 1.9, + "us": 2.1, "level": "full" }, "lazy_json": { - "us": 2.2, + "us": 2.5, "level": "partial" }, + "generic (double)": { + "us": 11.7, + "level": "partial" + }, + "generic (double, strict)": { + "us": 11.8, + "level": "full" + }, "generic": { - "us": 14.4, + "us": 16.4, + "level": "partial" + }, + "generic (strict)": { + "us": 16.6, "level": "full" } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" } }, "Boost.JSON": { "best": { - "variant": "parse", - "us": 6.7, + "variant": "parse_into structs", + "us": 4.2, "level": "full" }, "best_any": { - "variant": "parse", - "us": 6.7, + "variant": "parse_into structs", + "us": 4.2, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 7.2, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 7.2, "level": "full" }, "variants": { + "parse_into structs": { + "us": 4.2, + "level": "full" + }, + "parser (reused)": { + "us": 7.2, + "level": "full" + }, "parse": { - "us": 6.7, + "us": 7.3, "level": "full" } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" } }, "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 7.2, + "us": 8.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 3.9, + "us": 4.3, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 9.3, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 8.4, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 3.9, + "us": 4.3, "level": "no UTF-8" }, "insitu (copy)": { - "us": 7.2, + "us": 8.2, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 8.4, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 9.3, "level": "full" }, "Document (no encoding check)": { - "us": 8.2, + "us": 9.3, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 9.5, "level": "no UTF-8" }, "Document": { - "us": 13.0, + "us": 14.7, + "level": "full" + }, + "Document (raw numbers)": { + "us": 15.0, "level": "full" } } @@ -3896,7 +7135,7 @@ "serde_json": { "best": { "variant": "from_utf8 + structs", - "us": 3.1, + "us": 3.0, "level": "full" }, "best_any": { @@ -3904,17 +7143,19 @@ "us": 3.0, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 3.0, "level": "no UTF-8" }, "from_utf8 + structs": { - "us": 3.1, + "us": 3.0, "level": "full" }, "Value": { - "us": 14.9, + "us": 13.0, "level": "full" } } @@ -3930,13 +7171,15 @@ "us": 2.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs": { "us": 2.0, "level": "full" }, "Value": { - "us": 2.8, + "us": 3.0, "level": "full" } } @@ -3944,21 +7187,791 @@ "simd-json": { "best": { "variant": "structs (copy)", - "us": 3.6, + "us": 3.7, "level": "full" }, "best_any": { "variant": "structs (copy)", - "us": 3.6, + "us": 3.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "structs (copy)": { - "us": 3.6, + "us": 3.7, "level": "full" }, "borrowed (copy)": { - "us": 5.4, + "us": 5.9, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 298.2, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 298.2, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 289.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 289.9, + "level": "full" + }, + "variants": { + "read (reused)": { + "us": 289.9, + "level": "full" + }, + "parse": { + "us": 298.2, + "level": "full" + }, + "structs (from_json)": { + "us": 299.3, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse", + "us": 3139.9, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 3139.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 3139.9, + "level": "full" + }, + "structs (from_json)": { + "us": 3225.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 337.6, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 337.6, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 338.2, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 338.2, + "level": "full" + }, + "variants": { + "insitu (copy)": { + "us": 337.6, + "level": "full" + }, + "read (reused allocator)": { + "us": 338.2, + "level": "full" + }, + "read": { + "us": 338.4, + "level": "full" + }, + "read (raw numbers)": { + "us": 345.0, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 300.9, + "level": "full" + }, + "best_any": { + "variant": "On-Demand", + "us": 162.4, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 303.2, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 160.0, + "level": "partial" + }, + "variants": { + "On-Demand (reused)": { + "us": 160.0, + "level": "partial" + }, + "On-Demand": { + "us": 162.4, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 163.8, + "level": "partial" + }, + "On-Demand structs": { + "us": 168.2, + "level": "partial" + }, + "DOM": { + "us": 300.9, + "level": "full" + }, + "DOM (reused)": { + "us": 303.2, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 297.2, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 297.2, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "structs (validate_skipped)", + "us": 413.4, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 292.4, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 292.4, + "level": "partial" + }, + "structs (validate_skipped)": { + "us": 413.4, + "level": "full" + }, + "lazy_json": { + "us": 437.1, + "level": "partial" + }, + "generic (double, strict)": { + "us": 2268.4, + "level": "full" + }, + "generic (double)": { + "us": 2272.0, + "level": "partial" + }, + "generic": { + "us": 2985.8, + "level": "partial" + }, + "generic (strict)": { + "us": 3014.6, + "level": "full" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse_into structs", + "us": 771.5, + "level": "full" + }, + "best_any": { + "variant": "parse_into structs", + "us": 771.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1306.0, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1306.0, + "level": "full" + }, + "variants": { + "parse_into structs": { + "us": 771.5, + "level": "full" + }, + "parse": { + "us": 1303.3, + "level": "full" + }, + "parser (reused)": { + "us": 1306.0, + "level": "full" + } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1262.2, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 849.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1510.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1428.0, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 849.2, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1262.2, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1428.0, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1440.8, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 1479.2, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1510.1, + "level": "full" + }, + "Document": { + "us": 2268.2, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2311.7, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + structs", + "us": 543.5, + "level": "full" + }, + "best_any": { + "variant": "from_utf8 + structs", + "us": 543.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "from_utf8 + structs": { + "us": 543.5, + "level": "full" + }, + "structs": { + "us": 580.2, + "level": "no UTF-8" + }, + "Value": { + "us": 3409.8, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "structs", + "us": 374.9, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 374.9, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 374.9, + "level": "full" + }, + "Value": { + "us": 439.6, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "structs (copy)", + "us": 658.8, + "level": "full" + }, + "best_any": { + "variant": "structs (copy)", + "us": 658.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (copy)": { + "us": 658.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 1225.0, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse", + "us": 562.0, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 562.0, + "level": "full" + }, + "best_reused": { + "variant": "read (reused)", + "us": 585.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused)", + "us": 585.8, + "level": "full" + }, + "variants": { + "parse": { + "us": 562.0, + "level": "full" + }, + "read (reused)": { + "us": 585.8, + "level": "full" + }, + "structs (from_json)": { + "us": 621.6, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse", + "us": 5388.8, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 5388.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 5388.8, + "level": "full" + }, + "structs (from_json)": { + "us": 5431.7, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy)", + "us": 519.9, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy)", + "us": 519.9, + "level": "full" + }, + "best_reused": { + "variant": "read (reused allocator)", + "us": 518.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read (reused allocator)", + "us": 518.9, + "level": "full" + }, + "variants": { + "read (reused allocator)": { + "us": 518.9, + "level": "full" + }, + "insitu (copy)": { + "us": 519.9, + "level": "full" + }, + "read (raw numbers)": { + "us": 532.3, + "level": "full" + }, + "read": { + "us": 534.0, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM", + "us": 590.9, + "level": "full" + }, + "best_any": { + "variant": "On-Demand (key selectors)", + "us": 333.7, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused)", + "us": 588.8, + "level": "full" + }, + "best_reused_any": { + "variant": "On-Demand (reused)", + "us": 332.7, + "level": "partial" + }, + "variants": { + "On-Demand (reused)": { + "us": 332.7, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 333.7, + "level": "partial" + }, + "On-Demand": { + "us": 343.7, + "level": "partial" + }, + "On-Demand structs": { + "us": 373.6, + "level": "partial" + }, + "DOM (reused)": { + "us": 588.8, + "level": "full" + }, + "DOM": { + "us": 590.9, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 739.1, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 739.1, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "structs (validate_skipped)", + "us": 681.7, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 205.5, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 205.5, + "level": "partial" + }, + "structs (validate_skipped)": { + "us": 681.7, + "level": "full" + }, + "lazy_json": { + "us": 1529.1, + "level": "partial" + }, + "generic (double, strict)": { + "us": 3450.4, + "level": "full" + }, + "generic (double)": { + "us": 3541.5, + "level": "partial" + }, + "generic (strict)": { + "us": 5314.4, + "level": "full" + }, + "generic": { + "us": 5316.2, + "level": "partial" + } + }, + "excluded": { + "lazy_json (string_view)": "wrong result (3284923)" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse_into structs", + "us": 1108.5, + "level": "full" + }, + "best_any": { + "variant": "parse_into structs", + "us": 1108.5, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused)", + "us": 1562.3, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused)", + "us": 1562.3, + "level": "full" + }, + "variants": { + "parse_into structs": { + "us": 1108.5, + "level": "full" + }, + "parse": { + "us": 1492.7, + "level": "full" + }, + "parser (reused)": { + "us": 1562.3, + "level": "full" + } + }, + "excluded": { + "parse (numbers: none)": "wrong result (1091); wrong result (1154); wrong result (8)" + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1761.5, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1562.4, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document (reused allocator)", + "us": 1848.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document (reused allocator) (no encoding check)", + "us": 1830.0, + "level": "no UTF-8" + }, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1562.4, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1761.5, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1830.0, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1848.5, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1856.7, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 2121.1, + "level": "no UTF-8" + }, + "Document": { + "us": 2384.2, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2646.2, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "from_utf8 + structs", + "us": 694.2, + "level": "full" + }, + "best_any": { + "variant": "from_utf8 + structs", + "us": 694.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "from_utf8 + structs": { + "us": 694.2, + "level": "full" + }, + "structs": { + "us": 727.6, + "level": "no UTF-8" + }, + "Value": { + "us": 5020.7, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "structs", + "us": 649.8, + "level": "full" + }, + "best_any": { + "variant": "structs", + "us": 649.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs": { + "us": 649.8, + "level": "full" + }, + "Value": { + "us": 866.6, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "structs (copy)", + "us": 1329.8, + "level": "full" + }, + "best_any": { + "variant": "structs (copy)", + "us": 1329.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "structs (copy)": { + "us": 1329.8, + "level": "full" + }, + "borrowed (copy)": { + "us": 3306.8, "level": "full" } } @@ -3969,22 +7982,24 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "editable", - "us": 552.3, + "variant": "editable (source numbers)", + "us": 592.0, "level": "full" }, "best_any": { - "variant": "editable", - "us": 552.3, + "variant": "editable (source numbers)", + "us": 592.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "editable": { - "us": 552.3, + "editable (source numbers)": { + "us": 592.0, "level": "full" }, - "editable (source numbers)": { - "us": 599.3, + "editable": { + "us": 630.0, "level": "full" } } @@ -3992,43 +8007,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 3156.3, + "us": 3222.1, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 3156.3, + "us": 3222.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 3156.3, + "us": 3222.1, "level": "full" }, "parse": { - "us": 4390.3, + "us": 4286.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 810.5, + "variant": "mut copy", + "us": 824.3, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 810.5, + "variant": "mut copy", + "us": 824.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 810.5, + "mut copy": { + "us": 824.3, "level": "full" }, - "mut copy": { - "us": 842.8, + "insitu (copy) + mut copy": { + "us": 893.1, "level": "full" } } @@ -4037,48 +8056,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 663.1, + "us": 662.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 663.1, + "us": 662.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 3766.7, + "variant": "generic (strict)", + "us": 4022.8, "level": "full" }, "best_any": { "variant": "generic", - "us": 3766.7, - "level": "full" + "us": 3901.3, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 3766.7, + "us": 3901.3, + "level": "partial" + }, + "generic (strict)": { + "us": 4022.8, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 2025.8, + "us": 2085.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 2025.8, + "us": 2085.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 2025.8, + "us": 2085.6, "level": "full" } } @@ -4086,29 +8119,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2511.4, + "us": 2588.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1896.1, + "us": 2119.8, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 1896.1, + "us": 2119.8, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2172.2, + "us": 2295.7, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2511.4, + "us": 2588.3, "level": "full" }, "Document": { - "us": 3264.6, + "us": 3038.6, "level": "full" } } @@ -4116,17 +8151,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 4474.5, + "us": 4036.2, "level": "full" }, "best_any": { "variant": "Value", - "us": 4474.5, + "us": 4036.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 4474.5, + "us": 4036.2, "level": "full" } } @@ -4134,17 +8171,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 1188.6, + "us": 1200.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 1188.6, + "us": 1200.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 1188.6, + "us": 1200.7, "level": "full" } } @@ -4152,21 +8191,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 2071.4, + "us": 1923.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 2071.4, + "us": 1923.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 2071.4, + "us": 1923.5, "level": "full" }, "owned (copy)": { - "us": 2880.3, + "us": 2634.1, "level": "full" } } @@ -4176,21 +8217,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 1112.2, + "us": 1128.0, "level": "full" }, "best_any": { "variant": "editable", - "us": 1112.2, + "us": 1128.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable": { - "us": 1112.2, + "us": 1128.0, "level": "full" }, "editable (source numbers)": { - "us": 1188.1, + "us": 1162.1, "level": "full" } } @@ -4198,21 +8241,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 5279.9, + "us": 5203.5, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 5279.9, + "us": 5203.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 5279.9, + "us": 5203.5, "level": "full" }, "parse": { - "us": 6291.3, + "us": 6358.4, "level": "full" } } @@ -4220,21 +8265,23 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 1723.9, + "us": 1728.8, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 1723.9, + "us": 1728.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) + mut copy": { - "us": 1723.9, + "us": 1728.8, "level": "full" }, "mut copy": { - "us": 1725.9, + "us": 1767.1, "level": "full" } } @@ -4243,48 +8290,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 1572.2, + "us": 1560.1, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 1572.2, + "us": 1560.1, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 6532.1, + "variant": "generic (strict)", + "us": 6662.4, "level": "full" }, "best_any": { "variant": "generic", - "us": 6532.1, - "level": "full" + "us": 6622.3, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 6532.1, + "us": 6622.3, + "level": "partial" + }, + "generic (strict)": { + "us": 6662.4, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 2943.3, + "us": 2927.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 2943.3, + "us": 2927.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 2943.3, + "us": 2927.8, "level": "full" } } @@ -4292,29 +8353,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 3309.5, + "us": 3272.9, "level": "full" }, "best_any": { - "variant": "Document (no encoding check)", - "us": 2941.7, + "variant": "insitu (copy) (no encoding check)", + "us": 2904.6, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "Document (no encoding check)": { - "us": 2941.7, + "insitu (copy) (no encoding check)": { + "us": 2904.6, "level": "no UTF-8" }, - "insitu (copy) (no encoding check)": { - "us": 2981.5, + "Document (no encoding check)": { + "us": 2938.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 3309.5, + "us": 3272.9, "level": "full" }, "Document": { - "us": 3527.0, + "us": 3606.2, "level": "full" } } @@ -4322,17 +8385,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 6922.5, + "us": 7180.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 6922.5, + "us": 7180.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6922.5, + "us": 7180.9, "level": "full" } } @@ -4340,17 +8405,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2383.6, + "us": 2415.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 2383.6, + "us": 2415.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2383.6, + "us": 2415.5, "level": "full" } } @@ -4358,21 +8425,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 4465.1, + "us": 4575.1, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 4465.1, + "us": 4575.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 4465.1, + "us": 4575.1, "level": "full" }, "owned (copy)": { - "us": 5204.4, + "us": 5459.1, "level": "full" } } @@ -4382,65 +8451,71 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 2962.1, + "us": 2944.0, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 2962.1, + "us": 2944.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 2962.1, + "us": 2944.0, "level": "full" }, "editable": { - "us": 6027.1, + "us": 5909.9, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "ordered_json", - "us": 16246.8, + "variant": "parse", + "us": 16069.7, "level": "full" }, "best_any": { - "variant": "ordered_json", - "us": 16246.8, + "variant": "parse", + "us": 16069.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "ordered_json": { - "us": 16246.8, + "parse": { + "us": 16069.7, "level": "full" }, - "parse": { - "us": 16580.2, + "ordered_json": { + "us": 16292.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 9805.6, + "variant": "insitu (copy) + mut copy", + "us": 9726.6, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 9805.6, + "variant": "insitu (copy) + mut copy", + "us": 9726.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "mut copy": { - "us": 9805.6, + "insitu (copy) + mut copy": { + "us": 9726.6, "level": "full" }, - "insitu (copy) + mut copy": { - "us": 9829.4, + "mut copy": { + "us": 9730.4, "level": "full" } } @@ -4449,48 +8524,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 8879.0, + "us": 8646.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 8879.0, + "us": 8646.9, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 24351.4, + "variant": "generic (strict)", + "us": 23242.2, "level": "full" }, "best_any": { - "variant": "generic", - "us": 24351.4, + "variant": "generic (strict)", + "us": 23242.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 24351.4, + "generic (strict)": { + "us": 23242.2, "level": "full" + }, + "generic": { + "us": 23631.7, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 13352.1, + "us": 13189.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 13352.1, + "us": 13189.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 13352.1, + "us": 13189.4, "level": "full" } } @@ -4498,47 +8587,51 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 20627.0, + "us": 20201.7, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 20627.0, - "level": "full" + "variant": "insitu (copy) (no encoding check)", + "us": 20072.8, + "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy)": { - "us": 20627.0, - "level": "full" + "insitu (copy) (no encoding check)": { + "us": 20072.8, + "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 20682.6, + "us": 20076.8, "level": "no UTF-8" }, - "Document": { - "us": 20913.9, + "insitu (copy)": { + "us": 20201.7, "level": "full" }, - "insitu (copy) (no encoding check)": { - "us": 21105.8, - "level": "no UTF-8" + "Document": { + "us": 20468.3, + "level": "full" } } }, "serde_json": { "best": { "variant": "Value", - "us": 18301.0, + "us": 17371.4, "level": "full" }, "best_any": { "variant": "Value", - "us": 18301.0, + "us": 17371.4, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 18301.0, + "us": 17371.4, "level": "full" } } @@ -4546,17 +8639,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 8007.1, + "us": 7957.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 8007.1, + "us": 7957.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 8007.1, + "us": 7957.7, "level": "full" } } @@ -4564,21 +8659,23 @@ "simd-json": { "best": { "variant": "owned (copy)", - "us": 16360.2, + "us": 15746.3, "level": "full" }, "best_any": { "variant": "owned (copy)", - "us": 16360.2, + "us": 15746.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "owned (copy)": { - "us": 16360.2, + "us": 15746.3, "level": "full" }, "borrowed (copy)": { - "us": 16446.2, + "us": 16036.0, "level": "full" } } @@ -4588,21 +8685,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 203216.6, + "us": 184134.6, "level": "full" }, "best_any": { "variant": "editable", - "us": 203216.6, + "us": 184134.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable": { - "us": 203216.6, + "us": 184134.6, "level": "full" }, "editable (source numbers)": { - "us": 212433.3, + "us": 202814.2, "level": "full" } } @@ -4610,43 +8709,47 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 922462.9, + "us": 855262.8, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 922462.9, + "us": 855262.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 922462.9, + "us": 855262.8, "level": "full" }, "parse": { - "us": 1174537.9, + "us": 1154608.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 322621.3, + "variant": "mut copy", + "us": 299300.2, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 322621.3, + "variant": "mut copy", + "us": 299300.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 322621.3, + "mut copy": { + "us": 299300.2, "level": "full" }, - "mut copy": { - "us": 344750.9, + "insitu (copy) + mut copy": { + "us": 322530.9, "level": "full" } } @@ -4655,48 +8758,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 181438.1, + "us": 191340.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 181438.1, + "us": 191340.5, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 940279.8, + "variant": "generic (strict)", + "us": 724015.6, "level": "full" }, "best_any": { - "variant": "generic", - "us": 940279.8, + "variant": "generic (strict)", + "us": 724015.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { - "generic": { - "us": 940279.8, + "generic (strict)": { + "us": 724015.6, "level": "full" + }, + "generic": { + "us": 734529.0, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 337631.6, + "us": 340874.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 337631.6, + "us": 340874.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 337631.6, + "us": 340874.8, "level": "full" } } @@ -4704,29 +8821,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 362717.3, + "us": 363264.6, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 314374.8, + "us": 307430.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 314374.8, + "us": 307430.2, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 332617.6, + "us": 319646.1, "level": "no UTF-8" }, "insitu (copy)": { - "us": 362717.3, + "us": 363264.6, "level": "full" }, "Document": { - "us": 441350.1, + "us": 437908.2, "level": "full" } } @@ -4734,17 +8853,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 805289.9, + "us": 843034.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 805289.9, + "us": 843034.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 805289.9, + "us": 843034.0, "level": "full" } } @@ -4752,17 +8873,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 413714.2, + "us": 421718.3, "level": "full" }, "best_any": { "variant": "Value", - "us": 413714.2, + "us": 421718.3, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 413714.2, + "us": 421718.3, "level": "full" } } @@ -4770,21 +8893,23 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 416658.4, + "us": 435817.2, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 416658.4, + "us": 435817.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 416658.4, + "us": 435817.2, "level": "full" }, "owned (copy)": { - "us": 701262.6, + "us": 696004.8, "level": "full" } } @@ -4794,21 +8919,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 3.3, + "us": 3.5, "level": "full" }, "best_any": { "variant": "editable", - "us": 3.3, + "us": 3.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "editable": { - "us": 3.3, + "us": 3.5, "level": "full" }, "editable (source numbers)": { - "us": 3.6, + "us": 3.5, "level": "full" } } @@ -4816,21 +8943,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 15.0, + "us": 15.2, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 15.0, + "us": 15.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "ordered_json": { - "us": 15.0, + "us": 15.2, "level": "full" }, "parse": { - "us": 17.1, + "us": 16.1, "level": "full" } } @@ -4846,13 +8975,15 @@ "us": 3.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "mut copy": { "us": 3.8, "level": "full" }, "insitu (copy) + mut copy": { - "us": 3.8, + "us": 4.0, "level": "full" } } @@ -4861,48 +8992,62 @@ "best": null, "best_any": { "variant": "Document", - "us": 3.6, + "us": 3.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document": { - "us": 3.6, + "us": 3.5, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 16.2, + "variant": "generic (strict)", + "us": 18.0, "level": "full" }, "best_any": { "variant": "generic", - "us": 16.2, - "level": "full" + "us": 17.5, + "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 16.2, + "us": 17.5, + "level": "partial" + }, + "generic (strict)": { + "us": 18.0, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse", - "us": 9.4, + "us": 9.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 9.4, + "us": 9.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse": { - "us": 9.4, + "us": 9.8, "level": "full" } } @@ -4910,29 +9055,31 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 11.6, + "us": 12.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 7.9, + "us": 8.4, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 7.9, + "us": 8.4, "level": "no UTF-8" }, "insitu (copy)": { - "us": 11.6, + "us": 12.0, "level": "full" }, "Document (no encoding check)": { - "us": 12.4, + "us": 12.9, "level": "no UTF-8" }, "Document": { - "us": 17.1, + "us": 18.1, "level": "full" } } @@ -4940,17 +9087,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 21.2, + "us": 16.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 21.2, + "us": 16.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 21.2, + "us": 16.9, "level": "full" } } @@ -4958,17 +9107,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 6.6, + "us": 6.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 6.6, + "us": 6.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6.6, + "us": 6.9, "level": "full" } } @@ -4976,21 +9127,491 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 9.0, + "us": 9.6, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 9.0, + "us": 9.6, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 9.0, + "us": 9.6, "level": "full" }, "owned (copy)": { - "us": 14.6, + "us": 14.3, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "editable", + "us": 502.6, + "level": "full" + }, + "best_any": { + "variant": "editable", + "us": 502.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "editable": { + "us": 502.6, + "level": "full" + }, + "editable (source numbers)": { + "us": 521.0, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "ordered_json", + "us": 2725.3, + "level": "full" + }, + "best_any": { + "variant": "ordered_json", + "us": 2725.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "ordered_json": { + "us": 2725.3, + "level": "full" + }, + "parse": { + "us": 3817.9, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy) + mut copy", + "us": 731.8, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) + mut copy", + "us": 731.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) + mut copy": { + "us": 731.8, + "level": "full" + }, + "mut copy": { + "us": 734.1, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 521.8, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 521.8, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 3389.1, + "level": "full" + }, + "best_any": { + "variant": "generic", + "us": 3330.7, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 3330.7, + "level": "partial" + }, + "generic (strict)": { + "us": 3389.1, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse", + "us": 1779.5, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 1779.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 1779.5, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 1997.6, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 1588.5, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 1588.5, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1997.6, + "level": "full" + }, + "Document (no encoding check)": { + "us": 2058.1, + "level": "no UTF-8" + }, + "Document": { + "us": 2876.8, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 3752.3, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 3752.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 3752.3, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 1050.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 1050.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 1050.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 1851.6, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 1851.6, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 1851.6, + "level": "full" + }, + "owned (copy)": { + "us": 2606.9, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "editable (source numbers)", + "us": 933.2, + "level": "full" + }, + "best_any": { + "variant": "editable (source numbers)", + "us": 933.2, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "editable (source numbers)": { + "us": 933.2, + "level": "full" + }, + "editable": { + "us": 942.5, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "ordered_json", + "us": 5058.0, + "level": "full" + }, + "best_any": { + "variant": "ordered_json", + "us": 5058.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "ordered_json": { + "us": 5058.0, + "level": "full" + }, + "parse": { + "us": 6112.1, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "mut copy", + "us": 1242.3, + "level": "full" + }, + "best_any": { + "variant": "mut copy", + "us": 1242.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "mut copy": { + "us": 1242.3, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 1277.5, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document", + "us": 1215.0, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document": { + "us": 1215.0, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 5852.4, + "level": "full" + }, + "best_any": { + "variant": "generic (strict)", + "us": 5852.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic (strict)": { + "us": 5852.4, + "level": "full" + }, + "generic": { + "us": 6010.9, + "level": "partial" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse", + "us": 2528.5, + "level": "full" + }, + "best_any": { + "variant": "parse", + "us": 2528.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse": { + "us": 2528.5, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "insitu (copy)", + "us": 2710.4, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) (no encoding check)", + "us": 2456.4, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "insitu (copy) (no encoding check)": { + "us": 2456.4, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 2710.4, + "level": "full" + }, + "Document (no encoding check)": { + "us": 2720.6, + "level": "no UTF-8" + }, + "Document": { + "us": 3339.7, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 5491.4, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 5491.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 5491.4, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 2034.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 2034.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 2034.0, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 4140.4, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 4140.4, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 4140.4, + "level": "full" + }, + "owned (copy)": { + "us": 5070.4, "level": "full" } } @@ -5002,25 +9623,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 489.1, + "us": 495.3, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 489.1, + "us": 495.3, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 493.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 493.9, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 487.0, + "us": 493.9, "level": "full" }, "parse + dump (source numbers)": { - "us": 489.1, + "us": 495.3, "level": "full" }, "parse + dump": { - "us": 497.4, + "us": 502.6, "level": "full" } } @@ -5028,39 +9659,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 3980.3, + "us": 3740.7, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 3980.3, + "us": 3740.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 3980.3, + "us": 3740.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 657.2, + "variant": "read + write", + "us": 605.2, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 657.2, + "variant": "read + write", + "us": 605.2, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 605.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 605.0, "level": "full" }, "variants": { - "insitu (copy) + write": { - "us": 657.2, + "read + write (reused allocator)": { + "us": 605.0, "level": "full" }, "read + write": { - "us": 670.3, + "us": 605.2, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 606.2, + "level": "full" + }, + "insitu (copy) + write": { + "us": 607.1, "level": "full" } } @@ -5068,25 +9719,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 838.7, + "us": 791.6, "level": "full" }, "best_any": { "variant": "minify", - "us": 127.5, + "us": 127.7, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 786.2, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 786.2, + "level": "full" + }, "variants": { "minify": { - "us": 127.5, + "us": 127.7, "level": "partial" }, "DOM (reused) + to_string": { - "us": 826.0, + "us": 786.2, "level": "full" }, "DOM + to_string": { - "us": 838.7, + "us": 791.6, "level": "full" } } @@ -5095,90 +9756,134 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 667.1, + "us": 640.3, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 667.1, + "us": 640.3, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 3646.9, + "variant": "generic (strict)", + "us": 3519.9, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 427.9, + "us": 424.8, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 427.9, + "us": 424.8, "level": "partial" }, "generic": { - "us": 3646.9, + "us": 3427.7, + "level": "partial" + }, + "generic (strict)": { + "us": 3519.9, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1931.3, + "us": 1910.7, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1931.3, + "us": 1910.7, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1899.7, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1899.7, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 1899.7, + "level": "full" + }, "parse + serialize": { - "us": 1931.3, + "us": 1910.7, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer (raw numbers)", - "us": 2932.4, + "variant": "SAX to Writer", + "us": 2733.2, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 1871.5, + "us": 1854.7, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2245.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2159.4, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 1871.5, + "us": 1854.7, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1910.0, + "us": 1874.3, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2247.8, + "us": 2122.9, "level": "no UTF-8" }, - "SAX to Writer (raw numbers)": { - "us": 2932.4, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2159.4, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 2245.8, "level": "full" }, "SAX to Writer": { - "us": 2962.9, + "us": 2733.2, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 2749.7, "level": "full" }, "Document + Writer": { - "us": 3208.2, + "us": 3012.3, "level": "full" } } @@ -5186,17 +9891,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 4081.3, + "us": 4220.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 4081.3, + "us": 4220.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 4081.3, + "us": 4220.0, "level": "full" } } @@ -5204,17 +9911,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 987.7, + "us": 1003.1, "level": "full" }, "best_any": { "variant": "Value", - "us": 987.7, + "us": 1003.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 987.7, + "us": 1003.1, "level": "full" } } @@ -5222,17 +9931,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 1924.3, + "us": 1877.7, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 1924.3, + "us": 1877.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 1924.3, + "us": 1877.7, "level": "full" } } @@ -5242,25 +9953,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 1007.5, + "us": 1027.1, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 1007.5, + "us": 1027.1, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 1047.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 1047.1, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 1007.5, - "level": "full" - }, - "read + dump (reused)": { - "us": 1018.6, + "us": 1027.1, "level": "full" }, "parse + dump": { - "us": 1028.1, + "us": 1045.0, + "level": "full" + }, + "read + dump (reused)": { + "us": 1047.1, "level": "full" } } @@ -5268,39 +9989,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 6495.0, + "us": 6095.9, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 6495.0, + "us": 6095.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 6495.0, + "us": 6095.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 1326.4, + "variant": "read (raw numbers) + write", + "us": 1262.3, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 1326.4, + "variant": "read (raw numbers) + write", + "us": 1262.3, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 1386.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 1386.0, "level": "full" }, "variants": { + "read (raw numbers) + write": { + "us": 1262.3, + "level": "full" + }, "read + write": { - "us": 1326.4, + "us": 1322.8, "level": "full" }, "insitu (copy) + write": { - "us": 1326.6, + "us": 1328.0, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 1386.0, "level": "full" } } @@ -5308,25 +10049,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1588.0, + "us": 1347.8, "level": "full" }, "best_any": { "variant": "minify", - "us": 322.2, + "us": 331.0, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 1347.9, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 1347.9, + "level": "full" + }, "variants": { "minify": { - "us": 322.2, + "us": 331.0, "level": "partial" }, "DOM + to_string": { - "us": 1588.0, + "us": 1347.8, "level": "full" }, "DOM (reused) + to_string": { - "us": 1607.7, + "us": 1347.9, "level": "full" } } @@ -5335,52 +10086,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1567.9, + "us": 1557.5, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1567.9, + "us": 1557.5, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 6502.9, + "variant": "generic (strict)", + "us": 6525.3, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 1143.7, + "us": 1141.8, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 1143.7, + "us": 1141.8, "level": "partial" }, "generic": { - "us": 6502.9, + "us": 6362.9, + "level": "partial" + }, + "generic (strict)": { + "us": 6525.3, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2902.4, + "us": 2839.6, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2902.4, + "us": 2839.6, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 2844.2, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 2844.2, "level": "full" }, "variants": { "parse + serialize": { - "us": 2902.4, + "us": 2839.6, + "level": "full" + }, + "parser (reused) + serialize": { + "us": 2844.2, "level": "full" } } @@ -5388,37 +10165,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 3189.2, + "us": 3087.9, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 2490.4, + "us": 2515.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2993.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2968.2, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 2490.4, + "us": 2515.8, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2863.9, + "us": 2819.3, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2966.5, + "us": 2915.8, "level": "no UTF-8" }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2968.2, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 2993.8, + "level": "full" + }, "SAX to Writer": { - "us": 3189.2, + "us": 3087.9, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 3411.3, + "us": 3335.9, "level": "full" }, "Document + Writer": { - "us": 3518.4, + "us": 3442.0, "level": "full" } } @@ -5426,17 +10221,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 6879.5, + "us": 6875.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 6879.5, + "us": 6875.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 6879.5, + "us": 6875.5, "level": "full" } } @@ -5444,17 +10241,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2093.3, + "us": 2174.1, "level": "full" }, "best_any": { "variant": "Value", - "us": 2093.3, + "us": 2174.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2093.3, + "us": 2174.1, "level": "full" } } @@ -5462,17 +10261,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 4375.1, + "us": 4655.1, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 4375.1, + "us": 4655.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 4375.1, + "us": 4655.1, "level": "full" } } @@ -5482,25 +10283,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 2688.2, + "us": 2581.7, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 2688.2, + "us": 2581.7, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 5782.0, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 5782.0, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 2688.2, - "level": "full" - }, - "read + dump (reused)": { - "us": 5862.6, + "us": 2581.7, "level": "full" }, "parse + dump": { - "us": 5929.9, + "us": 5568.7, + "level": "full" + }, + "read + dump (reused)": { + "us": 5782.0, "level": "full" } } @@ -5508,39 +10319,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 17572.6, + "us": 16579.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 17572.6, + "us": 16579.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 17572.6, + "us": 16579.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 9201.8, + "variant": "read (raw numbers) + write", + "us": 3025.2, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 9201.8, + "variant": "read (raw numbers) + write", + "us": 3025.2, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 9289.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 9289.7, "level": "full" }, "variants": { + "read (raw numbers) + write": { + "us": 3025.2, + "level": "full" + }, "insitu (copy) + write": { - "us": 9201.8, + "us": 9271.5, "level": "full" }, "read + write": { - "us": 9403.4, + "us": 9280.8, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 9289.7, "level": "full" } } @@ -5548,25 +10379,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 14645.1, + "us": 8324.0, "level": "full" }, "best_any": { "variant": "minify", - "us": 469.3, + "us": 463.6, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 8468.1, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 8468.1, + "level": "full" + }, "variants": { "minify": { - "us": 469.3, + "us": 463.6, "level": "partial" }, "DOM + to_string": { - "us": 14645.1, + "us": 8324.0, "level": "full" }, "DOM (reused) + to_string": { - "us": 14704.8, + "us": 8468.1, "level": "full" } } @@ -5575,52 +10416,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 9006.6, + "us": 8900.9, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 9006.6, + "us": 8900.9, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 25082.1, + "variant": "generic (strict)", + "us": 24117.5, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 2468.2, + "us": 2390.8, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 2468.2, + "us": 2390.8, "level": "partial" }, - "generic": { - "us": 25082.1, + "generic (strict)": { + "us": 24117.5, "level": "full" + }, + "generic": { + "us": 24539.9, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 13756.2, + "us": 13417.2, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 13756.2, + "us": 13417.2, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 13563.9, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 13563.9, "level": "full" }, "variants": { "parse + serialize": { - "us": 13756.2, + "us": 13417.2, + "level": "full" + }, + "parser (reused) + serialize": { + "us": 13563.9, "level": "full" } } @@ -5628,55 +10495,75 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 15260.2, + "us": 15024.1, "level": "full" }, "best_any": { "variant": "SAX to Writer (raw numbers)", - "us": 15260.2, + "us": 15024.1, + "level": "full" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 20637.8, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator)", + "us": 20637.8, "level": "full" }, "variants": { "SAX to Writer (raw numbers)": { - "us": 15260.2, + "us": 15024.1, "level": "full" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 15634.1, + "us": 15098.8, "level": "no UTF-8" }, - "Document + Writer": { - "us": 21761.0, + "Document + Writer (reused allocator)": { + "us": 20637.8, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 21899.9, + "us": 20678.1, "level": "no UTF-8" }, - "SAX to Writer": { - "us": 22107.1, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 20921.5, + "level": "no UTF-8" + }, + "Document + Writer": { + "us": 21466.1, "level": "full" }, "SAX to Writer (no encoding check)": { - "us": 22363.4, + "us": 21784.2, "level": "no UTF-8" + }, + "SAX to Writer": { + "us": 22091.3, + "level": "full" } } }, "serde_json": { "best": { "variant": "Value", - "us": 17248.7, + "us": 17275.8, "level": "full" }, "best_any": { "variant": "Value", - "us": 17248.7, + "us": 17275.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 17248.7, + "us": 17275.8, "level": "full" } } @@ -5684,17 +10571,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 7774.6, + "us": 7753.0, "level": "full" }, "best_any": { "variant": "Value", - "us": 7774.6, + "us": 7753.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 7774.6, + "us": 7753.0, "level": "full" } } @@ -5702,17 +10591,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 15278.3, + "us": 15954.8, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 15278.3, + "us": 15954.8, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 15278.3, + "us": 15954.8, "level": "full" } } @@ -5722,25 +10613,35 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 155982.1, + "us": 154790.9, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 155982.1, + "us": 154790.9, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 113241.3, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 113241.3, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 115960.3, + "us": 113241.3, "level": "full" }, "parse + dump (source numbers)": { - "us": 155982.1, + "us": 154790.9, "level": "full" }, "parse + dump": { - "us": 156014.1, + "us": 156948.1, "level": "full" } } @@ -5748,39 +10649,59 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 730814.0, + "us": 721379.9, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 730814.0, + "us": 721379.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 730814.0, + "us": 721379.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 195618.4, + "variant": "insitu (copy) + write", + "us": 200776.6, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 195618.4, + "variant": "insitu (copy) + write", + "us": 200776.6, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 104712.1, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 104712.1, "level": "full" }, "variants": { - "read + write": { - "us": 195618.4, + "read + write (reused allocator)": { + "us": 104712.1, "level": "full" }, "insitu (copy) + write": { - "us": 203878.4, + "us": 200776.6, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 201694.6, + "level": "full" + }, + "read + write": { + "us": 209170.5, "level": "full" } } @@ -5788,25 +10709,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 292317.0, + "us": 290205.6, "level": "full" }, "best_any": { "variant": "minify", - "us": 50455.7, + "us": 47485.6, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 228673.9, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 228673.9, + "level": "full" + }, "variants": { "minify": { - "us": 50455.7, + "us": 47485.6, "level": "partial" }, "DOM (reused) + to_string": { - "us": 232142.2, + "us": 228673.9, "level": "full" }, "DOM + to_string": { - "us": 292317.0, + "us": 290205.6, "level": "full" } } @@ -5815,52 +10746,78 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 174143.9, + "us": 175992.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 174143.9, + "us": 175992.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 546002.6, + "variant": "generic (strict)", + "us": 500683.8, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 94867.1, + "us": 97582.9, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { - "us": 94867.1, + "us": 97582.9, "level": "partial" }, - "generic": { - "us": 546002.6, + "generic (strict)": { + "us": 500683.8, "level": "full" + }, + "generic": { + "us": 522066.5, + "level": "partial" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 328320.9, + "us": 307133.7, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 328320.9, + "us": 307133.7, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 261311.6, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 261311.6, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 261311.6, + "level": "full" + }, "parse + serialize": { - "us": 328320.9, + "us": 307133.7, "level": "full" } } @@ -5868,37 +10825,55 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 393456.6, + "us": 397004.9, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 282972.7, + "variant": "SAX to Writer (raw numbers) (no encoding check)", + "us": 286963.0, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 340530.5, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 328096.3, "level": "no UTF-8" }, "variants": { - "SAX to Writer (no encoding check)": { - "us": 282972.7, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 286963.0, "level": "no UTF-8" }, - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 286953.7, + "SAX to Writer (no encoding check)": { + "us": 295851.9, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 328096.3, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 322569.0, + "us": 329706.7, "level": "no UTF-8" }, + "Document + Writer (reused allocator)": { + "us": 340530.5, + "level": "full" + }, "SAX to Writer (raw numbers)": { - "us": 393456.6, + "us": 397004.9, "level": "full" }, "SAX to Writer": { - "us": 406899.1, + "us": 410159.5, "level": "full" }, "Document + Writer": { - "us": 434924.0, + "us": 438302.2, "level": "full" } } @@ -5906,17 +10881,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 615033.2, + "us": 628191.9, "level": "full" }, "best_any": { "variant": "Value", - "us": 615033.2, + "us": 628191.9, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 615033.2, + "us": 628191.9, "level": "full" } } @@ -5924,17 +10901,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 217697.4, + "us": 217354.2, "level": "full" }, "best_any": { "variant": "Value", - "us": 217697.4, + "us": 217354.2, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 217697.4, + "us": 217354.2, "level": "full" } } @@ -5942,17 +10921,19 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 419473.7, + "us": 419412.0, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 419473.7, + "us": 419412.0, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 419473.7, + "us": 419412.0, "level": "full" } } @@ -5970,6 +10951,16 @@ "us": 2.6, "level": "full" }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 2.5, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 2.5, + "level": "full" + }, "variants": { "read + dump (reused)": { "us": 2.5, @@ -5980,7 +10971,7 @@ "level": "full" }, "parse + dump (source numbers)": { - "us": 2.7, + "us": 2.6, "level": "full" } } @@ -5988,17 +10979,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 16.5, + "us": 15.1, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 16.5, + "us": 15.1, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "parse + dump": { - "us": 16.5, + "us": 15.1, "level": "full" } } @@ -6006,21 +10999,39 @@ "yyjson": { "best": { "variant": "read + write", - "us": 3.1, + "us": 3.0, "level": "full" }, "best_any": { "variant": "read + write", - "us": 3.1, + "us": 3.0, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 2.7, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 2.7, "level": "full" }, "variants": { + "read + write (reused allocator)": { + "us": 2.7, + "level": "full" + }, "read + write": { - "us": 3.1, + "us": 3.0, "level": "full" }, "insitu (copy) + write": { - "us": 3.1, + "us": 3.0, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 3.0, "level": "full" } } @@ -6028,7 +11039,7 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 4.9, + "us": 4.7, "level": "full" }, "best_any": { @@ -6036,17 +11047,27 @@ "us": 0.6, "level": "partial" }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 4.5, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 4.5, + "level": "full" + }, "variants": { "minify": { "us": 0.6, "level": "partial" }, "DOM (reused) + to_string": { - "us": 4.7, + "us": 4.5, "level": "full" }, "DOM + to_string": { - "us": 4.9, + "us": 4.7, "level": "full" } } @@ -6055,20 +11076,22 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 3.5, + "us": 3.2, "level": "no UTF-8" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 3.5, + "us": 3.2, "level": "no UTF-8" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 16.1, + "variant": "generic (strict)", + "us": 15.6, "level": "full" }, "best_any": { @@ -6076,69 +11099,111 @@ "us": 2.0, "level": "partial" }, + "best_reused": null, + "best_reused_any": null, "variants": { "minify_json": { "us": 2.0, "level": "partial" }, "generic": { - "us": 16.1, + "us": 15.2, + "level": "partial" + }, + "generic (strict)": { + "us": 15.6, "level": "full" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 9.8, + "us": 9.2, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 9.8, + "us": 9.2, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 8.9, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 8.9, "level": "full" }, "variants": { + "parser (reused) + serialize": { + "us": 8.9, + "level": "full" + }, "parse + serialize": { - "us": 9.8, + "us": 9.2, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer (raw numbers)", - "us": 15.6, + "variant": "SAX to Writer", + "us": 15.2, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 10.9, + "variant": "SAX to Writer (no encoding check)", + "us": 10.1, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 12.1, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 11.5, "level": "no UTF-8" }, "variants": { - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 10.9, + "SAX to Writer (no encoding check)": { + "us": 10.1, "level": "no UTF-8" }, - "SAX to Writer (no encoding check)": { - "us": 11.1, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 10.4, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 11.5, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 12.7, + "us": 12.0, "level": "no UTF-8" }, - "SAX to Writer (raw numbers)": { - "us": 15.6, + "Document + Writer (reused allocator)": { + "us": 12.1, "level": "full" }, "SAX to Writer": { - "us": 15.7, + "us": 15.2, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 15.3, "level": "full" }, "Document + Writer": { - "us": 17.8, + "us": 16.8, "level": "full" } } @@ -6146,17 +11211,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 18.4, + "us": 16.7, "level": "full" }, "best_any": { "variant": "Value", - "us": 18.4, + "us": 16.7, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 18.4, + "us": 16.7, "level": "full" } } @@ -6164,17 +11231,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 5.3, + "us": 5.5, "level": "full" }, "best_any": { "variant": "Value", - "us": 5.3, + "us": 5.5, "level": "full" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 5.3, + "us": 5.5, "level": "full" } } @@ -6182,17 +11251,679 @@ "simd-json": { "best": { "variant": "borrowed (copy)", - "us": 8.7, + "us": 9.5, "level": "full" }, "best_any": { "variant": "borrowed (copy)", - "us": 8.7, + "us": 9.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 9.5, + "level": "full" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "parse + dump (source numbers)", + "us": 441.0, + "level": "full" + }, + "best_any": { + "variant": "parse + dump (source numbers)", + "us": 441.0, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 441.8, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 441.8, "level": "full" }, + "variants": { + "parse + dump (source numbers)": { + "us": 441.0, + "level": "full" + }, + "read + dump (reused)": { + "us": 441.8, + "level": "full" + }, + "parse + dump": { + "us": 443.2, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse + dump", + "us": 3552.8, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 3552.8, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse + dump": { + "us": 3552.8, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "insitu (copy) + write", + "us": 544.4, + "level": "full" + }, + "best_any": { + "variant": "insitu (copy) + write", + "us": 544.4, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 537.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 537.4, + "level": "full" + }, + "variants": { + "read + write (reused allocator)": { + "us": 537.4, + "level": "full" + }, + "insitu (copy) + write": { + "us": 544.4, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 544.7, + "level": "full" + }, + "read + write": { + "us": 545.7, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM + to_string", + "us": 774.7, + "level": "full" + }, + "best_any": { + "variant": "minify", + "us": 90.9, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 820.9, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 820.9, + "level": "full" + }, + "variants": { + "minify": { + "us": 90.9, + "level": "partial" + }, + "DOM + to_string": { + "us": 774.7, + "level": "full" + }, + "DOM (reused) + to_string": { + "us": 820.9, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document + Serialize", + "us": 527.6, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document + Serialize": { + "us": 527.6, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 3302.6, + "level": "full" + }, + "best_any": { + "variant": "minify_json", + "us": 357.8, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "minify_json": { + "us": 357.8, + "level": "partial" + }, + "generic": { + "us": 3279.6, + "level": "partial" + }, + "generic (strict)": { + "us": 3302.6, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse + serialize", + "us": 1796.8, + "level": "full" + }, + "best_any": { + "variant": "parse + serialize", + "us": 1796.8, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 1788.6, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 1788.6, + "level": "full" + }, + "variants": { + "parser (reused) + serialize": { + "us": 1788.6, + "level": "full" + }, + "parse + serialize": { + "us": 1796.8, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX to Writer", + "us": 2689.2, + "level": "full" + }, + "best_any": { + "variant": "SAX to Writer (no encoding check)", + "us": 1809.2, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2229.4, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2116.4, + "level": "no UTF-8" + }, + "variants": { + "SAX to Writer (no encoding check)": { + "us": 1809.2, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 1828.5, + "level": "no UTF-8" + }, + "Document + Writer (no encoding check)": { + "us": 2094.0, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2116.4, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 2229.4, + "level": "full" + }, + "SAX to Writer": { + "us": 2689.2, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 2706.0, + "level": "full" + }, + "Document + Writer": { + "us": 2924.8, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 4035.0, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 4035.0, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 4035.0, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 860.5, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 860.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 860.5, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 1851.3, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 1851.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed (copy)": { - "us": 8.7, + "us": 1851.3, + "level": "full" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "parse + dump (source numbers)", + "us": 805.1, + "level": "full" + }, + "best_any": { + "variant": "parse + dump (source numbers)", + "us": 805.1, + "level": "full" + }, + "best_reused": { + "variant": "read + dump (reused)", + "us": 826.9, + "level": "full" + }, + "best_reused_any": { + "variant": "read + dump (reused)", + "us": 826.9, + "level": "full" + }, + "variants": { + "parse + dump (source numbers)": { + "us": 805.1, + "level": "full" + }, + "parse + dump": { + "us": 817.6, + "level": "full" + }, + "read + dump (reused)": { + "us": 826.9, + "level": "full" + } + } + }, + "nlohmann json": { + "best": { + "variant": "parse + dump", + "us": 6111.5, + "level": "full" + }, + "best_any": { + "variant": "parse + dump", + "us": 6111.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "parse + dump": { + "us": 6111.5, + "level": "full" + } + } + }, + "yyjson": { + "best": { + "variant": "read (raw numbers) + write", + "us": 797.9, + "level": "full" + }, + "best_any": { + "variant": "read (raw numbers) + write", + "us": 797.9, + "level": "full" + }, + "best_reused": { + "variant": "read + write (reused allocator)", + "us": 842.4, + "level": "full" + }, + "best_reused_any": { + "variant": "read + write (reused allocator)", + "us": 842.4, + "level": "full" + }, + "variants": { + "read (raw numbers) + write": { + "us": 797.9, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 842.4, + "level": "full" + }, + "read + write": { + "us": 842.7, + "level": "full" + }, + "insitu (copy) + write": { + "us": 846.5, + "level": "full" + } + } + }, + "simdjson": { + "best": { + "variant": "DOM + to_string", + "us": 1183.6, + "level": "full" + }, + "best_any": { + "variant": "minify", + "us": 97.1, + "level": "partial" + }, + "best_reused": { + "variant": "DOM (reused) + to_string", + "us": 1180.3, + "level": "full" + }, + "best_reused_any": { + "variant": "DOM (reused) + to_string", + "us": 1180.3, + "level": "full" + }, + "variants": { + "minify": { + "us": 97.1, + "level": "partial" + }, + "DOM (reused) + to_string": { + "us": 1180.3, + "level": "full" + }, + "DOM + to_string": { + "us": 1183.6, + "level": "full" + } + } + }, + "sonic-cpp": { + "best": null, + "best_any": { + "variant": "Document + Serialize", + "us": 1216.8, + "level": "no UTF-8" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Document + Serialize": { + "us": 1216.8, + "level": "no UTF-8" + } + } + }, + "Glaze": { + "best": { + "variant": "generic (strict)", + "us": 5989.6, + "level": "full" + }, + "best_any": { + "variant": "minify_json", + "us": 638.6, + "level": "partial" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "minify_json": { + "us": 638.6, + "level": "partial" + }, + "generic": { + "us": 5763.8, + "level": "partial" + }, + "generic (strict)": { + "us": 5989.6, + "level": "full" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "parse + serialize", + "us": 2506.1, + "level": "full" + }, + "best_any": { + "variant": "parse + serialize", + "us": 2506.1, + "level": "full" + }, + "best_reused": { + "variant": "parser (reused) + serialize", + "us": 2611.8, + "level": "full" + }, + "best_reused_any": { + "variant": "parser (reused) + serialize", + "us": 2611.8, + "level": "full" + }, + "variants": { + "parse + serialize": { + "us": 2506.1, + "level": "full" + }, + "parser (reused) + serialize": { + "us": 2611.8, + "level": "full" + } + } + }, + "RapidJSON": { + "best": { + "variant": "SAX to Writer", + "us": 2959.8, + "level": "full" + }, + "best_any": { + "variant": "SAX to Writer (no encoding check)", + "us": 2370.8, + "level": "no UTF-8" + }, + "best_reused": { + "variant": "Document + Writer (reused allocator)", + "us": 2924.2, + "level": "full" + }, + "best_reused_any": { + "variant": "Document + Writer (reused allocator) (no encoding check)", + "us": 2789.4, + "level": "no UTF-8" + }, + "variants": { + "SAX to Writer (no encoding check)": { + "us": 2370.8, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 2569.1, + "level": "no UTF-8" + }, + "Document + Writer (no encoding check)": { + "us": 2775.0, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2789.4, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 2924.2, + "level": "full" + }, + "SAX to Writer": { + "us": 2959.8, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 3305.2, + "level": "full" + }, + "Document + Writer": { + "us": 3402.5, + "level": "full" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 5949.5, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 5949.5, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 5949.5, + "level": "full" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 1731.3, + "level": "full" + }, + "best_any": { + "variant": "Value", + "us": 1731.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 1731.3, + "level": "full" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed (copy)", + "us": 4193.3, + "level": "full" + }, + "best_any": { + "variant": "borrowed (copy)", + "us": 4193.3, + "level": "full" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed (copy)": { + "us": 4193.3, "level": "full" } } @@ -6204,17 +11935,19 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 147.7, + "us": 148.9, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 147.7, + "us": 148.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 147.7, + "us": 148.9, "level": "n/a" }, "dump": { @@ -6226,17 +11959,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 440.9, + "us": 439.6, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 440.9, + "us": 439.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 440.9, + "us": 439.6, "level": "n/a" } } @@ -6244,17 +11979,19 @@ "yyjson": { "best": { "variant": "write", - "us": 216.1, + "us": 180.4, "level": "n/a" }, "best_any": { "variant": "write", - "us": 216.1, + "us": 180.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 216.1, + "us": 180.4, "level": "n/a" } } @@ -6262,17 +11999,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 491.2, + "us": 451.2, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 491.2, + "us": 451.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 491.2, + "us": 451.2, "level": "n/a" } } @@ -6280,17 +12019,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 745.7, + "us": 688.1, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 745.7, + "us": 688.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 745.7, + "us": 688.1, "level": "n/a" } } @@ -6298,17 +12039,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 269.7, + "us": 261.8, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 269.7, + "us": 261.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 269.7, + "us": 261.8, "level": "n/a" } } @@ -6316,35 +12059,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 364.5, + "us": 336.5, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 364.5, + "us": 336.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 364.5, + "us": 336.5, + "level": "n/a" + }, + "generic (strict)": { + "us": 369.4, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 477.6, + "us": 459.2, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 477.6, + "us": 459.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 477.6, + "us": 459.2, "level": "n/a" } } @@ -6352,17 +12107,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 562.8, + "us": 559.5, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 562.8, + "us": 559.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 562.8, + "us": 559.5, "level": "n/a" } } @@ -6370,17 +12127,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 442.3, + "us": 445.3, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 442.3, + "us": 445.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 442.3, + "us": 445.3, "level": "n/a" } } @@ -6388,17 +12147,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 604.4, + "us": 597.0, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 604.4, + "us": 597.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 604.4, + "us": 597.0, "level": "n/a" } } @@ -6408,21 +12169,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 252.9, + "us": 256.4, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 252.9, + "us": 256.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 252.9, + "us": 256.4, "level": "n/a" }, "dump": { - "us": 271.3, + "us": 271.5, "level": "n/a" } } @@ -6430,17 +12193,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 627.7, + "us": 636.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 627.7, + "us": 636.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 627.7, + "us": 636.3, "level": "n/a" } } @@ -6448,17 +12213,19 @@ "yyjson": { "best": { "variant": "write", - "us": 331.1, + "us": 330.1, "level": "n/a" }, "best_any": { "variant": "write", - "us": 331.1, + "us": 330.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 331.1, + "us": 330.1, "level": "n/a" } } @@ -6466,17 +12233,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 749.5, + "us": 598.4, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 749.5, + "us": 598.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 749.5, + "us": 598.4, "level": "n/a" } } @@ -6484,17 +12253,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 1031.5, + "us": 1020.1, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 1031.5, + "us": 1020.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 1031.5, + "us": 1020.1, "level": "n/a" } } @@ -6502,17 +12273,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 532.8, + "us": 532.0, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 532.8, + "us": 532.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 532.8, + "us": 532.0, "level": "n/a" } } @@ -6520,35 +12293,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 712.4, + "us": 662.9, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 712.4, + "us": 662.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 712.4, + "us": 662.9, + "level": "n/a" + }, + "generic (strict)": { + "us": 687.1, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 1014.6, + "us": 1011.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 1014.6, + "us": 1011.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 1014.6, + "us": 1011.7, "level": "n/a" } } @@ -6556,17 +12341,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 882.5, + "us": 848.0, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 882.5, + "us": 848.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 882.5, + "us": 848.0, "level": "n/a" } } @@ -6574,17 +12361,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 934.6, + "us": 931.3, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 934.6, + "us": 931.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 934.6, + "us": 931.3, "level": "n/a" } } @@ -6592,17 +12381,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 809.4, + "us": 808.9, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 809.4, + "us": 808.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 809.4, + "us": 808.9, "level": "n/a" } } @@ -6612,21 +12403,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 871.4, + "us": 893.0, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 871.4, + "us": 893.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 871.4, + "us": 893.0, "level": "n/a" }, "dump": { - "us": 3934.5, + "us": 3978.6, "level": "n/a" } } @@ -6634,17 +12427,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 4091.1, + "us": 4063.2, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 4091.1, + "us": 4063.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 4091.1, + "us": 4063.2, "level": "n/a" } } @@ -6652,17 +12447,19 @@ "yyjson": { "best": { "variant": "write", - "us": 3620.4, + "us": 3620.5, "level": "n/a" }, "best_any": { "variant": "write", - "us": 3620.4, + "us": 3620.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 3620.4, + "us": 3620.5, "level": "n/a" } } @@ -6670,17 +12467,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 10839.6, + "us": 5334.0, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 10839.6, + "us": 5334.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 10839.6, + "us": 5334.0, "level": "n/a" } } @@ -6688,17 +12487,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 8772.8, + "us": 9144.4, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 8772.8, + "us": 9144.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 8772.8, + "us": 9144.4, "level": "n/a" } } @@ -6706,17 +12507,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 5100.0, + "us": 5267.8, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 5100.0, + "us": 5267.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 5100.0, + "us": 5267.8, "level": "n/a" } } @@ -6724,35 +12527,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 4265.3, + "us": 3684.6, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 4265.3, + "us": 3684.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 4265.3, + "us": 3684.6, + "level": "n/a" + }, + "generic (strict)": { + "us": 3746.3, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 5750.2, + "us": 6253.4, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 5750.2, + "us": 6253.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 5750.2, + "us": 6253.4, "level": "n/a" } } @@ -6760,17 +12575,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 3978.8, + "us": 3963.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 3978.8, + "us": 3963.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 3978.8, + "us": 3963.8, "level": "n/a" } } @@ -6778,17 +12595,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 3954.2, + "us": 4047.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 3954.2, + "us": 4047.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 3954.2, + "us": 4047.8, "level": "n/a" } } @@ -6796,17 +12615,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 4824.9, + "us": 4816.6, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 4824.9, + "us": 4816.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 4824.9, + "us": 4816.6, "level": "n/a" } } @@ -6816,21 +12637,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 70980.8, + "us": 67041.9, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 70980.8, + "us": 67041.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 70980.8, + "us": 67041.9, "level": "n/a" }, "dump": { - "us": 72105.9, + "us": 68836.0, "level": "n/a" } } @@ -6838,17 +12661,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 129455.0, + "us": 119265.9, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 129455.0, + "us": 119265.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { - "us": 129455.0, + "us": 119265.9, "level": "n/a" } } @@ -6856,17 +12681,19 @@ "yyjson": { "best": { "variant": "write", - "us": 76732.7, + "us": 70501.7, "level": "n/a" }, "best_any": { "variant": "write", - "us": 76732.7, + "us": 70501.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { - "us": 76732.7, + "us": 70501.7, "level": "n/a" } } @@ -6874,17 +12701,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 196092.2, + "us": 174143.8, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 196092.2, + "us": 174143.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 196092.2, + "us": 174143.8, "level": "n/a" } } @@ -6892,17 +12721,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 150333.7, + "us": 138466.5, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 150333.7, + "us": 138466.5, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 150333.7, + "us": 138466.5, "level": "n/a" } } @@ -6910,17 +12741,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 80556.4, + "us": 74547.4, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 80556.4, + "us": 74547.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 80556.4, + "us": 74547.4, "level": "n/a" } } @@ -6928,35 +12761,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 143981.2, + "us": 127927.6, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 143981.2, + "us": 127927.6, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 143981.2, + "us": 127927.6, + "level": "n/a" + }, + "generic (strict)": { + "us": 138372.2, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 137839.7, + "us": 126330.3, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 137839.7, + "us": 126330.3, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 137839.7, + "us": 126330.3, "level": "n/a" } } @@ -6964,17 +12809,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 120716.3, + "us": 129472.9, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 120716.3, + "us": 129472.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 120716.3, + "us": 129472.9, "level": "n/a" } } @@ -6982,17 +12829,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 100888.7, + "us": 104487.1, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 100888.7, + "us": 104487.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 100888.7, + "us": 104487.1, "level": "n/a" } } @@ -7000,17 +12849,19 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 110710.5, + "us": 114244.7, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 110710.5, + "us": 114244.7, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 110710.5, + "us": 114244.7, "level": "n/a" } } @@ -7028,6 +12879,8 @@ "us": 0.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { "us": 0.9, @@ -7050,6 +12903,8 @@ "us": 2.0, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "dump": { "us": 2.0, @@ -7068,6 +12923,8 @@ "us": 1.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "write": { "us": 1.2, @@ -7078,17 +12935,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 2.9, + "us": 2.8, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 2.9, + "us": 2.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "to_string": { - "us": 2.9, + "us": 2.8, "level": "n/a" } } @@ -7096,17 +12955,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 4.3, + "us": 3.9, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 4.3, + "us": 3.9, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Writer": { - "us": 4.3, + "us": 3.9, "level": "n/a" } } @@ -7114,17 +12975,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 1.5, + "us": 1.4, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 1.5, + "us": 1.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Serialize": { - "us": 1.5, + "us": 1.4, "level": "n/a" } } @@ -7132,35 +12995,47 @@ "Glaze": { "best": { "variant": "generic", - "us": 1.9, + "us": 1.8, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 1.9, + "us": 1.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "generic": { - "us": 1.9, + "us": 1.8, + "level": "n/a" + }, + "generic (strict)": { + "us": 2.1, "level": "n/a" } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" } }, "Boost.JSON": { "best": { "variant": "serialize", - "us": 2.5, + "us": 2.4, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 2.5, + "us": 2.4, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "serialize": { - "us": 2.5, + "us": 2.4, "level": "n/a" } } @@ -7168,17 +13043,19 @@ "serde_json": { "best": { "variant": "Value", - "us": 2.9, + "us": 3.2, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 2.9, + "us": 3.2, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2.9, + "us": 3.2, "level": "n/a" } } @@ -7186,17 +13063,19 @@ "sonic-rs": { "best": { "variant": "Value", - "us": 2.6, + "us": 2.8, "level": "n/a" }, "best_any": { "variant": "Value", - "us": 2.6, + "us": 2.8, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "Value": { - "us": 2.6, + "us": 2.8, "level": "n/a" } } @@ -7204,17 +13083,487 @@ "simd-json": { "best": { "variant": "borrowed", - "us": 2.7, + "us": 3.1, "level": "n/a" }, "best_any": { "variant": "borrowed", - "us": 2.7, + "us": 3.1, "level": "n/a" }, + "best_reused": null, + "best_reused_any": null, "variants": { "borrowed": { - "us": 2.7, + "us": 3.1, + "level": "n/a" + } + } + } + }, + "twitter_min": { + "nlohmann json_document": { + "best": { + "variant": "dump (source numbers)", + "us": 146.1, + "level": "n/a" + }, + "best_any": { + "variant": "dump (source numbers)", + "us": 146.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump (source numbers)": { + "us": 146.1, + "level": "n/a" + }, + "dump": { + "us": 150.0, + "level": "n/a" + } + } + }, + "nlohmann json": { + "best": { + "variant": "dump", + "us": 437.7, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 437.7, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 437.7, + "level": "n/a" + } + } + }, + "yyjson": { + "best": { + "variant": "write", + "us": 180.6, + "level": "n/a" + }, + "best_any": { + "variant": "write", + "us": 180.6, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "write": { + "us": 180.6, + "level": "n/a" + } + } + }, + "simdjson": { + "best": { + "variant": "to_string", + "us": 457.8, + "level": "n/a" + }, + "best_any": { + "variant": "to_string", + "us": 457.8, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "to_string": { + "us": 457.8, + "level": "n/a" + } + } + }, + "RapidJSON": { + "best": { + "variant": "Writer", + "us": 668.7, + "level": "n/a" + }, + "best_any": { + "variant": "Writer", + "us": 668.7, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Writer": { + "us": 668.7, + "level": "n/a" + } + } + }, + "sonic-cpp": { + "best": { + "variant": "Serialize", + "us": 247.7, + "level": "n/a" + }, + "best_any": { + "variant": "Serialize", + "us": 247.7, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Serialize": { + "us": 247.7, + "level": "n/a" + } + } + }, + "Glaze": { + "best": { + "variant": "generic", + "us": 337.9, + "level": "n/a" + }, + "best_any": { + "variant": "generic", + "us": 337.9, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 337.9, + "level": "n/a" + }, + "generic (strict)": { + "us": 369.9, + "level": "n/a" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "serialize", + "us": 461.1, + "level": "n/a" + }, + "best_any": { + "variant": "serialize", + "us": 461.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "serialize": { + "us": 461.1, + "level": "n/a" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 562.4, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 562.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 562.4, + "level": "n/a" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 442.4, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 442.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 442.4, + "level": "n/a" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed", + "us": 594.0, + "level": "n/a" + }, + "best_any": { + "variant": "borrowed", + "us": 594.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed": { + "us": 594.0, + "level": "n/a" + } + } + } + }, + "citm_catalog_min": { + "nlohmann json_document": { + "best": { + "variant": "dump (source numbers)", + "us": 249.5, + "level": "n/a" + }, + "best_any": { + "variant": "dump (source numbers)", + "us": 249.5, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump (source numbers)": { + "us": 249.5, + "level": "n/a" + }, + "dump": { + "us": 268.9, + "level": "n/a" + } + } + }, + "nlohmann json": { + "best": { + "variant": "dump", + "us": 645.2, + "level": "n/a" + }, + "best_any": { + "variant": "dump", + "us": 645.2, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "dump": { + "us": 645.2, + "level": "n/a" + } + } + }, + "yyjson": { + "best": { + "variant": "write", + "us": 329.8, + "level": "n/a" + }, + "best_any": { + "variant": "write", + "us": 329.8, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "write": { + "us": 329.8, + "level": "n/a" + } + } + }, + "simdjson": { + "best": { + "variant": "to_string", + "us": 596.3, + "level": "n/a" + }, + "best_any": { + "variant": "to_string", + "us": 596.3, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "to_string": { + "us": 596.3, + "level": "n/a" + } + } + }, + "RapidJSON": { + "best": { + "variant": "Writer", + "us": 1018.1, + "level": "n/a" + }, + "best_any": { + "variant": "Writer", + "us": 1018.1, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Writer": { + "us": 1018.1, + "level": "n/a" + } + } + }, + "sonic-cpp": { + "best": { + "variant": "Serialize", + "us": 523.6, + "level": "n/a" + }, + "best_any": { + "variant": "Serialize", + "us": 523.6, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Serialize": { + "us": 523.6, + "level": "n/a" + } + } + }, + "Glaze": { + "best": { + "variant": "generic", + "us": 666.3, + "level": "n/a" + }, + "best_any": { + "variant": "generic", + "us": 666.3, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "generic": { + "us": 666.3, + "level": "n/a" + }, + "generic (strict)": { + "us": 691.3, + "level": "n/a" + } + }, + "excluded": { + "generic (double)": "the output does not read back as the expected document", + "generic (double, strict)": "the output does not read back as the expected document" + } + }, + "Boost.JSON": { + "best": { + "variant": "serialize", + "us": 1007.4, + "level": "n/a" + }, + "best_any": { + "variant": "serialize", + "us": 1007.4, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "serialize": { + "us": 1007.4, + "level": "n/a" + } + } + }, + "serde_json": { + "best": { + "variant": "Value", + "us": 851.0, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 851.0, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 851.0, + "level": "n/a" + } + } + }, + "sonic-rs": { + "best": { + "variant": "Value", + "us": 908.2, + "level": "n/a" + }, + "best_any": { + "variant": "Value", + "us": 908.2, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "Value": { + "us": 908.2, + "level": "n/a" + } + } + }, + "simd-json": { + "best": { + "variant": "borrowed", + "us": 788.3, + "level": "n/a" + }, + "best_any": { + "variant": "borrowed", + "us": 788.3, + "level": "n/a" + }, + "best_reused": null, + "best_reused_any": null, + "variants": { + "borrowed": { + "us": 788.3, "level": "n/a" } } diff --git a/docs/mkdocs/scripts/figures/perf_blog.py b/docs/mkdocs/scripts/figures/perf_blog.py index 3b0db8dfc..d27e5f233 100644 --- a/docs/mkdocs/scripts/figures/perf_blog.py +++ b/docs/mkdocs/scripts/figures/perf_blog.py @@ -439,17 +439,21 @@ def geomean(xs): return math.exp(sum(math.log(x) for x in xs) / len(xs)) +WRITING = ("edit", "minify", "write") # the use cases that write numbers + + def normalize_usecases(data): - """Chooses each library's best variants again with the rules of the post: variants that copy each number's text - instead of formatting it (json_document's number_format::source, RapidJSON's raw numbers) and variants that reuse - a parser or document across calls are measured but not chosen""" + """Chooses each library's best variants again with the rules of the post: variants that reuse a parser or document + across calls are measured but not chosen, and neither are variants that write each number by copying its text + instead of formatting it (json_document's number_format::source, yyjson's and RapidJSON's raw numbers in edit, + minify and write). Skipping the number conversion while reading is allowed""" data = json.loads(json.dumps(data)) rank = {"full": 0, "n/a": 0, "no UTF-8": 1, "partial": 2} - for files in data.values(): + for uc, files in data.items(): + banned = ("reused",) + (("source numbers", "raw numbers") if uc in WRITING else ()) for cell in files.values(): for e in cell.values(): - vs = [(v["us"], k, v["level"]) for k, v in e["variants"].items() - if not any(w in k for w in ("source numbers", "raw numbers", "reused"))] + vs = [(v["us"], k, v["level"]) for k, v in e["variants"].items() if not any(w in k for w in banned)] full = [v for v in vs if rank[v[2]] == 0] pick = lambda v: {"us": v[0], "variant": v[1], "level": "full" if rank[v[2]] == 0 else v[2]} e["best"] = pick(min(full)) if full else None @@ -465,6 +469,7 @@ CHECKS_LESS = [ ("simdjson", "minify", "simdjson::minify() only removes whitespace, without parsing the values"), ("Glaze", "lazy_json", "reads lazily: lazy_json reads only what you ask for and steps over the rest"), ("Glaze", "minify_json", "minify_json only removes whitespace, without parsing the values"), + ("Glaze", "generic", "accepts trailing garbage after the value: Glaze's default (validate_trailing_whitespace checks it)"), ("Glaze", "structs", "reads into structs and steps over fields it doesn't know without checking them " "(validate_skipped checks them too)"), ("RapidJSON", "", "trusts UTF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)"), @@ -561,7 +566,7 @@ def heatmap(platform, title): data = json.load((HERE / "data" / ("perf_usecases_%s.json" % platform)).open()) t = usecase_table(data) libs = [l for l in UC_LIBS if l in t] - score = lambda l: geomean([v["full"] if v["full"] else v["alt"] * 1.5 for v in t[l].values()]) + score = lambda l: geomean([v["full"] or v["alt"] for v in t[l].values()]) # the mean of the row as shown libs.sort(key=score) W, L, cw, ch, top = 784, 224, 92, 36, 44 b, desc = [], []