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 a87280bdf..ed3dc4842 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 @@ -18,9 +18,9 @@ Since 2016, the [README](https://github.com/nlohmann/json#readme) of this librar > There are certainly faster JSON libraries out there. However, if your goal is to speed up your development by adding > JSON support with a single header, then this library is the way to go. -That sentence is still true, but the gap is a lot smaller now. Swap the 3.12.0 header for the 3.13.0 one and -recompile, and the 182 benchmarks of the library's own suite run 3.0× as fast on an Apple M1 Max (geometric mean; 3.1× on an Intel MacBook Pro from 2016), -without a line of your code changing. Parsing typical documents got 3.1–4.3× as fast, and writing them +That sentence is still true, but the gap is a lot smaller now. Swap the 3.12.0 header for the 3.13.0 one, +recompile, and the 182 benchmarks of the library's own suite run 3.0× as fast on an Apple M1 Max (geometric mean; 3.1× on an Intel MacBook Pro from 2016). +Not a line of your code changes. Parsing typical documents got 3.1–4.3× as fast, and writing them 3.0–6.7×. The new version also adds [`json_document`](../../features/json_view.md), a second way to hold a parsed document, which competes with the fastest C++ and Rust JSON libraries; [How it compares](#how-it-compares) has the numbers, including where it loses. The price is compile time: two small @@ -31,12 +31,12 @@ This post is about *how*. Hardly any of the techniques is new: we borrowed them [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), [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 whose -3.x API has been stable for almost nine years, with a value type that is a template over its string, number, object, -array, 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 -error messages that had to keep pointing at the same byte. The few deliberate changes of output are listed in +[SQLite](https://sqlite.org), [Boost.JSON](https://github.com/boostorg/json), or a textbook, and we name the source at each step. What is +worth writing about is the *combination*, and the conditions it had to work under. It is a header-only C++11 library +whose 3.x API has been stable for almost nine years, and whose value type is a template over its string, number, +object, array, and allocator types. Input comes from strings, streams, `FILE*`, iterator pairs, wide strings, and +user-defined adapters. Output had to stay the same byte for byte, and error messages had to keep pointing at the same +byte. The few deliberate changes of output are listed in [Appendix F](#f-behavior-changes). Every number comes from a benchmark we ran for this post or from the pull request that made the change. The @@ -135,7 +135,7 @@ A few things stand out: - **Regressions happen in between.** A UTF-8 check of every text string in the binary readers, byte by byte, made `from_cbor()` of `twitter.json` 37 % slower for 66 commits, until the readers were made lenient again by default, as in 3.12.0, with the check as an option. That decision was about the format specifications, which don't require a - decoder to check, not about speed; the cost went with it. It never shipped in a release. + decoder to check, not about speed. The cost went with it. It never shipped in a release. - **The input decides how big a step is.** Removing the error-message buffer measured 8 % on the benchmark of its pull request; on the indented `citm_catalog.json` it saved 35 %, because every space of the indentation went through that buffer. @@ -226,8 +226,8 @@ the branch on `next_unget` and the adapter's bounds check and pointer increment. Containers with `data()` and `size()` over single-byte elements now become a pointer range in every C++ standard, not only with C++20's contiguous iterators. `data()` and `size()` alone would be duck -typing, so the trait also requires the container's `value_type` to be the element type behind `data()`; a type whose -`size()` counts something else keeps the iterator path, which is slower but correct. On a pointer range, strings, +typing, so the trait also requires the container's `value_type` to be the element type behind `data()`. A type whose +`size()` counts something else keeps the iterator path: slower, but correct. On a pointer range, strings, numbers and the indentation after a line break are scanned in bulk (themes 2 and 3). Every fast path defers to the byte path on anything malformed, so error messages and byte positions stay the same, with one deliberate correction (the column after a number at the end of a line). [Appendix J](#j-validation) describes how that was checked. @@ -264,19 +264,22 @@ request's measurement before the change; now it takes just 9–16 % longer. `std::fgetc` locks the `FILE` on every call. 3.13.0 locks it once per parse (`flockfile`, then `getc_unlocked`; `_lock_file` and `_fgetc_nolock` with the Microsoft runtime). `flockfile` is recursive, so the binary -readers' `fread()` and a SAX handler's own `ftell()` keep working. On macOS, parsing `citm_catalog.json` from a -`FILE*` got 4.4× as fast in the pull request's measurement; with glibc only 1.1–1.3×, -because glibc's per-call locking is already cheap. Two details: MemorySanitizer builds keep `fgetc`, because glibc's inline `getc_unlocked` -reads a buffer that uninstrumented glibc filled; and a SAX handler that waits for another thread using the same -`FILE` now deadlocks, which the documentation says. Both paths can be switched off, with +readers' `fread()` and a SAX handler's own `ftell()` keep working. Whereas parsing +`citm_catalog.json` from a `FILE*` got 4.4× as fast on macOS in the pull request's measurement, with glibc it got only +1.1–1.3× as fast, because glibc's per-call locking is already cheap. Two details: MemorySanitizer builds keep `fgetc`, +because glibc's inline `getc_unlocked` reads a buffer that uninstrumented glibc filled. And a SAX handler that waits +for another thread using the same `FILE` now deadlocks, as the documentation says. Both paths can be switched off, with [`JSON_DISABLE_STREAM_BULK_SCAN`](../../api/macros/json_disable_stream_bulk_scan.md) and [`JSON_DISABLE_UNLOCKED_FILE_IO`](../../api/macros/json_disable_unlocked_file_io.md). ## 2 Work on words, not bytes { #theme-2 } +The core of a JSON lexer is "copy bytes until something interesting happens". Theme 1 gave it ranges of bytes. This +theme reads them a word at a time. + ### Eight bytes in a word -The core of a JSON lexer is "copy bytes until something interesting happens". In a string, the interesting bytes are +In a string, the interesting bytes are the closing quote, a backslash, a control character, and anything above 0x7F (UTF-8). This test checks eight bytes at once with ordinary 64-bit arithmetic: @@ -369,8 +372,8 @@ while (e - p >= 16) On `twitter.json`, the vector scan made `json::parse()` 5 % faster with Clang and 9 % with GCC on an M1 Max; on long strings, 19–24 %. It did not win from the first byte. On the M1, starting with NEON made short strings 3–4 % -slower and the rest of the lexer bigger, so ARM runs four 8-byte words first and keeps the vector loop out of line; -x86-64 runs one word first. Inlining the vector code into the lexer cost 5 % of validating `jeopardy.json` on the M1, +slower and the rest of the lexer bigger. So ARM runs four 8-byte words first and keeps the vector loop out of line, +while x86-64 runs one word first. Inlining the vector code into the lexer cost 5 % of validating `jeopardy.json` on the M1, although no string of that file is long enough to reach it: the scan function, which runs once per token, saved more registers and needed a stack slot. @@ -444,9 +447,9 @@ write_buffer_pos += escape[7]; // keep o One 8-byte store and one add, with no branch on the length; the padding lies behind the write position and is overwritten by the next write. The writer makes sure that 8 bytes are free before it copies. The idea is from [orjson](https://github.com/ijl/orjson)'s -`QUOTE_TAB`, which orjson took from [sonic-rs](https://github.com/cloudwego/sonic-rs). Dumping 100,000 log lines full of `\n`, `\t`, and quotes got 23 % faster -on an M1 Max, but most of that came from writing straight into the write buffer instead of an intermediate one; the -table alone gained 2–7 %. +`QUOTE_TAB`, which orjson took from [sonic-rs](https://github.com/cloudwego/sonic-rs). Although dumping 100,000 log lines full of `\n`, `\t`, and quotes got 23 % +faster on an M1 Max, most of that came from writing straight into the write buffer instead of an intermediate one. +The table alone gained 2–7 %. ## 3 Own the number conversions { #theme-3 } @@ -540,7 +543,7 @@ up to 19 digits, that always suffices ([Mushtak and Lemire, 2023](https://arxiv. their first 19 digits and that plus one; only if the two round differently are all digits compared with the exact midpoint. [Appendix I](#i-details-of-the-themes) has the details. Because it is integer arithmetic, the result no longer depends on the C locale. (JSON always uses `.`, but `strtod` expects the locale's decimal separator, so 3.12.0 -replaced the `.` before calling it, which failed for separators longer than one byte, [#5660][5660].) +replaced the `.` before calling it, which [failed for separators longer than one byte][5660].) [Appendix J](#j-validation) describes how the conversion was checked against `strtod`. ### Writing: Żmij @@ -573,9 +576,8 @@ A lot of what the 3.12.0 parser did was correct, cheap per call, and read by nob The old `get()` of theme 1 pushed every character into `token_string`, a buffer that only the "last read" part of an error message uses. For seekable input, the lexer now remembers the offset where the token started -and copies the text from the input if an error happens. The pull request measured 8 % on its own benchmark; in the -timeline, parsing the indented `citm_catalog.json` got 35 % faster at that commit, because every space of the -indentation went through the buffer. For streams, the carry buffer of theme 1 does the same job; the per-character +and copies the text from the input if an error happens. This is the 35 % step of the timeline: in the indented +`citm_catalog.json`, every space of the indentation went through the buffer. For streams, the carry buffer of theme 1 does the same job; the per-character copy had been about 20 % of what was left of a stream parse. [`accept()`](../../api/basic_json/accept.md) went one step further: it doesn't copy strings and keys at all. The @@ -633,7 +635,7 @@ A class derived from `json_sax_dom_parser` does not match the specialization, so every other handler, the lexer only records a pointer to the token and its length, and copies on the first `get_string()`. That is safe for contiguous input, which has to outlive the parse anyway; in a stream's window, the next refill could overwrite the text, so there the copy is made at once. The first version put the "is there pending -text?" check into the `get_string()` that keys and strings use too, and lost 2–3 % on string-heavy input; they now +text?" check into the `get_string()` that keys and strings use too, and lost 2–3 % on string-heavy input. Keys and strings now call a separate function without the check. Parsing `canada.json` got 9–11 % faster. ### A copy that should have been a move @@ -679,10 +681,9 @@ Container::swap(tmp); The new element is constructed before any value is moved, so `j.emplace("new", std::move(j["old"]))` still works, and the strong guarantee holds without a `try`, which matters because the library also builds with `-fno-exceptions`. Parsing `twitter.json` into `ordered_json` needs 33 % of the allocations and, in the pull request's -measurement, about 50 % of the time. A trap on the way: compilers with the EDG front end (Intel's icpc, NVIDIA's nvc++) -consider that pair's move constructor -`noexcept`, so there the vector already "moves", the new path is not taken, and a key copy that throws during growth -calls `std::terminate`. +measurement, about 50 % of the time. Unfortunately, compilers with the EDG front end (Intel's icpc, NVIDIA's +nvc++) consider that pair's move constructor `noexcept`. There, the vector already "moves", the new path is not +taken, and a key copy that throws during growth calls `std::terminate`. ### Containers built one element at a time @@ -715,9 +716,9 @@ creates a temporary `basic_json` for every object key it writes (−55 % on `twi The SAX interface hands the lexer's buffer to the handler as `string_t&` and allows it to be moved from; the lexer starts each token with an empty buffer anyway. In September, moving string values instead of copying them saved - 2–3 %. Moving keys too was measured and dropped: the buffer is sized for the longest token so far, keys are - short and values long, so moving a key hands a large buffer to a short string and the next value has to grow a - new one, 11.9 % slower on 40,000 short strings. In October, with much of the lexer around it rewritten, keys were + 2–3 %. We measured moving keys too, and dropped it. The buffer is sized for the longest token so far, and + keys are short while values are long. So moving a key hands a large buffer to a short string, and the next value + has to grow a new one: 11.9 % slower on 40,000 short strings. In October, with much of the lexer around it rewritten, keys were measured again: `parse()` of `twitter.json` got 3.3 % faster with Clang and 5.0 % with GCC, so keys are moved now too. An idea that lost once is worth measuring again when the code around it changes. @@ -743,8 +744,8 @@ case 't': // 3.12.0 With `-fstack-protector-strong`, which Ubuntu's GCC enables by default and many distributions use for their packages, *any* local array gives a function a stack canary: the prologue loads a secret (on x86-64 Linux from thread-local -storage) and stores it next to the locals, and every return compares it. That happens on every call, also for the `[`, `,` and `"` tokens that never touch the array; the -canary's load alone was 11 % of the function's samples. (Plain `-fstack-protector` only protects character arrays of +storage) and stores it next to the locals, and every return compares it. Even worse, that happens on every call, also for the `[`, `,` and `"` tokens that never touch the +array. The canary's load alone was 11 % of the function's samples. (Plain `-fstack-protector` only protects character arrays of at least 8 bytes, so it didn't trigger here.) Now the literal is a string literal whose length is a template parameter, compared on contiguous input with one `memcmp` of constant size, and the dispatch has no canary and no array on the stack: @@ -788,7 +789,7 @@ throw_incompatible_reference_type(obj); // JSON_HEDLEY_NO_RETURN JSON_HEDLEY_N

The same function in 3.13.0: a test and a call of a helper that is never inlined.

-That fixed 27 throw sites, and the ones that build a message got helpers that are never inlined; iterator arithmetic got 6× as fast with Clang, and `std::sort` over a `json` array of +That fixed 27 throw sites. Iterator arithmetic got 6× as fast with Clang, and `std::sort` over a `json` array of 10,000 integers in user code 6–9 % faster. The value's own lifecycle had the same problem: the destructor, the copy constructor, and [`operator==`](../../api/basic_json/operator_eq.md) contained the code for every type, so they were too big to inline even for a number. Clang reported about 380 call sites where they were not inlined. Now the destructor and the copy constructor start with an @@ -999,7 +1000,7 @@ std::size_t encode_first_byte_and_tail(CharType* out, std::uint8_t first_byte, The table is a table because Clang vectorized the equivalent comparisons into slower code, and the unconditional 8-byte store is why `reserve()` asks for 9 bytes per integer. Writing an array of small signed integers as CBOR, -which had not got faster before, is now 4.2× as fast as with 3.12.0 with Clang on an M1 Max, and was 2.8× as fast +which had not gotten faster before, is now 4.2× as fast as with 3.12.0 with Clang on an M1 Max, and was 2.8× as fast with GCC 13 on x86-64 when the change was made. One more lesson from these changes: the loop over an array is a separate function that is never inlined. Inlined into the function that writes any value, its register needs made every call of that function save more registers, once per @@ -1029,7 +1030,7 @@ matters to anyone who keeps `json` values in a `std::set`, uses them as `std::ma `operator<` is derived from [`operator<=>`](../../api/basic_json/operator_spaceship.md), which asks once and was never affected. 3.13.0 compares in one pass over an explicit stack of iterator pairs and gets "less", "equal", "greater" or -"unordered" for each pair at once, so the ordering question is asked once per element. Two subtleties were found by +"unordered" for each pair at once, so the ordering question is asked once per element. We found two subtleties by comparing 68,121 results with the old code, not by reading it. `std::lexicographical_compare` steps over a pair it cannot order (a NaN) and goes on, while the three-way version stops there, so the pass has a flag for which behavior the caller needs. And object keys must be compared with `operator==` when testing equality, not with the object's comparator: @@ -1043,10 +1044,10 @@ constructor, `std::hash`, [`flatten()`](../../api/basic_json/flatten.md) and the optimized builds `operator==`, [`diff()`](../../api/basic_json/diff.md) and the other binary writers at 300,000 levels; servers that copy JSON from clients hit that. Other libraries limit the depth of what they parse ([Boost.JSON](https://github.com/boostorg/json) at 32, [serde_json](https://github.com/serde-rs/json) at 128, [simdjson](https://github.com/simdjson/simdjson) at 1024) or -parse and write iteratively ([yyjson](https://github.com/ibireme/yyjson)). Making every walk iterative made `dump()`, -copying and merging up to 20 % slower on ordinary documents; [RapidJSON](https://github.com/Tencent/rapidjson) -also parses recursively unless asked -otherwise. So 3.13.0 bounds the recursion instead: +parse and write iteratively ([yyjson](https://github.com/ibireme/yyjson)), and +[RapidJSON](https://github.com/Tencent/rapidjson) parses recursively unless asked otherwise. We tried making every walk +iterative, but that made `dump()`, copying and merging up to 20 % slower on ordinary documents. So 3.13.0 bounds the +recursion instead: ```cpp constexpr std::size_t recursion_depth_limit() noexcept { return 128; } @@ -1138,10 +1139,9 @@ static_assert(sizeof(node) == 16, "node must stay 16 bytes"); Offsets are 32 bits, which limits a document to 4 GiB. - **Integers are converted while their digits are in the cache,** into the last 8 bytes of their node. - **Floats stay text until you read them.** The node records the number of digits before and after the point, and - reading converts with the same Clinger/Eisel-Lemire code as `json::parse`. Converting them during the parse was - tried and dropped: parsing `canada.json` and reading every number got 4–7 % faster, but parsing alone 36–90 % - slower. A - default `dump()` writes the shortest form of a float, as `json` does; [`number_format::source`](../../api/basic_json_view/number_format.md) copies the source + reading converts with the same Clinger/Eisel-Lemire code as `json::parse`. We tried converting them during the + parse. Although parsing `canada.json` and reading every number got 4–7 % faster, parsing alone got 36–90 % slower, + so we dropped it. A default `dump()` writes the shortest form of a float, as `json` does; [`number_format::source`](../../api/basic_json_view/number_format.md) copies the source text of every number instead. - **SIMD and tables** as in theme 2, and `\u` escapes decoded with a table, as yyjson does. - **A hash index for big objects,** an idea from [Boost.JSON](https://github.com/boostorg/json). An object with 128 or more members gets an open-addressing @@ -1170,9 +1170,9 @@ fast because it can't change. [`json_editable_document`](../../features/json_vie which stay where they are. The list doubles when it grows, so `push_back()` is amortized constant. Views stay valid across edits, because values never move. Reading an edited container costs one flag test per -container and one test per element for a link; the link case is out of line, so that it compiles to a predicted -branch rather than a conditional select that would delay the following loads. A read-only document doesn't carry any -of this; an editable one that hasn't been edited reads within 2 % of it on most rows and within 8 % on the worst. And because untouched values keep +container and one test per element for a link. The link case is out of line, so that it compiles to a predicted +branch rather than a conditional select that would delay the following loads. Whereas a read-only document carries +none of this, an editable one that hasn't been edited reads within 2 % of it on most rows and within 8 % on the worst. And because untouched values keep their source text, [`dump()`](../../api/basic_json_view/dump.md) with `number_format::source` writes back a patched configuration file with its member order and the spelling of every number (`19.90`) intact, which `json` (sorted keys) and `ordered_json` (`19.9`) can't. @@ -1231,11 +1231,16 @@ or the operating system. It is not neutral in every detail, though: - The string has 64 bytes of spare capacity, so simdjson, which reads up to 64 bytes past the end, can use it without a copy. A program would load the file into such a buffer in the first place. -- yyjson, RapidJSON, and simd-json can parse in place, which needs a buffer they may change. So they first copy the - string, inside the timed call, and the copy counts towards their time: about 30 µs for `twitter.json` on the Mac. Even so, yyjson's in-place parse is about - as fast as its parse without a copy, which is measured too. +- yyjson, RapidJSON, and simd-json can parse in place, which changes the buffer. So every call gets a fresh copy of the + string, and the copy counts toward their time: 11–14 µs for `twitter.json` on the Mac, and 30–46 µs on x86-64, + where fresh memory costs page faults. yyjson's normal read makes the same copy internally, which is why both ways + take about as long. A server that validates a request and then passes it on needs the copy. A program that reads a + file into a buffer it owns can skip it, so we also timed the in-place ways with the copy made before the timer + starts. On the Mac, yyjson then comes 2–4 % closer and stays second, and on `twitter.json` it sums and selects 2–3 % + faster than `json_document`. On x86-64, it ties `json_document` in *sum* with Clang and takes 1.06× and 1.19× its + time with GCC 16 and GCC 13. - `json_document` reads the string in place and keeps pointing into it. A document that owns its text - ([`parse_copy()`](../../api/basic_json_document/parse_copy.md)) costs one copy more. + ([`parse_copy()`](../../api/basic_json_document/parse_copy.md)) costs one copy more: 3–5 % on the Mac. - Reading from files and streams is not part of the comparison. ```mermaid @@ -1259,46 +1264,45 @@ finding them. A minifier only needs to find whitespace, not understand the value 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 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 or does less is faster, it is shown in the right half -of the cell: "U" trusts UTF-8, "P" reads lazily, only removes whitespace or, in one Glaze cell on x86-64, doesn't check -what follows the value, and "N" writes each number by copying its text instead of formatting it, which `json_document`, -yyjson, and RapidJSON can do. +and each cell shows the fastest such way. A way that checks or does less appears in the right half +of the cell, with a letter that the caption explains. 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)). +3.13.0 on the same machines and files. No maintainer of the other libraries has reviewed their code. If you know a +faster way for any of them, please open an issue, and we will rerun the comparison. To check ourselves, we also ran files and a conformance suite we never tuned on ([below](#files-and-checks-we-didnt-choose)).
--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 or does less is at least 3 % faster, it is shown in the right half of the cell: "U" trusts UTF-8, "P" reads lazily, only removes whitespace or, in one Glaze cell on x86-64, doesn't check what follows the value, and "N" copies number text instead of formatting it. "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.

+

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`, so that every file counts equally, divided by the fastest library's mean, which therefore shows 1.00. Less is better. Where a way that checks or does less is at least 3 % faster, it is shown in the right half of the cell: "U" trusts UTF-8, "P" reads lazily, only removes whitespace or, in one Glaze cell on x86-64, doesn't check what follows the value, and "N" copies number text instead of formatting it. "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 -On the Apple M1 Max, `json_document` is the fastest library that validates fully in all six use cases, and yyjson is -second in every column. That includes editing, where the editable document is faster than yyjson's mutable document: +On the Apple M1 Max, among the ways that reject all four broken inputs, `json_document` has the lowest mean on the four +files in all six use cases, and yyjson is second in every column. That includes editing, where the editable document is faster than yyjson's mutable document: the speed doesn't depend on being read-only. Some caveats belong next to that: -- **The lead is not the same on every file.** On `twitter.json`, yyjson is within 1–5 % in *validate*, *sum*, - 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`. +- **The lead is not the same on every file.** On `twitter.json`, yyjson is within 3–7 % in *validate*, *sum*, + and *select*. Most of the lead comes from `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 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 48 % of the time. *sum* reads every number, so it + there, but only Boost.JSON gains much: it validates `canada.json` in 47 % of the time. *sum* reads every number, so it is the fair comparison for floats; there, `json_document` is still slightly ahead of yyjson. - **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× `json_document`'s time, and in 0.56–0.61× on x86-64: the right + reading into structs select in 0.75× and 0.82× `json_document`'s time (Glaze is faster only on `citm_catalog.json` and + `canada.json`), and in 0.54–0.62× 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.26 → 1.25, *sum* 1.10 → 1.03), but - `json_document` stays first. + `twitter.json` and `citm_catalog.json`, yyjson comes closer in *sum* (1.11 → 1.04) but not in + *validate* (1.28 → 1.27), and `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 yyjson and RapidJSON can read numbers as text and write them back unchanged. The output keeps the source's spelling of each number, which is all a minifier needs. It makes writing `canada.json` - with `json_document` 4.1× as fast and minifying it 1.9× as fast; the "N" halves of *edit*, *minify*, and + with `json_document` 4.0× as fast and minifying it 1.9× as fast; the "N" halves of *edit*, *minify*, and *write* show it. - **Small documents.** On a 2.5 KB message, the fastest libraries take about a microsecond on the Mac and 1.2–2 on x86-64. yyjson validates and sums it as fast as `json_document` on the Mac, and with GCC 16 on x86-64, @@ -1319,14 +1323,14 @@ And nlohmann/json without `json_document`? `json` builds a tree of separate allo *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, a SAX handler is on par with Boost.JSON's, and [`json::accept()`](../../api/basic_json/accept.md) takes 6 % longer than Boost.JSON without number conversion (on -x86-64, Boost.JSON validates in 0.67–0.70× and sums in 0.76–0.81× the time). `dump()` writes faster than Boost.JSON, +x86-64, Boost.JSON validates in 0.65–0.69× and sums in 0.75–0.79× the time). `dump()` writes faster than Boost.JSON, RapidJSON and serde_json, and about as fast as Glaze. ### Results on x86-64 -On x86-64, the same programs ran on a virtual server whose CPU presents itself as Haswell, pinned to one core and built with `-march=haswell`: with the -newest GCC, 16.2 (the figure below), and with GCC 13.4 and Clang 23 (both in -[Appendix E](#e-comparison-with-other-libraries)), on Ubuntu 26.04. The compiler matters less than one might think. On the Mac, GCC 16 +On x86-64, the same programs ran on a virtual server with Ubuntu 26.04 whose CPU presents itself as Haswell, +pinned to one core. We built them with `-march=haswell` and three compilers: the newest GCC, 16.2 (the figure below), +GCC 13.4, and Clang 23 (both in [Appendix E](#e-comparison-with-other-libraries)). The compiler matters less than one might think. On the Mac, GCC 16 and Clang 23 put the same library first in every column as Apple clang, and on x86-64, the three compilers disagree only about *sum*. @@ -1336,25 +1340,29 @@ only about *sum*.

The same comparison on the x86-64 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, where its lead in -*sum* (7 % over sonic-rs) is within the noise of this machine. In *validate*, the next library takes 1.8–2× as long, because validating no longer builds an index (theme 8). Behind those means, it loses on single files: +`json_document` has the lowest mean in five of the six columns with GCC, where simdjson is ahead in *sum*, and in all +six with Clang. This machine is noisy, though: between two runs, a library's time relative to `json_document`'s moved +by up to 9–10 % (95th percentile; 2.5 % on the Mac). So Clang's 7 % lead in *sum* over sonic-rs is no result, and +without `twitter.json`, sonic-rs is first. In *validate*, the next library takes 1.8–1.9× as long, or 1.6–1.7× if every +library may reuse its parser, because validating no longer builds an index (theme 8). 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.83–0.95× `json_document`'s time with GCC 16 (0.88–0.91× with + `citm_catalog.json`, and `canada.json` in 0.83–0.99× `json_document`'s time with GCC 16 (0.86–0.91× 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 50 % as long as `json_document`'s parse. Boost.JSON's SAX parser and sonic-rs, which build nothing, - sum it in 0.65–0.74× the time. Reusing the document cuts `json_document`'s time by 37–43 %, to 52–54 ms, - a little less than sonic-rs takes. Validating needs no index: `json_document::accept()` takes 34–35 ms, and no - library validates `jeopardy.json` faster, even reused (the next is simdjson's reused parser at 47–54 ms). On the Mac, a + sum it in 0.66–0.72× the time. Reusing the document cuts `json_document`'s time by 40–43 %, to 51–53 ms, + less than sonic-rs's 60 ms. Validating needs no index: `json_document::accept()` takes 35 ms, and no + library validates `jeopardy.json` faster, even reused (the next is simdjson's reused parser at 47–49 ms). On the Mac, a fresh document costs hardly more than a reused one. -- **Writing floats.** yyjson writes `canada.json` in 0.87× (GCC 16) to 0.93× (Clang 23) the time, because +- **Writing floats.** yyjson writes `canada.json` in 0.87–0.97× the time (and Glaze, with GCC 13, in 0.96×), because `json_document` first converts most floats from their text. Writing the source text instead (`number_format::source`, the "N" half) avoids that. -- **simdjson's DOM.** It selects from `citm_catalog.json` 10 % faster with GCC 16 and 5 % faster with Clang 23; - with GCC 13, `json_document` is 2 % ahead. +- **simdjson's DOM.** It selects from `citm_catalog.json` 16 % faster with GCC 16 and 1–4 % faster with GCC 13 and + Clang 23, and from `twitter.json` 1–6 % faster. Boost.JSON, Glaze, sonic-cpp, and yyjson are 1–3 % ahead in a few + more cells, which is within the noise. The full tables, with each library's variants, are in [Appendix E](#e-comparison-with-other-libraries). @@ -1363,7 +1371,7 @@ The full tables, with each library's variants, are in [Appendix E](#e-comparison 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.87–0.88× its time. File by file, for *validate*: +with Clang and on the Mac; with GCC, simdjson sums in 0.86–0.87× its time. File by file, for *validate*:
--8<-- "images/perf_blog_heldout.svg" @@ -1371,19 +1379,17 @@ with Clang and on the Mac; with GCC, simdjson sums in 0.87–0.88× its time. Fi

*validate* on the 19 files: `json_document`'s fastest fully validating way against the fastest other library's, per file; below 1.0× it is the fastest. Less is better. The right column names the next library on x86-64 (GCC 16.2).

-`json_document` validates all 19 files fastest with GCC 16 and Clang 23, 17 with GCC 13, and 18 on the Mac. simdjson -validates `apache_builds` 10 % faster on the Mac and `google_maps_api_response` 1 % faster with GCC 13, and -Boost.JSON, without number conversion, `mesh.pretty` 2 % faster with GCC 13. Before validating without an index +`json_document` validates all 19 files fastest with GCC 16 and Clang 23, and 18 with GCC 13 and on the Mac: simdjson +validates `apache_builds` 8 % faster on the Mac and `google_maps_api_response` 2 % faster with GCC 13. Before validating without an index (theme 8) and skipping fraction digits 16 bytes at a time (theme 2), Boost.JSON validated the number-heavy files up to 1.5× as fast on x86-64. As a check of the four probes, every *validate* way also ran the 318 files of [JSONTestSuite](https://github.com/nst/JSONTestSuite). [Appendix E](#e-comparison-with-other-libraries) lists the -exceptions, one of them ours: nlohmann/json treats a NUL byte as the end of the input. The suite also found that +exceptions, one of them ours. The suite also found that Glaze's generic reader accepts garbage after the value by default, so 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. +We did not measure memory use, a CPU with AVX-512, MSVC, writing from structs, or streaming input. ## What didn't work @@ -1444,6 +1450,11 @@ including `` in headers that only name `json`, and [`JSON_NO_AUTOMATIC_UDLS`](../../api/macros/json_no_automatic_udls.md). We did not measure binary size or peak memory. +## Summing up + +Hardly any of the techniques in this post is new. What we think made the difference is their combination, under the +conditions of a header-only C++11 library whose API and output had to stay the same. + ## Thanks Most of what is in this post was invented by other people. @@ -1482,23 +1493,22 @@ and the source files that contain it carry the authors' copyright lines and say - [Boost.JSON](https://github.com/boostorg/json) (BSL-1.0): switching to a hash table for large objects. - [RapidJSON](https://github.com/Tencent/rapidjson) (MIT): recursion as the default, iterative parsing as an option. -And the people who sent or shaped pull requests: +I thank the people who sent or shaped pull requests: - [@gregmarr](https://github.com/gregmarr) reviewed most of them and suggested the sized-sentinel fast path, the peek design for exact stream positions, one SIMD switch for the whole library, and the vector check of `json_view`'s strings on edit; - [@veselink1](https://github.com/veselink1) and [@michaelsam94](https://github.com/michaelsam94) wrote the allocator - and exception-safety fixes for the destructor that [#5762][5762] took over; the non-recursive destructor itself - goes back to [#1436](https://github.com/nlohmann/json/pull/1436) by [@nickaein](https://github.com/nickaein) in - 2019; + and exception-safety fixes for the destructor that 3.13.0 [took over][5762]; the non-recursive destructor itself + goes back to [a pull request](https://github.com/nlohmann/json/pull/1436) by [@nickaein](https://github.com/nickaein) + in 2019; - [@commit-msuyog](https://github.com/commit-msuyog) gave the 128-bit multiplication behind Eisel-Lemire MSVC - intrinsics ([#5782][5782]); + intrinsics; - [@ayush-singh-0601](https://github.com/ayush-singh-0601) started the fix for deep values in the binary writers; -- [@avionicharshit-byte](https://github.com/avionicharshit-byte) made `diff()` linear for shrinking arrays - ([#5461][5461]); -- [@mvanslobbe](https://github.com/mvanslobbe) sped up the parser's separator check ([#5592][5592]); +- [@avionicharshit-byte](https://github.com/avionicharshit-byte) made `diff()` linear for shrinking arrays; +- [@mvanslobbe](https://github.com/mvanslobbe) sped up the parser's separator check; - [@alexprabhat99](https://github.com/alexprabhat99) removed the temporary values behind CBOR and MessagePack object - keys ([#5328][5328]). + keys. `twitter.json`, `citm_catalog.json` and `canada.json` come from Milo Yip's [nativejson-benchmark](https://github.com/miloyip/nativejson-benchmark) (MIT). @@ -1821,7 +1831,7 @@ 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) -5.0.8, [sonic-cpp](https://github.com/bytedance/sonic-cpp) 1.0.2, [RapidJSON](https://github.com/Tencent/rapidjson) +5.1.1, [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) @@ -1831,8 +1841,10 @@ with `-march=haswell` on Ubuntu 26.04, pinned to one core; Rust 1.99 with `-C ta October 29; the Rust programs haven't changed since. Every variant runs in every round, in a different order each round (a shuffle with a fixed seed), 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. +RapidJSON `kParseFullPrecisionFlag` (except in *validate*, which reads no number), serde_json `float_roundtrip`: every +number a library converts has to be exact. That rule, like the others here, is our choice. Between the two runs, a +library's time relative to `json_document`'s moved by 0.8 % at the median and 2.5 % at the 95th percentile on the Mac, +and by 2.5–3 % and 9–10 % on x86-64. **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" @@ -1854,12 +1866,14 @@ byte-order mark in RapidJSON, an invalid `\u` escape in sonic-rs's `IgnoredAny`, value in Glaze's generic reader without `validate_trailing_whitespace`. sonic-rs, and RapidJSON's SAX reader with GCC 16.2 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. +header-only libraries inline into the benchmark. Built with link-time optimization, and simdjson as C++23 like the +rest, they moved by less than 3 % against `json_document` on average (Apple clang and GCC 16). **Choices.** A library's time is its fastest fully validating way per file; "(U …)", "(P …)" and "(N …)" give a faster way that checks or does 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 are measured but not chosen; with -every library reused, the first place in each column stays the same. Variants that leave numbers +such mean in its column. Variants that keep a parser or document across calls are measured but not chosen, and so are in-place +ways with the copy made before the timer starts; 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 (`json_document` with `number_format::source`, yyjson's and RapidJSON's raw numbers) count as doing less, "N": their @@ -1886,96 +1900,96 @@ value, so it holds a little more. | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | accept | 169 | 313 | 868 | 20,764 | 0.9 | - | yyjson | insitu (copy), read, read (raw numbers) | 178 | 475 | 1,496 | 30,679 | 0.9 | - | simdjson | DOM | 205 | 459 | 1,890 | 28,911 | 1.1 | + | **nlohmann/json `json_document`** | accept | 170 | 313 | 886 | 20,873 | 0.9 | + | yyjson | insitu (copy untimed) | 172 | 451 | 1,457 | 30,240 | 0.9 | + | simdjson | DOM | 212 | 452 | 1,888 | 28,843 | 1.1 | | sonic-rs (Rust) | Value | 326 | 681 | 1,939 | 31,450 | 1.4 | - | Glaze | validate_json | 330 | 854 | 1,302 | 46,181 | 1.4 | + | Glaze | validate_json | 331 | 862 | 1,326 | 45,192 | 1.4 | | simd-json (Rust) | tape (copy) | 289 | 698 | 2,278 | 38,874 | 1.7 | - | sonic-cpp | Document [U] | – (U 381) | – (U 994) | – (U 2,579) | – (U 41,429) | – (U 1.6) | + | sonic-cpp | Document [U] | – (U 382) | – (U 985) | – (U 2,578) | – (U 41,617) | – (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) | 536 | 995 | 1,467 | 54,696 | 2.4 | - | nlohmann/json `json` | accept | 462 | 905 | 2,340 | 54,684 | 2.5 | - | RapidJSON | SAX, insitu (copy), insitu (copy) (no encoding check) [U] | 1,311 (U 700) | 1,585 (U 1,178) | 6,862 | 141,752 (U 63,673) | 6.2 (U 2.7) | + | Boost.JSON | SAX, SAX (numbers: none) | 535 | 994 | 1,467 | 53,939 | 2.3 | + | nlohmann/json `json` | accept | 451 | 888 | 2,405 | 55,286 | 2.4 | + | RapidJSON | SAX (default precision), SAX (string stream, default precision), SAX (string stream, default precision) (no encoding check) [U], insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,307 (U 686) | 1,397 (U 1,032) | 1,982 | 134,679 (U 63,589) | 6.0 (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 | 227 | 482 | 1,790 | 29,450 | 1.2 | - | yyjson | insitu (copy), read | 229 | 576 | 1,941 | 37,855 | 1.2 | - | simdjson | DOM, On-Demand | 244 | 588 | 2,387 | 35,389 | 1.3 | + | **nlohmann/json `json_document`** | parse | 224 | 485 | 1,816 | 28,987 | 1.2 | + | yyjson | insitu (copy untimed) | 219 | 551 | 1,906 | 37,512 | 1.1 | + | simdjson | DOM, On-Demand | 249 | 571 | 2,374 | 35,111 | 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,088) | – (U 2,972) | – (U 48,845) | – (U 1.9) | - | Boost.JSON | SAX | 529 | 1,008 | 3,042 | 55,145 | 2.3 | - | nlohmann/json `json` | sax | 466 | 932 | 3,075 | 64,003 | 2.5 | + | sonic-cpp | Document [U] | – (U 428) | – (U 1,087) | – (U 2,993) | – (U 48,688) | – (U 1.9) | + | nlohmann/json `json` | sax | 465 | 925 | 3,072 | 64,089 | 2.4 | + | Boost.JSON | SAX | 535 | 1,010 | 3,067 | 53,704 | 2.3 | | serde_json (Rust) | visitor | 652 | 1,242 | 4,772 | 66,568 | 2.5 | - | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 985 | 2,057 | 6,272 | 100,545 | 4.9 (P 3.5) | - | RapidJSON | SAX, insitu (copy), insitu (copy) (no encoding check) [U] | 1,331 (U 748) | 1,655 (U 1,276) | 6,938 | 149,509 (U 71,697) | 6.2 (U 2.9) | + | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 968 | 2,049 | 6,331 | 99,763 | 4.9 (P 3.5) | + | RapidJSON | SAX, SAX (string stream), SAX (string stream) (no encoding check) [U], insitu (copy untimed) (no encoding check) [U] | 1,329 (U 735) | 1,455 (U 1,136) | 6,453 | 136,103 (U 69,604) | 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 | 186 | 363 | 928 | 25,032 | 1.0 | - | yyjson | insitu (copy), read, read (raw numbers) | 191 | 476 | 1,490 | 33,078 | 1.1 | - | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P], On-Demand structs [P] | 202 (P 128) | 454 (P 353) | 1,886 (P 566) | 30,892 (P 19,832) | 1.2 (P 0.8) | - | Glaze | structs (validate_skipped), structs [P] | 313 (P 239) | 849 (P 258) | 1,302 (P 310) | 47,315 (P 37,143) | 1.4 (P 1.2) | + | **nlohmann/json `json_document`** | parse | 184 | 363 | 956 | 24,991 | 1.0 | + | yyjson | insitu (copy untimed) | 178 | 456 | 1,461 | 32,514 | 1.0 | + | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P], On-Demand structs [P] | 196 (P 127) | 450 (P 354) | 1,886 (P 566) | 30,504 (P 19,562) | 1.2 (P 0.8) | + | Glaze | structs (validate_skipped), structs [P] | 311 (P 241) | 854 (P 255) | 1,316 (P 313) | 46,924 (P 37,578) | 1.4 (P 1.2) | | sonic-rs (Rust) | Value | 333 | 691 | 1,936 | 40,660 | 1.7 | - | sonic-cpp | Document [U] | – (U 385) | – (U 991) | – (U 2,585) | – (U 46,396) | – (U 1.7) | + | sonic-cpp | Document [U] | – (U 385) | – (U 990) | – (U 2,586) | – (U 45,858) | – (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,205 | 3,634 | 67,861 | 2.7 | - | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,316 (U 702) | 1,569 (U 1,169) | 6,800 | 145,958 (U 68,045) | 6.5 (U 2.7) | - | nlohmann/json `json` | parse, structs (from_json) | 1,360 | 2,407 | 6,041 | 180,705 | 7.7 | + | Boost.JSON | parse, parse_into structs | 617 | 1,205 | 3,650 | 67,255 | 2.7 | + | RapidJSON | Document (string stream), insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,304 (U 679) | 1,554 (U 1,126) | 6,776 | 141,509 (U 65,625) | 6.5 (U 2.6) | + | nlohmann/json `json` | parse, structs (from_json) | 1,360 | 2,416 | 6,047 | 179,533 | 7.6 | **edit** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | editable, editable (source numbers) [N] | 283 | 563 | 2,741 (N 1,448) | 58,470 | 1.9 | - | yyjson | insitu (copy) + mut copy, mut copy | 441 | 904 | 3,700 | 85,478 | 2.5 | - | sonic-cpp | Document [U] | – (U 490) | – (U 1,229) | – (U 5,653) | – (U 63,914) | – (U 2.6) | + | **nlohmann/json `json_document`** | editable, editable (source numbers) [N] | 291 | 560 | 2,765 (N 1,484) | 58,057 | 1.9 | + | yyjson | insitu (copy untimed) + mut copy | 427 | 882 | 3,642 | 84,239 | 2.4 | + | sonic-cpp | Document [U] | – (U 486) | – (U 1,224) | – (U 5,638) | – (U 62,688) | – (U 2.6) | | 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,367 | 2,000 | 6,558 | 159,053 | 6.6 | - | nlohmann/json `json` | ordered_json, parse | 1,266 | 2,329 | 8,305 | 199,819 | 7.1 | - | Glaze | generic (strict), generic [P] | 1,529 | 3,231 | 10,938 | 180,098 | 8.4 | - | RapidJSON | Document, insitu (copy), insitu (copy) (no encoding check) [U] | 1,924 (U 1,354) | 2,404 (U 2,001) | 13,830 | 226,139 (U 148,686) | 10.4 (U 6.6) | + | Boost.JSON | parse | 1,368 | 1,992 | 6,573 | 155,237 | 6.6 | + | nlohmann/json `json` | ordered_json, parse | 1,273 | 2,344 | 8,334 | 203,232 | 7.1 | + | Glaze | generic (strict), generic [P] | 1,539 | 3,235 | 11,083 | 178,333 | 8.3 | + | RapidJSON | Document, Document (string stream), insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,922 (U 1,344) | 2,388 (U 1,964) | 13,836 | 221,270 (U 144,741) | 10.3 (U 6.5) | | 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, parse + dump (source numbers) [N] | 261 | 493 | 2,550 (N 1,328) | 37,888 | 1.5 | - | yyjson | insitu (copy) + write, read (raw numbers) + write [N], read + write | 298 | 641 | 3,219 (N 2,527) | 51,099 | 1.6 | + | **nlohmann/json `json_document`** | parse + dump, parse + dump (source numbers) [N] | 259 | 493 | 2,582 (N 1,360) | 37,882 | 1.4 | + | yyjson | insitu (copy untimed) + write, read (raw numbers) + write [N] | 279 | 625 | 3,196 (N 2,550) | 50,821 | 1.6 | + | simdjson | DOM + to_string, minify [P] | 423 (P 62.3) | 848 (P 171) | 5,120 (P 227) | 61,059 (P 5,762) | 2.4 (P 0.3) | | sonic-rs (Rust) | Value | 535 | 1,134 | 4,377 | 64,832 | 3.0 | - | sonic-cpp | Document + Serialize [U] | – (U 505) | – (U 1,224) | – (U 5,661) | – (U 61,985) | – (U 2.5) | - | simdjson | DOM + to_string, minify [P] | 574 (P 61.5) | 928 (P 168) | 5,038 (P 227) | 82,978 (P 5,755) | 3.6 (P 0.3) | + | sonic-cpp | Document + Serialize [U] | – (U 500) | – (U 1,220) | – (U 5,676) | – (U 61,236) | – (U 2.5) | | simd-json (Rust) | borrowed (copy) | 952 | 2,111 | 7,658 | 108,130 | 5.5 | - | Boost.JSON | parse + serialize | 1,384 | 1,990 | 6,554 | 155,141 | 6.8 | - | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U], SAX to Writer (raw numbers) (no encoding check) [U N], SAX to Writer (raw numbers) [N] | 1,512 (U 1,328) | 1,816 (U 1,714) | 14,281 (N 10,904) | 180,596 (U N 167,694) | 8.1 (U 7.5) | - | nlohmann/json `json` | parse + dump | 1,616 | 2,688 | 8,318 | 199,579 | 8.7 | - | Glaze | generic (strict), minify_json [P] | 1,517 (P 285) | 3,220 (P 796) | 10,920 (P 1,705) | 168,662 (P 40,374) | 8.0 (P 1.3) | + | Boost.JSON | parse + serialize | 1,393 | 1,986 | 6,542 | 154,677 | 6.7 | + | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (raw numbers) (no encoding check) [U N], SAX to Writer (string stream), SAX to Writer (string stream) (no encoding check) [U] | 1,525 (U 1,058) | 1,808 (U 1,485) | 14,460 (U N 10,908) | 174,558 (U 123,119) | 8.1 (U 5.0) | + | nlohmann/json `json` | parse + dump | 1,600 | 2,706 | 8,389 | 197,745 | 8.8 | + | Glaze | generic (strict), minify_json [P] | 1,505 (P 281) | 3,225 (P 729) | 11,092 (P 1,722) | 168,855 (P 39,976) | 8.1 (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, dump (source numbers) [N] | 72.9 | 133 | 1,622 (N 400) | 14,735 | 0.5 | - | yyjson | write | 103 | 165 | 1,719 | 19,993 | 0.7 | - | sonic-cpp | Serialize | 113 | 236 | 3,046 | 19,953 | 0.9 | - | nlohmann/json `json` | dump | 216 | 286 | 2,250 | 31,183 | 1.2 | - | Glaze | generic, generic (strict) | 213 | 470 | 1,705 | 34,047 | 1.3 | + | **nlohmann/json `json_document`** | dump, dump (source numbers) [N] | 74.3 | 134 | 1,621 (N 401) | 14,757 | 0.5 | + | yyjson | write | 103 | 169 | 1,731 | 20,087 | 0.7 | + | sonic-cpp | Serialize | 108 | 230 | 3,093 | 19,651 | 0.8 | + | nlohmann/json `json` | dump | 223 | 287 | 2,276 | 31,825 | 1.2 | + | simdjson | to_string | 199 | 385 | 3,241 | 32,208 | 1.3 | + | Glaze | generic, generic (strict) | 216 | 469 | 1,720 | 33,934 | 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 | 448 | 3,196 | 53,776 | 2.5 | - | Boost.JSON | serialize | 499 | 504 | 2,891 | 63,231 | 2.9 | - | RapidJSON | Writer | 598 | 822 | 6,889 | 81,406 | 3.9 | + | Boost.JSON | serialize | 507 | 508 | 2,923 | 62,583 | 2.9 | + | RapidJSON | Writer | 603 | 830 | 6,995 | 81,150 | 3.9 | ??? info "Times in µs on x86-64 with GCC 16.2" @@ -1983,96 +1997,96 @@ value, so it holds a little more. | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | accept | 254 | 510 | 862 | 34,543 | 1.2 | + | **nlohmann/json `json_document`** | accept | 258 | 513 | 934 | 34,514 | 1.2 | + | yyjson | insitu (copy untimed), read (raw numbers) | 352 | 837 | 2,199 | 93,043 | 1.5 | | sonic-rs (Rust) | IgnoredAny | 501 | 970 | 2,249 | 54,369 | 1.8 | - | Boost.JSON | SAX, SAX (numbers: none) | 687 | 912 | 1,637 | 59,426 | 2.9 | - | yyjson | insitu (copy), read (raw numbers) | 389 | 946 | 2,133 | 127,616 | 1.6 | - | simdjson | DOM | 298 | 690 | 3,166 | 116,296 | 1.7 | - | sonic-cpp | Document [U] | – (U 403) | – (U 931) | – (U 3,170) | – (U 96,915) | – (U 1.7) | + | Boost.JSON | SAX, SAX (numbers: none) | 690 | 917 | 1,676 | 62,781 | 2.9 | + | simdjson | DOM | 301 | 695 | 3,337 | 120,982 | 1.7 | + | sonic-cpp | Document [U] | – (U 403) | – (U 932) | – (U 3,349) | – (U 98,511) | – (U 1.7) | | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 624 (U 484) | 1,440 (U 1,370) | 2,406 (U 2,314) | 64,720 (U 58,247) | 2.4 (U 1.9) | - | Glaze | validate_json | 714 | 1,974 | 2,521 | 76,716 | 2.5 | - | nlohmann/json `json` | accept | 667 | 1,426 | 4,398 | 71,489 | 3.1 | + | Glaze | validate_json | 712 | 1,983 | 2,625 | 76,759 | 2.5 | + | nlohmann/json `json` | accept | 683 | 1,419 | 4,559 | 74,331 | 3.1 | | simd-json (Rust) | tape (copy) | 567 | 1,430 | 4,359 | 207,551 | 2.9 | - | RapidJSON | SAX (no encoding check) [U], SAX (raw numbers), insitu (copy), insitu (copy) (no encoding check) [U] | 1,250 (U 1,089) | 1,893 (U 1,590) | 10,133 | 157,360 (U 145,703) | 5.2 (U 3.5) | + | RapidJSON | SAX (default precision) (no encoding check) [U], SAX (string stream, default precision), SAX (string stream, default precision) (no encoding check) [U], insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,166 (U 1,012) | 1,553 (U 1,434) | 3,875 | 114,704 (U 102,635) | 4.8 (U 3.2) | **sum** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | simdjson | On-Demand | 345 | 802 | 3,465 | 92,425 | 1.9 | - | **nlohmann/json `json_document`** | parse | 388 | 967 | 3,634 | 91,873 | 2.0 | + | simdjson | On-Demand | 348 | 805 | 3,452 | 92,769 | 1.9 | + | **nlohmann/json `json_document`** | parse | 398 | 972 | 3,501 | 89,756 | 2.0 | + | yyjson | insitu (copy untimed) | 415 | 986 | 3,818 | 97,586 | 1.9 | | sonic-rs (Rust) | visitor | 501 | 1,123 | 4,397 | 59,583 | 2.5 | - | sonic-cpp | Document [U] | – (U 460) | – (U 1,126) | – (U 3,948) | – (U 105,174) | – (U 2.0) | - | yyjson | insitu (copy), read | 450 | 1,100 | 4,131 | 136,960 | 1.9 | - | Boost.JSON | SAX | 698 | 961 | 5,821 | 60,418 | 3.0 | - | nlohmann/json `json` | sax | 814 | 1,638 | 5,673 | 95,614 | 4.0 | + | sonic-cpp | Document [U] | – (U 456) | – (U 1,115) | – (U 3,980) | – (U 105,081) | – (U 2.0) | + | Boost.JSON | SAX | 699 | 957 | 5,835 | 59,656 | 3.0 | + | nlohmann/json `json` | sax | 814 | 1,666 | 5,690 | 97,414 | 4.0 | | simd-json (Rust) | visitor (copy) | 681 | 1,650 | 5,083 | 210,185 | 3.5 | + | RapidJSON | SAX (string stream), SAX (string stream) (no encoding check) [U], insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,221 (U 1,063) | 1,717 (U 1,635) | 9,435 | 112,158 (U 105,845) | 5.1 (U 3.5) | | serde_json (Rust) | visitor | 1,311 | 2,288 | 7,127 | 129,497 | 4.6 | - | RapidJSON | SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,300 (U 1,141) | 2,039 (U 1,680) | 11,309 | 170,218 (U 155,049) | 5.3 (U 3.9) | - | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 2,334 | 4,099 | 11,762 (P 10,370) | 243,497 (P 233,200) | 8.7 (P 6.3) | + | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 2,483 | 4,413 | 10,532 | 231,505 | 8.5 (P 6.4) | **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) | 328 | 773 | 1,306 | 91,598 | 1.7 | - | yyjson | insitu (copy), read, read (raw numbers) | 400 | 950 | 2,136 | 138,356 | 1.7 | + | **nlohmann/json `json_document`** | parse, structs (from_json) | 333 | 828 | 1,368 | 89,876 | 1.7 | + | yyjson | insitu (copy untimed), read (raw numbers) | 366 | 840 | 2,204 | 96,172 | 1.7 | | sonic-rs (Rust) | structs | 504 | 1,033 | 2,328 | 90,486 | 2.0 | - | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P] | 311 (P 178) | 698 (P 495) | 3,263 (P 674) | 127,285 (P 49,613) | 1.9 (P 1.1) | - | sonic-cpp | Document [U] | – (U 408) | – (U 933) | – (U 3,178) | – (U 113,267) | – (U 1.8) | - | Glaze | structs (validate_skipped), structs [P] | 604 (P 344) | 1,976 (P 401) | 2,534 (P 418) | 87,637 (P 70,801) | 2.1 (P 1.5) | + | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P] | 313 (P 180) | 699 (P 496) | 3,325 (P 690) | 122,556 (P 48,272) | 1.9 (P 1.1) | + | sonic-cpp | Document [U] | – (U 407) | – (U 948) | – (U 3,464) | – (U 110,885) | – (U 1.8) | | serde_json (Rust) | from_utf8 + structs, structs [U] | 701 | 1,532 | 2,529 (U 2,402) | 107,316 | 3.0 | - | Boost.JSON | parse, parse_into structs | 886 | 1,268 | 6,606 | 94,730 | 3.7 | + | Glaze | structs (validate_skipped), structs [P] | 606 (P 344) | 2,476 (P 402) | 2,557 (P 417) | 89,957 (P 67,467) | 2.1 (P 1.5) | | simd-json (Rust) | structs (copy) | 679 | 1,731 | 5,144 | 239,164 | 3.5 | - | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,261 (U 1,096) | 1,893 (U 1,834) | 10,263 | 165,979 (U 159,427) | 5.4 (U 3.8) | - | nlohmann/json `json` | parse, structs (from_json) | 3,454 | 5,203 | 11,070 | 426,942 | 17.8 | + | Boost.JSON | parse, parse_into structs | 887 | 1,270 | 7,292 | 95,866 | 3.7 | + | RapidJSON | Document (string stream), insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,180 (U 1,022) | 1,693 | 10,390 | 116,394 (U 108,290) | 4.9 (U 3.4) | + | nlohmann/json `json` | parse, structs (from_json) | 3,360 | 5,268 | 12,006 | 410,221 | 17.7 | **edit** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | editable, editable (source numbers) [N] | 538 | 1,112 | 5,519 (N 2,133) | 195,482 | 3.0 | - | sonic-cpp | Document [U] | – (U 619) | – (U 1,434) | – (U 8,257) | – (U 183,468) | – (U 3.4) | - | yyjson | insitu (copy) + mut copy, mut copy | 787 | 1,645 | 7,403 | 311,249 | 3.6 | + | **nlohmann/json `json_document`** | editable, editable (source numbers) [N] | 536 | 1,162 | 5,567 (N 2,188) | 192,323 | 3.0 | + | sonic-cpp | Document [U] | – (U 620) | – (U 1,438) | – (U 8,495) | – (U 186,078) | – (U 3.4) | + | yyjson | insitu (copy untimed) + mut copy | 746 | 1,526 | 7,479 | 275,025 | 3.6 | | sonic-rs (Rust) | Value | 1,197 | 2,389 | 7,744 | 390,952 | 6.9 | - | Boost.JSON | parse | 1,768 | 2,511 | 12,298 | 339,121 | 8.5 | - | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,951 (U 1,793) | 2,858 | 19,274 | 288,710 | 9.1 (U 7.7) | + | Boost.JSON | parse | 1,767 | 2,493 | 12,767 | 331,310 | 8.5 | + | RapidJSON | Document (string stream), insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,865 (U 1,737) | 2,616 | 18,812 | 245,724 (U 234,669) | 8.7 (U 7.2) | | simd-json (Rust) | borrowed (copy), owned (copy) | 1,862 | 4,194 | 14,896 | 391,369 | 9.0 | - | nlohmann/json `json` | ordered_json, parse | 2,806 | 4,972 | 14,917 | 635,353 | 13.7 | - | Glaze | generic (strict), generic [P] | 3,364 | 6,118 | 20,572 | 626,529 | 15.0 | + | nlohmann/json `json` | ordered_json | 2,832 | 4,970 | 15,806 | 647,704 | 13.1 | + | Glaze | generic (strict), generic [P] | 3,389 | 6,002 | 21,598 | 607,767 | 14.8 | | serde_json (Rust) | Value | 4,042 | 6,586 | 16,631 | 632,766 | 17.6 | **minify** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse + dump, parse + dump (source numbers) [N] | 481 (N 466) | 1,034 | 5,163 (N 2,153) | 151,260 | 2.5 (N 2.4) | - | yyjson | insitu (copy) + write, read (raw numbers) + write [N], read + write | 616 | 1,273 (N 1,224) | 6,621 (N 2,874) | 203,508 | 2.9 | - | sonic-cpp | Document + Serialize [U] | – (U 635) | – (U 1,427) | – (U 8,228) | – (U 175,214) | – (U 3.3) | - | simdjson | DOM + to_string, minify [P] | 788 (P 93.7) | 1,302 (P 279) | 8,426 (P 313) | 301,627 (P 46,983) | 4.7 (P 0.5) | + | **nlohmann/json `json_document`** | parse + dump, parse + dump (source numbers) [N] | 518 (N 496) | 1,045 | 5,240 (N 2,196) | 143,737 | 2.5 (N 2.4) | + | yyjson | insitu (copy untimed) + write, insitu (copy) + write, read (raw numbers) + write [N] | 626 | 1,160 | 6,701 (N 2,901) | 156,605 | 2.8 | + | sonic-cpp | Document + Serialize [U] | – (U 675) | – (U 1,417) | – (U 8,958) | – (U 164,630) | – (U 3.3) | + | simdjson | DOM + to_string, minify [P] | 714 (P 99.9) | 1,318 (P 278) | 9,135 (P 312) | 269,597 (P 42,644) | 3.7 (P 0.5) | | sonic-rs (Rust) | Value | 1,000 | 2,097 | 7,795 | 215,280 | 5.4 | - | Boost.JSON | parse + serialize | 1,768 | 2,494 | 12,141 | 330,129 | 8.7 | + | Boost.JSON | parse + serialize | 1,974 | 2,525 | 12,748 | 314,299 | 8.6 | + | RapidJSON | SAX to Writer (raw numbers) [N], SAX to Writer (string stream), SAX to Writer (string stream) (no encoding check) [U] | 1,949 (U 1,880) | 2,382 | 19,548 (N 14,400) | 231,979 (U 224,249) | 8.2 (U 6.2) | | simd-json (Rust) | borrowed (copy) | 1,889 | 4,196 | 15,716 | 414,377 | 9.2 | - | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U], SAX to Writer (raw numbers) (no encoding check) [U N] | 2,431 (U 1,730) | 2,815 (U 2,395) | 20,693 (U N 14,118) | 375,304 (U 274,873) | 13.5 (U 9.5) | - | Glaze | generic (strict), minify_json [P] | 3,268 (P 418) | 6,057 (P 1,292) | 20,639 (P 2,650) | 457,013 (P 93,423) | 13.9 (P 1.9) | - | nlohmann/json `json` | parse + dump | 3,861 | 5,772 | 14,812 | 546,637 | 19.4 | + | Glaze | generic (strict), minify_json [P] | 3,685 (P 442) | 5,942 (P 1,292) | 22,138 (P 2,726) | 450,322 (P 97,377) | 14.0 (P 1.9) | | serde_json (Rust) | Value | 4,012 | 6,583 | 17,306 | 509,702 | 16.5 | + | nlohmann/json `json` | parse + dump | 4,196 | 5,806 | 16,626 | 529,560 | 19.2 | **write** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | dump, dump (source numbers) [N] | 155 (N 139) | 251 (N 232) | 3,844 (N 835) | 70,827 | 0.9 (N 0.8) | - | yyjson | write | 187 | 333 | 3,343 | 68,342 | 1.3 | - | sonic-cpp | Serialize | 250 | 512 | 5,098 | 69,815 | 1.6 | - | nlohmann/json `json` | dump | 424 | 656 | 3,870 | 117,712 | 1.8 | - | Glaze | generic | 380 | 733 | 4,017 | 133,545 | 2.0 | + | **nlohmann/json `json_document`** | dump, dump (source numbers) [N] | 156 (N 140) | 251 (N 230) | 3,842 (N 823) | 67,769 (N 65,376) | 0.9 (N 0.8) | + | yyjson | write | 215 | 319 | 3,360 | 66,669 | 1.3 | + | sonic-cpp | Serialize | 249 | 509 | 5,074 | 69,916 | 1.6 | + | nlohmann/json `json` | dump | 444 | 640 | 4,089 | 117,316 | 1.8 | + | simdjson | to_string | 361 | 614 | 5,609 | 158,492 | 1.8 | + | Glaze | generic | 381 | 730 | 4,071 | 131,946 | 2.0 | | sonic-rs (Rust) | Value | 434 | 927 | 3,987 | 109,176 | 2.8 | - | Boost.JSON | serialize | 455 | 837 | 5,472 | 144,557 | 2.3 | - | simdjson | to_string | 463 | 586 | 5,626 | 185,384 | 2.8 | + | Boost.JSON | serialize | 469 | 830 | 5,659 | 144,174 | 2.4 | | simd-json (Rust) | borrowed | 582 | 800 | 5,147 | 122,623 | 2.8 | | serde_json (Rust) | Value | 550 | 887 | 4,005 | 134,163 | 3.3 | - | RapidJSON | Writer | 637 | 983 | 8,996 | 130,099 | 3.8 | + | RapidJSON | Writer | 678 | 979 | 9,095 | 131,408 | 3.8 | ??? info "Times in µs on x86-64 with GCC 13.4" @@ -2080,96 +2094,96 @@ value, so it holds a little more. | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | accept | 269 | 576 | 984 | 34,383 | 1.2 | + | **nlohmann/json `json_document`** | accept | 271 | 609 | 1,011 | 34,722 | 1.2 | | sonic-rs (Rust) | IgnoredAny | 501 | 970 | 2,249 | 54,369 | 1.8 | - | simdjson | DOM | 311 | 750 | 3,111 | 114,707 | 1.8 | - | Boost.JSON | SAX, SAX (numbers: none) | 723 | 933 | 1,674 | 61,382 | 3.2 | - | yyjson | insitu (copy), read (raw numbers) | 392 | 991 | 2,209 | 125,376 | 1.7 | - | Glaze | validate_json | 592 | 1,417 | 1,868 | 72,510 | 2.3 | - | sonic-cpp | Document [U] | – (U 416) | – (U 1,034) | – (U 3,563) | – (U 95,396) | – (U 1.6) | + | yyjson | insitu (copy untimed), read (raw numbers) | 348 | 878 | 2,256 | 90,959 | 1.6 | + | Boost.JSON | SAX, SAX (numbers: none) | 710 | 969 | 1,718 | 61,476 | 3.2 | + | simdjson | DOM | 311 | 780 | 3,351 | 116,704 | 1.8 | + | Glaze | validate_json | 590 | 1,545 | 1,980 | 76,009 | 2.3 | + | sonic-cpp | Document [U] | – (U 408) | – (U 1,028) | – (U 3,622) | – (U 96,080) | – (U 1.6) | | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 624 (U 484) | 1,440 (U 1,370) | 2,406 (U 2,314) | 64,720 (U 58,247) | 2.4 (U 1.9) | - | nlohmann/json `json` | accept | 698 | 1,299 | 4,370 | 72,856 | 3.1 | + | nlohmann/json `json` | accept | 677 | 1,433 | 4,584 | 73,561 | 3.3 | | simd-json (Rust) | tape (copy) | 567 | 1,430 | 4,359 | 207,551 | 2.9 | - | RapidJSON | SAX (no encoding check) [U], SAX (raw numbers), insitu (copy), insitu (copy) (no encoding check) [U] | 1,694 (U 1,126) | 2,222 (U 1,695) | 10,357 | 207,460 (U 153,062) | 7.0 (U 3.6) | + | RapidJSON | SAX (default precision) (no encoding check) [U], SAX (string stream, default precision), insitu (copy untimed), insitu (copy untimed) (no encoding check) [U], insitu (copy) (no encoding check) [U] | 1,552 (U 1,082) | 2,210 (U 1,570) | 4,104 | 168,747 (U 110,856) | 6.9 (U 3.7) | **sum** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | simdjson | On-Demand | 356 | 811 | 3,330 | 89,536 | 2.0 | - | **nlohmann/json `json_document`** | parse | 391 | 919 | 3,687 | 83,751 | 2.0 | + | simdjson | On-Demand | 356 | 812 | 3,435 | 96,250 | 2.0 | + | **nlohmann/json `json_document`** | parse | 392 | 946 | 3,888 | 89,044 | 2.0 | | sonic-rs (Rust) | visitor | 501 | 1,123 | 4,397 | 59,583 | 2.5 | - | sonic-cpp | Document [U] | – (U 462) | – (U 1,211) | – (U 4,178) | – (U 102,429) | – (U 1.9) | - | yyjson | insitu (copy), read | 445 | 1,153 | 5,982 | 132,844 | 2.0 | - | Boost.JSON | SAX | 736 | 1,018 | 5,847 | 62,361 | 3.3 | - | nlohmann/json `json` | sax | 792 | 1,545 | 5,697 | 95,144 | 4.1 | + | sonic-cpp | Document [U] | – (U 460) | – (U 1,210) | – (U 4,295) | – (U 107,092) | – (U 1.9) | + | yyjson | insitu (copy untimed) | 407 | 1,045 | 6,021 | 99,764 | 2.0 | + | Boost.JSON | SAX | 734 | 1,030 | 6,103 | 64,382 | 3.3 | + | nlohmann/json `json` | sax | 797 | 1,548 | 6,004 | 101,516 | 4.0 | | simd-json (Rust) | visitor (copy) | 681 | 1,650 | 5,083 | 210,185 | 3.5 | | serde_json (Rust) | visitor | 1,311 | 2,288 | 7,127 | 129,497 | 4.6 | - | RapidJSON | SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,647 (U 1,169) | 2,326 (U 1,739) | 10,949 | 212,747 (U 156,639) | 7.7 (U 4.0) | - | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 2,350 | 4,048 | 10,485 | 233,680 (P 220,377) | 8.9 (P 6.1) | + | RapidJSON | SAX (no encoding check) [U], SAX (string stream), SAX (string stream) (no encoding check) [U], insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,616 (U 1,130) | 2,290 (U 1,743) | 11,183 | 181,500 (U 119,706) | 7.5 (U 3.9) | + | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 2,345 | 4,080 | 10,576 | 250,685 (P 231,181) | 9.0 (P 6.4) | **select** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse | 335 | 740 | 1,358 | 94,846 | 1.6 | - | yyjson | insitu (copy), read, read (raw numbers) | 399 | 996 | 2,221 | 142,096 | 1.8 | + | **nlohmann/json `json_document`** | parse | 332 | 765 | 1,390 | 88,202 | 1.6 | + | yyjson | insitu (copy untimed), read (raw numbers) | 361 | 880 | 2,236 | 98,637 | 1.7 | | sonic-rs (Rust) | structs | 504 | 1,033 | 2,328 | 90,486 | 2.0 | - | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P] | 320 (P 184) | 755 (P 508) | 3,149 (P 701) | 129,932 (P 51,763) | 2.0 (P 1.2) | - | Glaze | structs (validate_skipped), structs [P] | 526 (P 341) | 1,453 (P 405) | 1,902 (P 432) | 87,166 (P 66,832) | 2.0 (P 1.5) | - | sonic-cpp | Document [U] | – (U 415) | – (U 1,040) | – (U 3,708) | – (U 111,786) | – (U 1.7) | + | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P] | 324 (P 184) | 756 (P 509) | 3,409 (P 700) | 123,214 (P 48,614) | 2.0 (P 1.2) | + | Glaze | structs (validate_skipped), structs [P] | 529 (P 342) | 1,435 (P 410) | 1,913 (P 431) | 91,253 (P 66,069) | 2.0 (P 1.5) | + | sonic-cpp | Document [U] | – (U 413) | – (U 1,043) | – (U 3,695) | – (U 108,297) | – (U 1.7) | | serde_json (Rust) | from_utf8 + structs, structs [U] | 701 | 1,532 | 2,529 (U 2,402) | 107,316 | 3.0 | | simd-json (Rust) | structs (copy) | 679 | 1,731 | 5,144 | 239,164 | 3.5 | - | Boost.JSON | parse_into structs | 889 | 1,383 | 6,906 | 102,896 | 4.1 | - | RapidJSON | Document (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,601 (U 1,117) | 2,216 (U 1,920) | 11,491 | 221,481 (U 166,715) | 7.5 (U 3.9) | - | nlohmann/json `json` | parse, structs (from_json) | 3,323 | 5,055 | 12,002 | 432,006 | 17.4 | + | Boost.JSON | parse, parse_into structs | 884 | 1,380 | 7,217 | 99,078 | 3.9 | + | RapidJSON | Document (string stream) (no encoding check) [U], insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,560 (U 1,079) | 2,127 (U 1,817) | 11,547 | 176,066 (U 122,354) | 7.1 (U 3.7) | + | nlohmann/json `json` | structs (from_json) | 3,325 | 5,126 | 11,908 | 423,362 | 17.0 | **edit** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | editable, editable (source numbers) [N] | 534 | 1,091 | 5,634 (N 2,606) | 192,274 | 3.1 | - | sonic-cpp | Document [U] | – (U 635) | – (U 1,558) | – (U 8,793) | – (U 186,661) | – (U 3.4) | - | yyjson | insitu (copy) + mut copy, mut copy | 806 | 1,712 | 9,794 | 314,081 | 3.8 | + | **nlohmann/json `json_document`** | editable, editable (source numbers) [N] | 532 | 1,116 | 5,714 (N 2,702) | 192,363 | 3.1 | + | sonic-cpp | Document [U] | – (U 637) | – (U 1,559) | – (U 8,936) | – (U 186,232) | – (U 3.3) | + | yyjson | insitu (copy untimed) + mut copy | 761 | 1,590 | 9,860 | 271,227 | 3.7 | | sonic-rs (Rust) | Value | 1,197 | 2,389 | 7,744 | 390,952 | 6.9 | - | Boost.JSON | parse | 1,921 | 2,957 | 13,679 | 357,636 | 9.2 | + | Boost.JSON | parse | 1,963 | 2,936 | 13,414 | 356,244 | 9.1 | | simd-json (Rust) | borrowed (copy), owned (copy) | 1,862 | 4,194 | 14,896 | 391,369 | 9.0 | - | RapidJSON | Document (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 2,334 (U 1,892) | 3,188 (U 2,898) | 20,424 | 354,478 (U 297,773) | 11.8 (U 7.7) | - | nlohmann/json `json` | ordered_json | 2,840 | 4,985 | 15,317 | 649,500 | 14.3 | + | RapidJSON | Document (string stream) (no encoding check) [U], insitu (copy untimed), insitu (copy untimed) (no encoding check) [U], insitu (copy) | 2,333 (U 1,838) | 3,133 (U 2,836) | 20,518 | 315,892 (U 271,888) | 11.0 (U 7.7) | + | nlohmann/json `json` | ordered_json | 2,912 | 4,999 | 15,603 | 604,744 | 13.5 | + | Glaze | generic (strict), generic [P] | 3,525 | 6,551 | 23,644 | 661,941 (P 632,543) | 15.6 | | serde_json (Rust) | Value | 4,042 | 6,586 | 16,631 | 632,766 | 17.6 | - | Glaze | generic (strict), generic [P] | 3,600 | 6,812 | 22,771 | 676,289 | 15.9 | **minify** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse + dump, parse + dump (source numbers) [N] | 485 | 1,004 | 5,260 (N 2,236) | 142,985 | 2.5 | - | yyjson | insitu (copy) + write, read (raw numbers) + write [N], read + write | 633 | 1,327 (N 1,268) | 8,944 (N 2,942) | 194,228 | 3.0 | - | sonic-cpp | Document + Serialize [U] | – (U 648) | – (U 1,551) | – (U 8,646) | – (U 162,814) | – (U 3.4) | - | simdjson | DOM + to_string, minify [P] | 795 (P 123) | 1,396 (P 336) | 8,342 (P 423) | 283,280 (P 44,890) | 4.7 (P 0.6) | + | **nlohmann/json `json_document`** | parse + dump, parse + dump (source numbers) [N], parse_copy + dump | 483 | 1,014 | 5,459 (N 2,620) | 146,320 | 2.4 | + | yyjson | insitu (copy untimed) + write, read (raw numbers) + write [N], read + write | 592 | 1,205 | 9,008 (N 3,106) | 158,577 | 2.9 | + | sonic-cpp | Document + Serialize [U] | – (U 695) | – (U 1,541) | – (U 8,838) | – (U 168,901) | – (U 3.3) | + | simdjson | DOM + to_string, minify [P] | 742 (P 123) | 1,393 (P 337) | 8,808 (P 433) | 266,718 (P 47,040) | 3.8 (P 0.6) | | sonic-rs (Rust) | Value | 1,000 | 2,097 | 7,795 | 215,280 | 5.4 | - | Boost.JSON | parse + serialize | 1,933 | 2,927 | 13,580 | 333,217 | 9.4 | + | Boost.JSON | parse + serialize | 2,086 | 2,919 | 13,974 | 334,468 | 9.2 | | simd-json (Rust) | borrowed (copy) | 1,889 | 4,196 | 15,716 | 414,377 | 9.2 | - | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U], SAX to Writer (raw numbers) (no encoding check) [U N] | 2,716 (U 1,837) | 3,082 (U 2,508) | 20,610 (U N 14,998) | 386,778 (U N 277,974) | 15.2 (U 10.2) | - | Glaze | generic (strict), minify_json [P] | 3,324 (P 419) | 6,164 (P 1,112) | 22,576 (P 2,095) | 476,579 (P 96,282) | 14.6 (P 1.9) | - | nlohmann/json `json` | parse + dump | 3,753 | 5,669 | 15,647 | 527,354 | 19.3 | + | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U], SAX to Writer (raw numbers) (no encoding check) [U N], SAX to Writer (string stream), SAX to Writer (string stream) (no encoding check) [U] | 3,015 (U 1,978) | 3,012 (U 2,493) | 21,177 (U N 15,512) | 355,727 (U 249,235) | 13.9 (U 7.5) | + | Glaze | generic (strict), minify_json [P] | 3,780 (P 422) | 6,416 (P 1,144) | 23,765 (P 2,350) | 458,311 (P 96,405) | 14.7 (P 1.9) | | serde_json (Rust) | Value | 4,012 | 6,583 | 17,306 | 509,702 | 16.5 | + | nlohmann/json `json` | parse + dump | 4,143 | 5,702 | 16,463 | 528,092 | 19.5 | **write** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | dump, dump (source numbers) [N] | 151 | 270 (N 255) | 3,827 (N 870) | 66,099 | 0.9 (N 0.8) | - | yyjson | write | 205 | 334 | 3,525 | 71,877 | 1.3 | - | sonic-cpp | Serialize | 258 | 536 | 5,070 | 71,191 | 1.7 | - | Glaze | generic, generic (strict) | 332 | 655 | 3,676 | 128,044 | 1.8 | - | nlohmann/json `json` | dump | 437 | 631 | 4,027 | 119,028 | 2.0 | + | **nlohmann/json `json_document`** | dump, dump (source numbers) [N] | 150 | 260 | 3,861 (N 998) | 63,958 | 0.8 | + | yyjson | write | 204 | 327 | 3,748 | 65,989 | 1.2 | + | sonic-cpp | Serialize | 256 | 541 | 5,120 | 69,546 | 1.6 | + | Glaze | generic, generic (strict) | 360 | 660 | 3,714 | 124,598 | 1.7 | + | nlohmann/json `json` | dump | 471 | 644 | 4,344 | 114,096 | 1.9 | + | simdjson | to_string | 359 | 637 | 4,999 | 154,364 | 1.9 | | sonic-rs (Rust) | Value | 434 | 927 | 3,987 | 109,176 | 2.8 | - | simdjson | to_string | 457 | 618 | 4,906 | 175,750 | 2.8 | | simd-json (Rust) | borrowed | 582 | 800 | 5,147 | 122,623 | 2.8 | - | Boost.JSON | serialize | 464 | 999 | 6,202 | 142,516 | 2.5 | + | Boost.JSON | serialize | 480 | 1,016 | 6,154 | 139,022 | 2.5 | | serde_json (Rust) | Value | 550 | 887 | 4,005 | 134,163 | 3.3 | - | RapidJSON | Writer | 669 | 1,025 | 9,078 | 140,116 | 4.0 | + | RapidJSON | Writer | 717 | 1,033 | 9,017 | 134,260 | 4.0 | ??? info "Times in µs on x86-64 with Clang 23" @@ -2177,96 +2191,96 @@ value, so it holds a little more. | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | accept | 254 | 517 | 995 | 34,154 | 1.2 | + | **nlohmann/json `json_document`** | accept | 255 | 512 | 1,055 | 34,729 | 1.1 | + | yyjson | insitu (copy untimed), read (raw numbers) | 334 | 811 | 2,580 | 83,153 | 1.5 | | sonic-rs (Rust) | IgnoredAny | 501 | 970 | 2,249 | 54,369 | 1.8 | - | Boost.JSON | SAX, SAX (numbers: none) | 569 | 909 | 1,683 | 54,986 | 2.3 | - | simdjson | DOM | 306 | 722 | 3,203 | 118,182 | 1.7 | - | yyjson | insitu (copy), read, read (raw numbers) | 380 | 897 | 2,573 | 125,497 | 1.6 | - | Glaze | validate_json | 582 | 1,229 | 2,011 | 72,734 | 2.5 | - | sonic-cpp | Document [U] | – (U 445) | – (U 1,000) | – (U 3,042) | – (U 100,684) | – (U 1.8) | + | Boost.JSON | SAX, SAX (numbers: none) | 571 | 910 | 1,684 | 55,498 | 2.3 | + | simdjson | DOM | 306 | 732 | 3,206 | 113,452 | 1.7 | + | sonic-cpp | Document [U] | – (U 448) | – (U 1,032) | – (U 3,143) | – (U 94,884) | – (U 1.8) | + | Glaze | validate_json | 588 | 1,431 | 1,867 | 75,571 | 2.4 | | serde_json (Rust) | IgnoredAny [U], from_utf8 + IgnoredAny | 624 (U 484) | 1,440 (U 1,370) | 2,406 (U 2,314) | 64,720 (U 58,247) | 2.4 (U 1.9) | - | nlohmann/json `json` | accept | 654 | 1,283 | 4,043 | 70,284 | 3.3 | + | nlohmann/json `json` | accept | 658 | 1,390 | 4,265 | 71,982 | 3.5 | | simd-json (Rust) | tape (copy) | 567 | 1,430 | 4,359 | 207,551 | 2.9 | - | RapidJSON | SAX, SAX (no encoding check) [U], SAX (raw numbers), insitu (copy), insitu (copy) (no encoding check) [U] | 1,808 (U 1,171) | 2,105 (U 1,664) | 10,540 | 247,331 (U 158,423) | 8.1 (U 4.1) | + | RapidJSON | SAX (default precision), SAX (default precision) (no encoding check) [U], SAX (string stream, default precision), SAX (string stream, default precision) (no encoding check) [U], insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,756 (U 1,132) | 1,971 (U 1,572) | 4,118 | 198,915 (U 131,204) | 8.2 (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 | 372 | 948 | 3,720 | 86,351 | 1.9 | + | **nlohmann/json `json_document`** | parse | 374 | 923 | 3,846 | 85,286 | 1.8 | + | yyjson | insitu (copy untimed) | 399 | 946 | 3,445 | 88,447 | 1.9 | + | simdjson | DOM, On-Demand | 394 | 977 | 4,117 | 114,602 | 2.2 | | sonic-rs (Rust) | visitor | 501 | 1,123 | 4,397 | 59,583 | 2.5 | - | yyjson | insitu (copy), read | 435 | 1,054 | 3,456 | 131,400 | 1.9 | - | simdjson | DOM, On-Demand | 398 | 981 | 4,131 | 116,924 | 2.3 | - | sonic-cpp | Document [U] | – (U 508) | – (U 1,171) | – (U 3,661) | – (U 110,607) | – (U 2.2) | - | Boost.JSON | SAX | 580 | 924 | 5,915 | 60,351 | 2.3 | - | nlohmann/json `json` | sax | 720 | 1,382 | 5,162 | 87,316 | 3.9 | + | sonic-cpp | Document [U] | – (U 502) | – (U 1,175) | – (U 3,754) | – (U 104,583) | – (U 2.1) | + | Boost.JSON | SAX | 580 | 928 | 5,809 | 56,774 | 2.4 | + | nlohmann/json `json` | sax | 728 | 1,393 | 5,428 | 89,481 | 3.9 | | simd-json (Rust) | visitor (copy) | 681 | 1,650 | 5,083 | 210,185 | 3.5 | | serde_json (Rust) | visitor | 1,311 | 2,288 | 7,127 | 129,497 | 4.6 | - | RapidJSON | SAX, SAX (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 1,865 (U 1,232) | 2,173 (U 1,757) | 11,995 | 258,526 (U 166,047) | 8.5 (U 4.4) | - | Glaze | generic (double) [P], generic (double, strict), lazy_json [P] | 2,392 | 4,048 | 11,814 | 264,675 (P 198,418) | 8.9 (P 5.7) | + | RapidJSON | SAX, SAX (no encoding check) [U], SAX (string stream), SAX (string stream) (no encoding check) [U], insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,816 (U 1,187) | 2,224 (U 1,765) | 10,719 | 206,811 (U 135,945) | 8.5 (U 4.3) | + | Glaze | generic (double, strict), lazy_json [P] | 2,427 | 3,972 | 12,165 | 253,385 (P 196,582) | 9.2 (P 5.6) | **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) | 314 | 778 | 1,387 | 87,988 | 1.6 | - | yyjson | insitu (copy), read, read (raw numbers) | 389 | 900 | 2,627 | 134,301 | 1.7 | - | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P] | 316 (P 182) | 736 (P 495) | 3,272 (P 698) | 121,563 (P 47,588) | 1.9 (P 1.1) | + | **nlohmann/json `json_document`** | parse, structs (from_json) | 320 | 759 | 1,390 | 88,083 | 1.6 | + | yyjson | insitu (copy untimed), read (raw numbers) | 351 | 788 | 2,632 | 92,551 | 1.6 | + | simdjson | DOM, On-Demand (key selectors) [P], On-Demand [P], On-Demand structs [P] | 316 (P 181) | 731 (P 495) | 3,262 (P 702) | 120,808 (P 48,823) | 1.9 (P 1.1) | | sonic-rs (Rust) | structs | 504 | 1,033 | 2,328 | 90,486 | 2.0 | - | Glaze | structs (validate_skipped), structs [P] | 542 (P 337) | 1,370 (P 418) | 1,870 (P 446) | 82,551 (P 67,047) | 2.2 (P 1.6) | - | sonic-cpp | Document [U] | – (U 456) | – (U 1,013) | – (U 3,104) | – (U 113,400) | – (U 1.9) | + | Glaze | structs (validate_skipped), structs [P] | 544 (P 345) | 1,368 (P 419) | 1,924 (P 444) | 85,745 (P 66,442) | 2.2 (P 1.6) | + | sonic-cpp | Document [U] | – (U 460) | – (U 1,011) | – (U 3,204) | – (U 108,245) | – (U 1.9) | | serde_json (Rust) | from_utf8 + structs, structs [U] | 701 | 1,532 | 2,529 (U 2,402) | 107,316 | 3.0 | - | Boost.JSON | parse, parse_into structs | 767 | 1,389 | 7,310 | 95,891 | 3.2 | + | Boost.JSON | parse, parse_into structs | 776 | 1,389 | 7,121 | 97,681 | 3.2 | | simd-json (Rust) | structs (copy) | 679 | 1,731 | 5,144 | 239,164 | 3.5 | - | RapidJSON | insitu (copy), insitu (copy) (no encoding check) [U] | 1,813 (U 1,181) | 2,306 (U 1,932) | 11,750 | 253,907 (U 182,669) | 8.3 (U 4.1) | - | nlohmann/json `json` | parse, structs (from_json) | 3,521 | 5,192 | 11,196 | 453,587 | 20.0 | + | RapidJSON | insitu (copy untimed), insitu (copy untimed) (no encoding check) [U] | 1,762 (U 1,144) | 2,198 (U 1,817) | 11,464 | 209,290 (U 142,852) | 8.2 (U 4.1) | + | nlohmann/json `json` | parse, structs (from_json) | 3,602 | 5,124 | 11,831 | 444,210 | 20.2 | **edit** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | editable, editable (source numbers) [N] | 524 | 1,143 | 5,462 (N 2,443) | 202,684 | 2.9 | - | sonic-cpp | Document [U] | – (U 634) | – (U 1,458) | – (U 7,852) | – (U 183,532) | – (U 3.3) | - | yyjson | insitu (copy) + mut copy, mut copy | 869 | 1,674 | 7,099 | 309,767 | 3.9 | + | **nlohmann/json `json_document`** | editable, editable (source numbers) [N] | 526 | 1,127 | 5,674 (N 2,443) | 196,370 | 2.9 | + | sonic-cpp | Document [U] | – (U 711) | – (U 1,472) | – (U 7,996) | – (U 183,852) | – (U 3.2) | + | yyjson | insitu (copy untimed) + mut copy, insitu (copy) + mut copy | 918 | 1,548 | 7,155 | 270,654 | 3.9 | | sonic-rs (Rust) | Value | 1,197 | 2,389 | 7,744 | 390,952 | 6.9 | - | Boost.JSON | parse | 1,723 | 2,574 | 12,679 | 358,088 | 8.4 | + | Boost.JSON | parse | 1,855 | 2,596 | 12,765 | 350,286 | 8.3 | | simd-json (Rust) | borrowed (copy), owned (copy) | 1,862 | 4,194 | 14,896 | 391,369 | 9.0 | - | RapidJSON | Document (no encoding check) [U], insitu (copy), insitu (copy) (no encoding check) [U] | 2,470 (U 1,839) | 3,194 (U 2,862) | 21,016 | 380,503 (U 311,506) | 12.1 (U 7.8) | - | nlohmann/json `json` | ordered_json, parse | 2,784 | 4,911 | 15,563 | 659,023 | 13.1 | + | RapidJSON | insitu (copy untimed), insitu (copy untimed) (no encoding check) [U], insitu (copy) | 2,635 (U 1,952) | 3,103 (U 2,728) | 21,139 | 333,913 (U 267,081) | 11.8 (U 7.7) | + | nlohmann/json `json` | ordered_json, parse | 3,069 | 4,905 | 16,702 | 666,261 | 13.1 | | serde_json (Rust) | Value | 4,042 | 6,586 | 16,631 | 632,766 | 17.6 | - | Glaze | generic (strict), generic [P] | 3,866 | 7,305 | 27,388 | 744,826 | 18.5 | + | Glaze | generic (strict), generic [P] | 4,341 | 7,322 | 26,786 | 725,881 | 18.3 (P 17.7) | **minify** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | parse + dump, parse + dump (source numbers) [N] | 474 | 1,050 | 5,333 (N 2,402) | 156,634 (N 147,779) | 2.4 | - | yyjson | insitu (copy) + write, read (raw numbers) + write [N], read + write | 631 | 1,262 | 6,304 (N 3,614) | 196,789 | 3.1 | - | sonic-cpp | Document + Serialize [U] | – (U 646) | – (U 1,482) | – (U 8,135) | – (U 167,844) | – (U 3.2) | - | simdjson | DOM + to_string, minify [P] | 842 (P 98.8) | 1,430 (P 269) | 8,105 (P 332) | 297,946 (P 44,830) | 4.9 (P 0.5) | + | **nlohmann/json `json_document`** | parse + dump, parse + dump (source numbers) [N] | 518 | 1,040 | 5,043 (N 2,456) | 146,125 | 2.4 | + | yyjson | insitu (copy untimed) + write, read (raw numbers) + write [N] | 620 | 1,189 | 6,283 (N 3,472) | 154,016 | 3.0 | + | sonic-cpp | Document + Serialize [U] | – (U 710) | – (U 1,485) | – (U 8,122) | – (U 166,935) | – (U 3.1) | + | simdjson | DOM + to_string, minify [P] | 783 (P 105) | 1,395 (P 269) | 8,303 (P 337) | 275,007 (P 45,087) | 4.0 (P 0.5) | | sonic-rs (Rust) | Value | 1,000 | 2,097 | 7,795 | 215,280 | 5.4 | - | Boost.JSON | parse + serialize | 1,753 | 2,591 | 13,210 | 339,360 | 8.5 | + | Boost.JSON | parse + serialize | 1,924 | 2,569 | 12,622 | 329,090 | 8.4 | | simd-json (Rust) | borrowed (copy) | 1,889 | 4,196 | 15,716 | 414,377 | 9.2 | - | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U], SAX to Writer (raw numbers) (no encoding check) [U N] | 2,416 (U 1,751) | 2,870 (U 2,380) | 22,073 (U N 14,655) | 354,208 (U N 261,920) | 13.2 (U 9.5) | + | RapidJSON | Document + Writer, SAX to Writer, SAX to Writer (no encoding check) [U], SAX to Writer (raw numbers) (no encoding check) [U N], SAX to Writer (raw numbers) [N], SAX to Writer (string stream), SAX to Writer (string stream) (no encoding check) [U] | 2,808 (U N 2,022) | 2,975 (U 2,480) | 22,589 (N 14,986) | 358,807 (U 261,527) | 12.7 (U 7.2) | | serde_json (Rust) | Value | 4,012 | 6,583 | 17,306 | 509,702 | 16.5 | - | nlohmann/json `json` | parse + dump | 3,990 | 5,719 | 16,153 | 536,911 | 20.8 | - | Glaze | generic (strict), minify_json [P] | 3,834 (P 422) | 7,269 (P 1,058) | 27,454 (P 2,150) | 521,119 (P 88,952) | 17.3 (P 2.0) | + | nlohmann/json `json` | parse + dump | 4,445 | 5,713 | 16,711 | 543,033 | 21.4 | + | Glaze | generic (strict), minify_json [P] | 4,132 (P 444) | 7,465 (P 1,059) | 26,962 (P 2,222) | 528,811 (P 91,153) | 17.2 (P 1.9) | **write** | library | variant | `twitter.json` | `citm_catalog.json` | `canada.json` | `jeopardy.json` | one status (2.5 KB) | | --- | --- | --: | --: | --: | --: | --: | - | **nlohmann/json `json_document`** | dump, dump (source numbers) [N] | 159 (N 152) | 277 | 3,798 (N 986) | 67,700 | 0.9 | - | yyjson | write | 216 | 359 | 3,514 | 73,410 | 1.4 | - | sonic-cpp | Serialize | 219 | 473 | 4,853 | 67,189 | 1.3 | - | nlohmann/json `json` | dump | 441 | 606 | 4,485 | 113,462 | 1.9 | - | Glaze | generic, generic (strict) | 400 | 722 | 4,229 | 134,914 | 2.1 | + | **nlohmann/json `json_document`** | dump, dump (source numbers) [N] | 160 (N 154) | 311 (N 279) | 3,714 (N 989) | 67,038 (N 64,301) | 0.9 | + | yyjson | write | 218 | 386 | 3,476 | 71,247 | 1.4 | + | sonic-cpp | Serialize | 224 | 475 | 4,850 | 65,131 | 1.3 | + | nlohmann/json `json` | dump | 451 | 628 | 4,506 | 116,529 | 2.0 | + | Glaze | generic | 399 | 748 | 4,220 | 128,020 | 2.0 | + | simdjson | to_string | 389 | 656 | 4,896 | 157,616 | 2.1 | | sonic-rs (Rust) | Value | 434 | 927 | 3,987 | 109,176 | 2.8 | - | Boost.JSON | serialize | 487 | 900 | 5,691 | 142,547 | 2.5 | - | simdjson | to_string | 503 | 672 | 5,039 | 173,990 | 2.9 | + | Boost.JSON | serialize | 478 | 916 | 5,615 | 141,846 | 2.5 | | simd-json (Rust) | borrowed | 582 | 800 | 5,147 | 122,623 | 2.8 | | serde_json (Rust) | Value | 550 | 887 | 4,005 | 134,163 | 3.3 | - | RapidJSON | Writer | 627 | 952 | 9,851 | 126,032 | 3.8 | + | RapidJSON | Writer | 627 | 1,008 | 9,596 | 123,764 | 3.7 | ### F. Behavior changes diff --git a/docs/mkdocs/docs/images/perf_blog_heldout.svg b/docs/mkdocs/docs/images/perf_blog_heldout.svg index 30f262ce3..5bce0d107 100644 --- a/docs/mkdocs/docs/images/perf_blog_heldout.svg +++ b/docs/mkdocs/docs/images/perf_blog_heldout.svg @@ -1,6 +1,6 @@ Validating 19 files 3.13.0 was not tuned on: json_document's time relative to the fastest other library per file -Dot plot per file, less is better; below 1.0 json_document is the fastest fully validating library. mesh: Mac 0.67, x86-64 0.44 (serde_json (Rust)); marine_ik: Mac 0.59, x86-64 0.62 (Boost.J​SON); semanticscholar-corpus: Mac 0.79, x86-64 0.65 (sonic-rs (Rust)); gsoc-2018: Mac 0.61, x86-64 0.65 (Boost.J​SON); twitter_api_compact_response: Mac 0.91, x86-64 0.70 (simdjson); twitterescaped: Mac 0.94, x86-64 0.77 (simdjson); github_events: Mac 0.82, x86-64 0.77 (simdjson); numbers: Mac 0.69, x86-64 0.77 (Boost.J​SON); twitter_api_response: Mac 0.95, x86-64 0.81 (simdjson); google_maps_api_compact_response: Mac 0.84, x86-64 0.81 (yyjson); twitter_timeline: Mac 0.97, x86-64 0.82 (yyjson); update-center: Mac 0.89, x86-64 0.83 (simdjson); random: Mac 0.82, x86-64 0.88 (simdjson); instruments: Mac 0.94, x86-64 0.90 (simdjson); apache_builds: Mac 1.11, x86-64 0.90 (simdjson); repeat: Mac 0.65, x86-64 0.91 (simdjson); mesh.pretty: Mac 0.85, x86-64 0.92 (Boost.J​SON); tree-pretty: Mac 0.95, x86-64 0.94 (simdjson); google_maps_api_response: Mac 0.91, x86-64 0.99 (simdjson). +Dot plot per file, less is better; below 1.0 json_document is the fastest fully validating library. mesh: Mac 0.68, x86-64 0.44 (serde_json (Rust)); marine_ik: Mac 0.59, x86-64 0.64 (Boost.J​SON); semanticscholar-corpus: Mac 0.79, x86-64 0.65 (sonic-rs (Rust)); gsoc-2018: Mac 0.60, x86-64 0.66 (Boost.J​SON); twitter_api_compact_response: Mac 0.91, x86-64 0.70 (simdjson); twitterescaped: Mac 0.93, x86-64 0.76 (simdjson); numbers: Mac 0.67, x86-64 0.77 (Boost.J​SON); github_events: Mac 0.79, x86-64 0.77 (simdjson); update-center: Mac 0.88, x86-64 0.79 (simdjson); twitter_timeline: Mac 0.97, x86-64 0.80 (yyjson); twitter_api_response: Mac 0.93, x86-64 0.81 (simdjson); google_maps_api_compact_response: Mac 0.86, x86-64 0.81 (yyjson); repeat: Mac 0.65, x86-64 0.82 (simdjson); random: Mac 0.81, x86-64 0.88 (simdjson); apache_builds: Mac 1.08, x86-64 0.90 (simdjson); instruments: Mac 0.90, x86-64 0.92 (simdjson); mesh.pretty: Mac 0.86, x86-64 0.92 (Boost.J​SON); tree-pretty: Mac 0.93, x86-64 0.96 (simdjson); google_maps_api_response: Mac 0.93, x86-64 0.99 (simdjson). 0.4× @@ -22,80 +22,80 @@ x86-64, G​CC 16.2 next on x86-64 mesh -mesh, Apple M1 Max: 0.67× the time of Glaze -mesh, x86-64, G​CC 16.2: 0.44× the time of serde_json (Rust) +mesh, Apple M1 Max: 0.68× the time of Glaze +mesh, x86-64, G​CC 16.2: 0.44× the time of serde_json (Rust) serde_json (Rust) marine_ik -marine_ik, Apple M1 Max: 0.59× the time of Glaze -marine_ik, x86-64, G​CC 16.2: 0.62× the time of Boost.J​SON +marine_ik, Apple M1 Max: 0.59× the time of Glaze +marine_ik, x86-64, G​CC 16.2: 0.64× the time of Boost.J​SON Boost.J​SON semanticscholar-corpus -semanticscholar-corpus, Apple M1 Max: 0.79× the time of sonic-rs (Rust) -semanticscholar-corpus, x86-64, G​CC 16.2: 0.65× the time of sonic-rs (Rust) +semanticscholar-corpus, Apple M1 Max: 0.79× the time of sonic-rs (Rust) +semanticscholar-corpus, x86-64, G​CC 16.2: 0.65× the time of sonic-rs (Rust) sonic-rs (Rust) gsoc-2018 -gsoc-2018, Apple M1 Max: 0.61× the time of sonic-rs (Rust) -gsoc-2018, x86-64, G​CC 16.2: 0.65× the time of Boost.J​SON +gsoc-2018, Apple M1 Max: 0.60× the time of sonic-rs (Rust) +gsoc-2018, x86-64, G​CC 16.2: 0.66× the time of Boost.J​SON Boost.J​SON twitter_api_compact_response twitter_api_compact_response, Apple M1 Max: 0.91× the time of yyjson twitter_api_compact_response, x86-64, G​CC 16.2: 0.70× the time of simdjson simdjson twitterescaped -twitterescaped, Apple M1 Max: 0.94× the time of yyjson -twitterescaped, x86-64, G​CC 16.2: 0.77× the time of simdjson +twitterescaped, Apple M1 Max: 0.93× the time of yyjson +twitterescaped, x86-64, G​CC 16.2: 0.76× the time of simdjson simdjson -github_events -github_events, Apple M1 Max: 0.82× the time of simdjson -github_events, x86-64, G​CC 16.2: 0.77× the time of simdjson -simdjson -numbers -numbers, Apple M1 Max: 0.69× the time of Boost.J​SON -numbers, x86-64, G​CC 16.2: 0.77× the time of Boost.J​SON -Boost.J​SON -twitter_api_response -twitter_api_response, Apple M1 Max: 0.95× the time of yyjson -twitter_api_response, x86-64, G​CC 16.2: 0.81× the time of simdjson +numbers +numbers, Apple M1 Max: 0.67× the time of Boost.J​SON +numbers, x86-64, G​CC 16.2: 0.77× the time of Boost.J​SON +Boost.J​SON +github_events +github_events, Apple M1 Max: 0.79× the time of simdjson +github_events, x86-64, G​CC 16.2: 0.77× the time of simdjson +simdjson +update-center +update-center, Apple M1 Max: 0.88× the time of sonic-rs (Rust) +update-center, x86-64, G​CC 16.2: 0.79× the time of simdjson simdjson -google_maps_api_compact_response -google_maps_api_compact_response, Apple M1 Max: 0.84× the time of yyjson -google_maps_api_compact_response, x86-64, G​CC 16.2: 0.81× the time of yyjson +twitter_timeline +twitter_timeline, Apple M1 Max: 0.97× the time of yyjson +twitter_timeline, x86-64, G​CC 16.2: 0.80× the time of yyjson yyjson -twitter_timeline -twitter_timeline, Apple M1 Max: 0.97× the time of yyjson -twitter_timeline, x86-64, G​CC 16.2: 0.82× the time of yyjson -yyjson -update-center -update-center, Apple M1 Max: 0.89× the time of sonic-rs (Rust) -update-center, x86-64, G​CC 16.2: 0.83× the time of simdjson -simdjson -random -random, Apple M1 Max: 0.82× the time of simdjson -random, x86-64, G​CC 16.2: 0.88× the time of simdjson +twitter_api_response +twitter_api_response, Apple M1 Max: 0.93× the time of simdjson +twitter_api_response, x86-64, G​CC 16.2: 0.81× the time of simdjson +simdjson +google_maps_api_compact_response +google_maps_api_compact_response, Apple M1 Max: 0.86× the time of yyjson +google_maps_api_compact_response, x86-64, G​CC 16.2: 0.81× the time of yyjson +yyjson +repeat +repeat, Apple M1 Max: 0.65× the time of simdjson +repeat, x86-64, G​CC 16.2: 0.82× the time of simdjson simdjson -instruments -instruments, Apple M1 Max: 0.94× the time of yyjson -instruments, x86-64, G​CC 16.2: 0.90× the time of simdjson +random +random, Apple M1 Max: 0.81× the time of simdjson +random, x86-64, G​CC 16.2: 0.88× the time of simdjson simdjson apache_builds -apache_builds, Apple M1 Max: 1.11× the time of simdjson -apache_builds, x86-64, G​CC 16.2: 0.90× the time of simdjson +apache_builds, Apple M1 Max: 1.08× the time of simdjson +apache_builds, x86-64, G​CC 16.2: 0.90× the time of simdjson simdjson -repeat -repeat, Apple M1 Max: 0.65× the time of simdjson -repeat, x86-64, G​CC 16.2: 0.91× the time of simdjson +instruments +instruments, Apple M1 Max: 0.90× the time of yyjson +instruments, x86-64, G​CC 16.2: 0.92× the time of simdjson simdjson mesh.pretty -mesh.pretty, Apple M1 Max: 0.85× the time of Glaze -mesh.pretty, x86-64, G​CC 16.2: 0.92× the time of Boost.J​SON +mesh.pretty, Apple M1 Max: 0.86× the time of Glaze +mesh.pretty, x86-64, G​CC 16.2: 0.92× the time of Boost.J​SON Boost.J​SON tree-pretty -tree-pretty, Apple M1 Max: 0.95× the time of simdjson -tree-pretty, x86-64, G​CC 16.2: 0.94× the time of simdjson +tree-pretty, Apple M1 Max: 0.93× the time of simdjson +tree-pretty, x86-64, G​CC 16.2: 0.96× the time of simdjson simdjson google_maps_api_response -google_maps_api_response, Apple M1 Max: 0.91× the time of yyjson -google_maps_api_response, x86-64, G​CC 16.2: 0.99× the time of simdjson +google_maps_api_response, Apple M1 Max: 0.93× the time of simdjson +google_maps_api_response, x86-64, G​CC 16.2: 0.99× the time of simdjson simdjson as fast as the next diff --git a/docs/mkdocs/docs/images/perf_blog_usecases_mac.svg b/docs/mkdocs/docs/images/perf_blog_usecases_mac.svg index 58b8753ac..ed3f9bcae 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 (0.85 doing less, N); nlohmann/json json_document minify: 1.00 (0.85 doing less, N); nlohmann/json json_document write: 1.00 (0.70 doing less, N); yyjson validate: 1.42; yyjson sum: 1.14; yyjson select: 1.30; yyjson edit: 1.49; yyjson minify: 1.26 (1.19 doing less, N); yyjson write: 1.26; simdjson validate: 1.52; simdjson sum: 1.20; simdjson select: 1.36 (0.75 doing less, P); simdjson edit: n/a; simdjson minify: 2.06 (0.18 doing less, P); simdjson write: 3.27; sonic-rs (Rust) validate: 1.94; sonic-rs (Rust) sum: 1.53; sonic-rs (Rust) select: 1.84; sonic-rs (Rust) edit: 2.10; sonic-rs (Rust) minify: 1.93; sonic-rs (Rust) write: 2.39; sonic-cpp validate: no fully validating way (2.55 doing less, U); sonic-cpp sum: no fully validating way (1.85 doing less, U); sonic-cpp select: no fully validating way (2.33 doing less, U); sonic-cpp edit: no fully validating way (1.71 doing less, U); sonic-cpp minify: no fully validating way (2.04 doing less, U); sonic-cpp write: 1.63; simd-json (Rust) validate: 2.08; simd-json (Rust) sum: 1.62; simd-json (Rust) select: 2.39; simd-json (Rust) edit: 2.85; simd-json (Rust) minify: 3.40; simd-json (Rust) write: 3.12; Glaze validate: 2.05; Glaze sum: 3.86; Glaze select: 1.80 (0.82 doing less, P); Glaze edit: 4.42; Glaze minify: 5.19 (1.06 doing less, P); Glaze write: 2.24; Boost.J​SON validate: 2.59; Boost.J​SON sum: 1.98; Boost.J​SON select: 3.29; Boost.J​SON edit: 3.25; Boost.J​SON minify: 3.87; Boost.J​SON write: 3.75; serde_json (Rust) validate: 2.48 (2.24 doing less, U); serde_json (Rust) sum: 2.58; serde_json (Rust) select: 2.41 (2.25 doing less, U); serde_json (Rust) edit: 5.02; serde_json (Rust) minify: 5.86; serde_json (Rust) write: 2.97; nlohmann/json json validate: 2.74; nlohmann/json json sum: 1.96; nlohmann/json json select: 6.91; nlohmann/json json edit: 3.72; nlohmann/json json minify: 4.91; nlohmann/json json write: 2.08; RapidJSON validate: 6.78 (4.40 doing less, U); RapidJSON sum: 4.46 (3.01 doing less, U); RapidJSON select: 6.01 (3.95 doing less, U); RapidJSON edit: 4.88 (3.84 doing less, U); RapidJSON minify: 4.89 (4.28 doing less, U N); RapidJSON write: 5.87. +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 (0.85 doing less, N); nlohmann/json json_document minify: 1.00 (0.85 doing less, N); nlohmann/json json_document write: 1.00 (0.71 doing less, N); yyjson validate: 1.37; yyjson sum: 1.11; yyjson select: 1.25; yyjson edit: 1.45; yyjson minify: 1.23 (1.16 doing less, N); yyjson write: 1.26; simdjson validate: 1.52; simdjson sum: 1.20; simdjson select: 1.33 (0.75 doing less, P); simdjson edit: n/a; simdjson minify: 1.73 (0.18 doing less, P); simdjson write: 2.41; sonic-rs (Rust) validate: 1.93; sonic-rs (Rust) sum: 1.53; sonic-rs (Rust) select: 1.83; sonic-rs (Rust) edit: 2.08; sonic-rs (Rust) minify: 1.93; sonic-rs (Rust) write: 2.38; sonic-cpp validate: no fully validating way (2.53 doing less, U); sonic-cpp sum: no fully validating way (1.86 doing less, U); sonic-cpp select: no fully validating way (2.31 doing less, U); sonic-cpp edit: no fully validating way (1.68 doing less, U); sonic-cpp minify: no fully validating way (2.03 doing less, U); sonic-cpp write: 1.59; simd-json (Rust) validate: 2.07; simd-json (Rust) sum: 1.62; simd-json (Rust) select: 2.38; simd-json (Rust) edit: 2.84; simd-json (Rust) minify: 3.40; simd-json (Rust) write: 3.10; Glaze validate: 2.04; Glaze sum: 3.85; Glaze select: 1.79 (0.82 doing less, P); Glaze edit: 4.41; Glaze minify: 5.19 (1.03 doing less, P); Glaze write: 2.23; Boost.J​SON validate: 2.56; Boost.J​SON sum: 1.99; Boost.J​SON select: 3.27; Boost.J​SON edit: 3.21; Boost.J​SON minify: 3.87; Boost.J​SON write: 3.75; serde_json (Rust) validate: 2.46 (2.23 doing less, U); serde_json (Rust) sum: 2.59; serde_json (Rust) select: 2.39 (2.24 doing less, U); serde_json (Rust) edit: 4.99; serde_json (Rust) minify: 5.85; serde_json (Rust) write: 2.95; nlohmann/json json validate: 2.71; nlohmann/json json sum: 1.96; nlohmann/json json select: 6.87; nlohmann/json json edit: 3.73; nlohmann/json json minify: 4.89; nlohmann/json json write: 2.10; RapidJSON validate: 4.72 (3.09 doing less, U); RapidJSON sum: 4.15 (2.85 doing less, U); RapidJSON select: 5.91 (3.82 doing less, U); RapidJSON edit: 4.82 (3.77 doing less, U); RapidJSON minify: 4.86 (3.60 doing less, U N); RapidJSON write: 5.88. validate sum select @@ -8,89 +8,89 @@ minify write nlohmann/json json_document - + 1.00 - + 1.00 - + 1.00 - + 1.00 - + 0.85 N - + 1.00 - + 0.85 N - + 1.00 - + -0.70 +0.71 N yyjson - + -1.42 +1.37 - + -1.14 +1.11 - + -1.30 +1.25 - + -1.49 +1.45 - + -1.26 +1.23 - + -1.19 +1.16 N - + 1.26 simdjson - + 1.52 - + 1.20 - + -1.36 +1.33 - + 0.75 P @@ -99,268 +99,268 @@ n/a - + -2.06 +1.73 - + 0.18 P - - -3.27 + + +2.41 sonic-rs (Rust) - + -1.94 +1.93 1.53 - + -1.84 +1.83 - + -2.10 +2.08 1.93 - + -2.39 +2.38 sonic-cpp - + -2.55 +2.53 U - + -1.85 +1.86 U - + -2.33 +2.31 U - + -1.71 +1.68 U - + -2.04 +2.03 U - + -1.63 +1.59 simd-json (Rust) - + -2.08 +2.07 1.62 - + -2.39 +2.38 - + -2.85 +2.84 3.40 - + -3.12 +3.10 Glaze - + -2.05 +2.04 - + -3.86 +3.85 - + -1.80 +1.79 - + 0.82 P - + -4.42 +4.41 - + 5.19 - + -1.06 +1.03 P - + -2.24 +2.23 Boost.J​SON - + -2.59 +2.56 - + -1.98 +1.99 - + -3.29 +3.27 - + -3.25 +3.21 - + 3.87 - + 3.75 serde_json (Rust) - + -2.48 +2.46 - + -2.24 +2.23 U - + -2.58 +2.59 - + -2.41 +2.39 - + -2.25 +2.24 U - - -5.02 + + +4.99 - + -5.86 +5.85 - + -2.97 +2.95 nlohmann/json json - + -2.74 +2.71 - + 1.96 - + -6.91 +6.87 - + -3.72 +3.73 - + -4.91 +4.89 - + -2.08 +2.10 RapidJSON - - -6.78 + + +4.72 - + -4.40 +3.09 U - + -4.46 +4.15 - + -3.01 +2.85 U - + -6.01 +5.91 - + -3.95 +3.82 U - + -4.88 +4.82 - + -3.84 +3.77 U - + -4.89 +4.86 - + -4.28 +3.60 U N - + -5.87 +5.88 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 cd935e522..8bcd534b3 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 (0.82 doing less, N); nlohmann/json json_document minify: 1.00 (0.80 doing less, N); nlohmann/json json_document write: 1.00 (0.70 doing less, N); yyjson validate: 2.23; yyjson sum: 1.16; yyjson select: 1.43; yyjson edit: 1.48; yyjson minify: 1.24 (1.08 doing less, N); yyjson write: 1.15; sonic-cpp validate: no fully validating way (2.35 doing less, U); sonic-cpp sum: no fully validating way (1.21 doing less, U); sonic-cpp select: no fully validating way (1.53 doing less, U); sonic-cpp edit: no fully validating way (1.19 doing less, U); sonic-cpp minify: no fully validating way (1.33 doing less, U); sonic-cpp write: 1.31; sonic-rs (Rust) validate: 1.91; sonic-rs (Rust) sum: 1.07; sonic-rs (Rust) select: 1.38; sonic-rs (Rust) edit: 1.90; sonic-rs (Rust) minify: 1.71; sonic-rs (Rust) write: 1.98; simdjson validate: 2.08; simdjson sum: 1.14; simdjson select: 1.33 (0.56 doing less, P); simdjson edit: n/a; simdjson minify: 1.63 (0.18 doing less, P); simdjson write: 2.26; Boost.J​SON validate: 1.81; Boost.J​SON sum: 1.14; Boost.J​SON select: 2.24; Boost.J​SON edit: 2.35; Boost.J​SON minify: 2.64; Boost.J​SON write: 2.37; simd-json (Rust) validate: 3.58; simd-json (Rust) sum: 1.80; simd-json (Rust) select: 2.64; simd-json (Rust) edit: 2.88; simd-json (Rust) minify: 3.34; simd-json (Rust) write: 2.26; serde_json (Rust) validate: 2.37 (2.12 doing less, U); serde_json (Rust) sum: 2.22; serde_json (Rust) select: 1.77; serde_json (Rust) edit: 4.53; serde_json (Rust) minify: 4.86; serde_json (Rust) write: 2.19; Glaze validate: 2.20; Glaze sum: 4.04 (3.75 doing less, P); Glaze select: 1.40 (0.61 doing less, P); Glaze edit: 5.43; Glaze minify: 5.56 (0.67 doing less, P); Glaze write: 1.95; nlohmann/json json validate: 2.71; nlohmann/json json sum: 1.41; nlohmann/json json select: 7.47; nlohmann/json json edit: 3.81; nlohmann/json json minify: 4.67; nlohmann/json json write: 1.86; RapidJSON validate: 6.87 (5.20 doing less, U); RapidJSON sum: 3.25 (2.48 doing less, U); RapidJSON select: 4.52 (3.58 doing less, U); RapidJSON edit: 3.12 (2.69 doing less, U); RapidJSON minify: 3.38 (2.49 doing less, U N); RapidJSON write: 2.84. +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 (0.81 doing less, N); nlohmann/json json_document minify: 1.00 (0.83 doing less, N); nlohmann/json json_document write: 1.00 (0.69 doing less, N); yyjson validate: 1.87; yyjson sum: 1.00; yyjson select: 1.23; yyjson edit: 1.43; yyjson minify: 1.16 (1.00 doing less, N); yyjson write: 1.14; sonic-cpp validate: no fully validating way (2.32 doing less, U); sonic-cpp sum: no fully validating way (1.20 doing less, U); sonic-cpp select: no fully validating way (1.53 doing less, U); sonic-cpp edit: no fully validating way (1.24 doing less, U); sonic-cpp minify: no fully validating way (1.38 doing less, U); sonic-cpp write: 1.28; simdjson validate: 2.03; simdjson sum: 1.13; simdjson select: 1.32 (0.57 doing less, P); simdjson edit: n/a; simdjson minify: 1.58 (0.18 doing less, P); simdjson write: 2.00; sonic-rs (Rust) validate: 1.88; sonic-rs (Rust) sum: 1.07; sonic-rs (Rust) select: 1.39; sonic-rs (Rust) edit: 1.90; sonic-rs (Rust) minify: 1.73; sonic-rs (Rust) write: 1.94; Boost.J​SON validate: 1.79; Boost.J​SON sum: 1.12; Boost.J​SON select: 2.24; Boost.J​SON edit: 2.39; Boost.J​SON minify: 2.68; Boost.J​SON write: 2.31; simd-json (Rust) validate: 3.52; simd-json (Rust) sum: 1.80; simd-json (Rust) select: 2.64; simd-json (Rust) edit: 2.88; simd-json (Rust) minify: 3.38; simd-json (Rust) write: 2.21; serde_json (Rust) validate: 2.33 (2.08 doing less, U); serde_json (Rust) sum: 2.22; serde_json (Rust) select: 1.77; serde_json (Rust) edit: 4.54; serde_json (Rust) minify: 4.92; serde_json (Rust) write: 2.15; Glaze validate: 2.23; Glaze sum: 4.03 (3.78 doing less, P); Glaze select: 1.43 (0.62 doing less, P); Glaze edit: 5.53; Glaze minify: 5.77 (0.70 doing less, P); Glaze write: 1.90; nlohmann/json json validate: 2.77; nlohmann/json json sum: 1.44; nlohmann/json json select: 7.56; nlohmann/json json edit: 3.99; nlohmann/json json minify: 4.91; nlohmann/json json write: 1.86; RapidJSON validate: 4.94 (3.76 doing less, U); RapidJSON sum: 2.98 (2.28 doing less, U); RapidJSON select: 4.20 (3.27 doing less, U); RapidJSON edit: 3.06 (2.60 doing less, U); RapidJSON minify: 3.61 (2.65 doing less, U N); RapidJSON write: 2.79. validate sum select @@ -8,194 +8,194 @@ minify write nlohmann/json json_document - + 1.00 - + 1.00 - + 1.00 - + 1.00 - + -0.82 +0.81 N - + 1.00 - + -0.80 +0.83 N - + 1.00 - + -0.70 +0.69 N yyjson - + -2.23 +1.87 - - -1.16 + + +1.00 - + -1.43 +1.23 - + -1.48 +1.43 - + -1.24 +1.16 - + -1.08 +1.00 N - - -1.15 + + +1.14 sonic-cpp - + -2.35 +2.32 U - + -1.21 +1.20 U - + 1.53 U - + -1.19 +1.24 U - + -1.33 +1.38 U - + -1.31 +1.28 -sonic-rs (Rust) - +simdjson + -1.91 +2.03 - + -1.07 +1.13 - - -1.38 + + +1.32 - - -1.90 - - - -1.71 - - - -1.98 - -simdjson - - -2.08 - - - -1.14 - - - -1.33 - - - -0.56 -P + + +0.57 +P - -n/a + +n/a - - -1.63 + + +1.58 - - -0.18 -P + + +0.18 +P - + + +2.00 + +sonic-rs (Rust) + + +1.88 + + + +1.07 + + + +1.39 + + + +1.90 + + + +1.73 + + -2.26 +1.94 Boost.J​SON - + -1.81 +1.79 - + -1.14 +1.12 - + 2.24 - + -2.35 +2.39 - + -2.64 +2.68 - + -2.37 +2.31 simd-json (Rust) - + -3.58 +3.52 @@ -209,22 +209,22 @@ 2.88 - + -3.34 +3.38 - + -2.26 +2.21 serde_json (Rust) - + -2.37 +2.33 - + -2.12 +2.08 U @@ -235,132 +235,132 @@ 1.77 - + -4.53 +4.54 - + -4.86 +4.92 - + -2.19 +2.15 Glaze - + -2.20 +2.23 - + -4.04 +4.03 - + -3.75 +3.78 P - + -1.40 +1.43 - + -0.61 +0.62 P - + -5.43 +5.53 - + -5.56 +5.77 - + -0.67 +0.70 P - + -1.95 +1.90 nlohmann/json json - + -2.71 +2.77 - + -1.41 +1.44 - + -7.47 +7.56 - + -3.81 +3.99 - + -4.67 +4.91 - + 1.86 RapidJSON - - -6.87 + + +4.94 - - -5.20 + + +3.76 U - + -3.25 +2.98 - + -2.48 +2.28 U - + -4.52 +4.20 - + -3.58 +3.27 U - + -3.12 +3.06 - + -2.69 +2.60 U - + -3.38 +3.61 - - -2.49 + + +2.65 U N - + -2.84 +2.79 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 85e6aad30..c95d72a12 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.09; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00 (0.79 doing less, N); nlohmann/json json_document minify: 1.00 (0.79 doing less, N); nlohmann/json json_document write: 1.00 (0.65 doing less, N); yyjson validate: 2.26; yyjson sum: 1.33; yyjson select: 1.39; yyjson edit: 1.47; yyjson minify: 1.28 (1.03 doing less, N); yyjson write: 1.08; sonic-cpp validate: no fully validating way (2.34 doing less, U); sonic-cpp sum: no fully validating way (1.25 doing less, U); sonic-cpp select: no fully validating way (1.46 doing less, U); sonic-cpp edit: no fully validating way (1.20 doing less, U); sonic-cpp minify: no fully validating way (1.35 doing less, U); sonic-cpp write: 1.44; simdjson validate: 2.11; simdjson sum: 1.00; simdjson select: 1.31 (0.56 doing less, P); simdjson edit: n/a; simdjson minify: 1.61 (0.18 doing less, P); simdjson write: 2.27; sonic-rs (Rust) validate: 1.98; sonic-rs (Rust) sum: 1.14; sonic-rs (Rust) select: 1.38; sonic-rs (Rust) edit: 1.91; sonic-rs (Rust) minify: 1.74; sonic-rs (Rust) write: 2.02; Boost.J​SON validate: 1.99; Boost.J​SON sum: 1.28; Boost.J​SON select: 2.19; Boost.J​SON edit: 2.31; Boost.J​SON minify: 2.60; Boost.J​SON write: 2.31; simd-json (Rust) validate: 3.71; simd-json (Rust) sum: 1.92; simd-json (Rust) select: 2.63; simd-json (Rust) edit: 2.90; simd-json (Rust) minify: 3.40; simd-json (Rust) write: 2.29; serde_json (Rust) validate: 2.45 (2.19 doing less, U); serde_json (Rust) sum: 2.36; serde_json (Rust) select: 1.76; serde_json (Rust) edit: 4.56; serde_json (Rust) minify: 4.95; serde_json (Rust) write: 2.23; Glaze validate: 2.90; Glaze sum: 4.19 (4.01 doing less, P); Glaze select: 1.72 (0.61 doing less, P); Glaze edit: 4.50; Glaze minify: 4.68 (0.77 doing less, P); Glaze write: 1.94; nlohmann/json json validate: 2.97; nlohmann/json json sum: 1.69; nlohmann/json json select: 7.27; nlohmann/json json edit: 3.78; nlohmann/json json minify: 4.64; nlohmann/json json write: 1.86; RapidJSON validate: 5.59 (5.06 doing less, U); RapidJSON sum: 2.75 (2.46 doing less, U); RapidJSON select: 3.40 (3.23 doing less, U); RapidJSON edit: 2.63 (2.55 doing less, U); RapidJSON minify: 3.42 (2.54 doing less, U N); RapidJSON write: 2.88. +Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.08; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00 (0.79 doing less, N); nlohmann/json json_document minify: 1.00 (0.80 doing less, N); nlohmann/json json_document write: 1.00 (0.64 doing less, N); yyjson validate: 1.94; yyjson sum: 1.14; yyjson select: 1.18; yyjson edit: 1.37; yyjson minify: 1.17 (0.95 doing less, N); yyjson write: 1.11; sonic-cpp validate: no fully validating way (2.32 doing less, U); sonic-cpp sum: no fully validating way (1.24 doing less, U); sonic-cpp select: no fully validating way (1.45 doing less, U); sonic-cpp edit: no fully validating way (1.21 doing less, U); sonic-cpp minify: no fully validating way (1.36 doing less, U); sonic-cpp write: 1.45; simdjson validate: 2.11; simdjson sum: 1.00; simdjson select: 1.27 (0.54 doing less, P); simdjson edit: n/a; simdjson minify: 1.54 (0.17 doing less, P); simdjson write: 2.10; sonic-rs (Rust) validate: 1.93; sonic-rs (Rust) sum: 1.13; sonic-rs (Rust) select: 1.34; sonic-rs (Rust) edit: 1.90; sonic-rs (Rust) minify: 1.71; sonic-rs (Rust) write: 2.04; Boost.J​SON validate: 1.99; Boost.J​SON sum: 1.27; Boost.J​SON select: 2.20; Boost.J​SON edit: 2.30; Boost.J​SON minify: 2.65; Boost.J​SON write: 2.36; simd-json (Rust) validate: 3.62; simd-json (Rust) sum: 1.91; simd-json (Rust) select: 2.56; simd-json (Rust) edit: 2.87; simd-json (Rust) minify: 3.35; simd-json (Rust) write: 2.32; RapidJSON validate: 3.71 (3.41 doing less, U); RapidJSON sum: 2.23 (2.09 doing less, U); RapidJSON select: 2.91 (2.73 doing less, U); RapidJSON edit: 2.41 (2.34 doing less, U); RapidJSON minify: 2.68 (2.42 doing less, U N); RapidJSON write: 2.97; serde_json (Rust) validate: 2.39 (2.14 doing less, U); serde_json (Rust) sum: 2.36; serde_json (Rust) select: 1.71; serde_json (Rust) edit: 4.53; serde_json (Rust) minify: 4.89; serde_json (Rust) write: 2.25; Glaze validate: 2.86; Glaze sum: 4.16; Glaze select: 1.79 (0.58 doing less, P); Glaze edit: 4.47; Glaze minify: 4.81 (0.78 doing less, P); Glaze write: 1.96; nlohmann/json json validate: 2.96; nlohmann/json json sum: 1.70; nlohmann/json json select: 7.12; nlohmann/json json edit: 3.83; nlohmann/json json minify: 4.79; nlohmann/json json write: 1.91. validate sum select @@ -8,359 +8,354 @@ minify write nlohmann/json json_document - + 1.00 - + -1.09 +1.08 - + 1.00 - + 1.00 - + 0.79 N - + 1.00 - + -0.79 +0.80 N - + 1.00 - + -0.65 +0.64 N yyjson - + -2.26 +1.94 - - -1.33 + + +1.14 - + -1.39 +1.18 - + -1.47 +1.37 - + -1.28 +1.17 - + -1.03 +0.95 N - + -1.08 +1.11 sonic-cpp - + -2.34 +2.32 U - + -1.25 +1.24 U - + -1.46 +1.45 U - + -1.20 +1.21 U - + -1.35 +1.36 U - + -1.44 +1.45 simdjson - + 2.11 - + 1.00 - + -1.31 +1.27 - + -0.56 +0.54 P n/a - + -1.61 +1.54 - + -0.18 +0.17 P - + -2.27 +2.10 sonic-rs (Rust) - + -1.98 +1.93 - + -1.14 +1.13 - + -1.38 +1.34 - + -1.91 +1.90 - + -1.74 +1.71 - + -2.02 +2.04 Boost.J​SON - + 1.99 - + -1.28 +1.27 - + -2.19 +2.20 - + -2.31 +2.30 - + -2.60 +2.65 - + -2.31 +2.36 simd-json (Rust) - + -3.71 +3.62 - + -1.92 +1.91 - + -2.63 +2.56 - + -2.90 +2.87 - + -3.40 +3.35 - + -2.29 +2.32 -serde_json (Rust) - - -2.45 +RapidJSON + + +3.71 - - -2.19 + + +3.41 U + + +2.23 + + + +2.09 +U + + + +2.91 + + + +2.73 +U + + + +2.41 + + + +2.34 +U + + + +2.68 + + + +2.42 +U N + + + +2.97 + +serde_json (Rust) + + +2.39 + + + +2.14 +U + - -2.36 + +2.36 - - -1.76 + + +1.71 - - -4.56 - - - -4.95 - - - -2.23 - -Glaze - - -2.90 - - - -4.19 - - - -4.01 -P - - - -1.72 - - - -0.61 -P - - + -4.50 +4.53 - - -4.68 + + +4.89 - - -0.77 -P - - + -1.94 +2.25 -nlohmann/json json - +Glaze + -2.97 +2.86 - - -1.69 + + +4.16 - - -7.27 + + +1.79 - + + +0.58 +P + + -3.78 +4.47 - - -4.64 + + +4.81 - + + +0.78 +P + + -1.86 +1.96 -RapidJSON - - -5.59 +nlohmann/json json + + +2.96 - - -5.06 -U + + +1.70 - - -2.75 + + +7.12 - - -2.46 -U + + +3.83 - - -3.40 + + +4.79 - - -3.23 -U - - - -2.63 - - - -2.55 -U - - - -3.42 - - - -2.54 -U N - - - -2.88 + + +1.91 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 aee77437e..ebb039306 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.06; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00 (0.82 doing less, N); nlohmann/json json_document minify: 1.00 (0.80 doing less, N); nlohmann/json json_document write: 1.00 (0.68 doing less, N); yyjson validate: 2.13; yyjson sum: 1.47; yyjson select: 1.41; yyjson edit: 1.61; yyjson minify: 1.41 (1.06 doing less, N); yyjson write: 1.14; sonic-cpp validate: no fully validating way (2.30 doing less, U); sonic-cpp sum: no fully validating way (1.29 doing less, U); sonic-cpp select: no fully validating way (1.54 doing less, U); sonic-cpp edit: no fully validating way (1.27 doing less, U); sonic-cpp minify: no fully validating way (1.40 doing less, U); sonic-cpp write: 1.48; simdjson validate: 1.99; simdjson sum: 1.00; simdjson select: 1.33 (0.57 doing less, P); simdjson edit: n/a; simdjson minify: 1.64 (0.22 doing less, P); simdjson write: 2.20; sonic-rs (Rust) validate: 1.83; sonic-rs (Rust) sum: 1.14; sonic-rs (Rust) select: 1.36; sonic-rs (Rust) edit: 1.92; sonic-rs (Rust) minify: 1.76; sonic-rs (Rust) write: 2.03; Boost.J​SON validate: 1.91; Boost.J​SON sum: 1.33; Boost.J​SON select: 2.29; Boost.J​SON edit: 2.58; Boost.J​SON minify: 2.89; Boost.J​SON write: 2.51; simd-json (Rust) validate: 3.44; simd-json (Rust) sum: 1.93; simd-json (Rust) select: 2.59; simd-json (Rust) edit: 2.91; simd-json (Rust) minify: 3.45; simd-json (Rust) write: 2.31; serde_json (Rust) validate: 2.27 (2.03 doing less, U); serde_json (Rust) sum: 2.38; serde_json (Rust) select: 1.74; serde_json (Rust) edit: 4.59; serde_json (Rust) minify: 5.02; serde_json (Rust) write: 2.25; Glaze validate: 2.16; Glaze sum: 4.06; Glaze select: 1.41 (0.59 doing less, P); Glaze edit: 4.95; Glaze minify: 4.95 (0.71 doing less, P); Glaze write: 1.78; nlohmann/json json validate: 2.72; nlohmann/json json sum: 1.67; nlohmann/json json select: 7.23; nlohmann/json json edit: 3.87; nlohmann/json json minify: 4.68; nlohmann/json json write: 1.89; RapidJSON validate: 6.26 (4.90 doing less, U); RapidJSON sum: 3.19 (2.51 doing less, U); RapidJSON select: 4.10 (3.37 doing less, U); RapidJSON edit: 3.04 (2.70 doing less, U); RapidJSON minify: 3.67 (2.69 doing less, U N); RapidJSON write: 3.03. +Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.08; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00 (0.83 doing less, N); nlohmann/json json_document minify: 1.00 (0.83 doing less, N); nlohmann/json json_document write: 1.00 (0.71 doing less, N); yyjson validate: 1.81; yyjson sum: 1.28; yyjson select: 1.22; yyjson edit: 1.49; yyjson minify: 1.27 (0.97 doing less, N); yyjson write: 1.14; sonic-cpp validate: no fully validating way (2.24 doing less, U); sonic-cpp sum: no fully validating way (1.28 doing less, U); sonic-cpp select: no fully validating way (1.53 doing less, U); sonic-cpp edit: no fully validating way (1.26 doing less, U); sonic-cpp minify: no fully validating way (1.42 doing less, U); sonic-cpp write: 1.50; simdjson validate: 2.01; simdjson sum: 1.00; simdjson select: 1.35 (0.57 doing less, P); simdjson edit: n/a; simdjson minify: 1.58 (0.22 doing less, P); simdjson write: 2.07; sonic-rs (Rust) validate: 1.79; sonic-rs (Rust) sum: 1.11; sonic-rs (Rust) select: 1.37; sonic-rs (Rust) edit: 1.91; sonic-rs (Rust) minify: 1.73; sonic-rs (Rust) write: 2.07; Boost.J​SON validate: 1.88; Boost.J​SON sum: 1.33; Boost.J​SON select: 2.30; Boost.J​SON edit: 2.55; Boost.J​SON minify: 2.92; Boost.J​SON write: 2.56; simd-json (Rust) validate: 3.35; simd-json (Rust) sum: 1.88; simd-json (Rust) select: 2.61; simd-json (Rust) edit: 2.89; simd-json (Rust) minify: 3.39; simd-json (Rust) write: 2.35; serde_json (Rust) validate: 2.22 (1.98 doing less, U); serde_json (Rust) sum: 2.32; serde_json (Rust) select: 1.75; serde_json (Rust) edit: 4.55; serde_json (Rust) minify: 4.94; serde_json (Rust) write: 2.28; Glaze validate: 2.21; Glaze sum: 4.04; Glaze select: 1.44 (0.60 doing less, P); Glaze edit: 4.85; Glaze minify: 5.10 (0.73 doing less, P); Glaze write: 1.84; nlohmann/json json validate: 2.74; nlohmann/json json sum: 1.67; nlohmann/json json select: 7.24; nlohmann/json json edit: 3.81; nlohmann/json json minify: 4.79; nlohmann/json json write: 1.99; RapidJSON validate: 4.50 (3.40 doing less, U); RapidJSON sum: 2.98 (2.29 doing less, U); RapidJSON select: 3.84 (3.06 doing less, U); RapidJSON edit: 2.92 (2.58 doing less, U); RapidJSON minify: 3.64 (2.64 doing less, U N); RapidJSON write: 3.11. validate sum select @@ -8,119 +8,119 @@ minify write nlohmann/json json_document - + 1.00 - + -1.06 +1.08 - + 1.00 - + 1.00 - + -0.82 +0.83 N - + 1.00 - + -0.80 +0.83 N - + 1.00 - + -0.68 +0.71 N yyjson - + -2.13 +1.81 - + -1.47 +1.28 - + -1.41 +1.22 - - -1.61 + + +1.49 - + -1.41 +1.27 - + -1.06 +0.97 N - + 1.14 sonic-cpp - + -2.30 +2.24 U - + -1.29 +1.28 U - + -1.54 +1.53 U - + -1.27 +1.26 U - + -1.40 +1.42 U - - -1.48 + + +1.50 simdjson - + -1.99 +2.01 - + 1.00 - + -1.33 +1.35 - + 0.57 P @@ -129,233 +129,233 @@ n/a - + -1.64 +1.58 - + 0.22 P - + -2.20 +2.07 sonic-rs (Rust) - + -1.83 +1.79 - + -1.14 +1.11 - + -1.36 +1.37 - + -1.92 +1.91 - + -1.76 +1.73 - + -2.03 +2.07 Boost.J​SON - + -1.91 +1.88 - + 1.33 - + -2.29 +2.30 - + -2.58 +2.55 - + -2.89 +2.92 - + -2.51 +2.56 simd-json (Rust) - + -3.44 +3.35 - + -1.93 +1.88 - + -2.59 +2.61 - + -2.91 +2.89 - + -3.45 +3.39 - + -2.31 +2.35 serde_json (Rust) - + -2.27 +2.22 - + -2.03 +1.98 U - + -2.38 +2.32 - + -1.74 +1.75 - + -4.59 +4.55 - - -5.02 + + +4.94 - + -2.25 +2.28 Glaze - + -2.16 +2.21 - + -4.06 +4.04 - + -1.41 +1.44 - + -0.59 +0.60 P - + -4.95 +4.85 - - -4.95 + + +5.10 - + -0.71 +0.73 P - + -1.78 +1.84 nlohmann/json json - + -2.72 +2.74 - + 1.67 - + -7.23 +7.24 - + -3.87 +3.81 - + -4.68 +4.79 - + -1.89 +1.99 RapidJSON - - -6.26 + + +4.50 - + -4.90 +3.40 U - + -3.19 +2.98 - - -2.51 + + +2.29 U - + -4.10 +3.84 - + -3.37 +3.06 U - + -3.04 +2.92 - + -2.70 +2.58 U - + -3.67 +3.64 - + -2.69 +2.64 U N - + -3.03 +3.11 time relative to the fastest fully validating library, less is better diff --git a/docs/mkdocs/scripts/figures/data/perf_heldout_validate.json b/docs/mkdocs/scripts/figures/data/perf_heldout_validate.json index 98a9fd210..ef9e601ca 100644 --- a/docs/mkdocs/scripts/figures/data/perf_heldout_validate.json +++ b/docs/mkdocs/scripts/figures/data/perf_heldout_validate.json @@ -2,23 +2,23 @@ "mac": { "apache_builds": { "Boost.JSON": { - "us": 110.0, - "variant": "SAX (numbers: none)" + "us": 110.1, + "variant": "SAX" }, "Glaze": { - "us": 86.3, + "us": 85.4, "variant": "validate_json" }, "RapidJSON": { - "us": 272.1, - "variant": "insitu (copy)" + "us": 261.9, + "variant": "SAX (string stream)" }, "nlohmann json": { - "us": 111.4, + "us": 108.5, "variant": "accept" }, "nlohmann json_document": { - "us": 38.8, + "us": 38.7, "variant": "accept" }, "serde_json": { @@ -30,7 +30,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 34.9, + "us": 36.0, "variant": "DOM" }, "sonic-rs": { @@ -38,29 +38,29 @@ "variant": "Value" }, "yyjson": { - "us": 54.6, + "us": 54.5, "variant": "read" } }, "github_events": { "Boost.JSON": { - "us": 57.1, + "us": 57.3, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 35.6, + "us": 35.3, "variant": "validate_json" }, "RapidJSON": { - "us": 145.6, - "variant": "insitu (copy)" + "us": 141.8, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 43.1, + "us": 41.7, "variant": "accept" }, "nlohmann json_document": { - "us": 14.4, + "us": 14.2, "variant": "accept" }, "serde_json": { @@ -72,7 +72,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 17.6, + "us": 17.9, "variant": "DOM" }, "sonic-rs": { @@ -80,8 +80,8 @@ "variant": "Value" }, "yyjson": { - "us": 19.2, - "variant": "insitu (copy)" + "us": 19.0, + "variant": "read" } }, "google_maps_api_compact_response": { @@ -90,19 +90,19 @@ "variant": "SAX" }, "Glaze": { - "us": 13.0, + "us": 12.8, "variant": "validate_json" }, "RapidJSON": { - "us": 28.5, - "variant": "SAX" + "us": 26.5, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 19.2, + "us": 18.1, "variant": "accept" }, "nlohmann json_document": { - "us": 5.4, + "us": 5.5, "variant": "accept" }, "serde_json": { @@ -114,7 +114,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 7.8, + "us": 7.6, "variant": "DOM" }, "sonic-rs": { @@ -123,7 +123,7 @@ }, "yyjson": { "us": 6.4, - "variant": "insitu (copy)" + "variant": "read" } }, "google_maps_api_response": { @@ -136,15 +136,15 @@ "variant": "validate_json" }, "RapidJSON": { - "us": 39.5, - "variant": "insitu (copy)" + "us": 36.6, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 25.2, + "us": 24.5, "variant": "accept" }, "nlohmann json_document": { - "us": 8.6, + "us": 8.7, "variant": "accept" }, "serde_json": { @@ -156,7 +156,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 9.6, + "us": 9.4, "variant": "DOM" }, "sonic-rs": { @@ -164,29 +164,29 @@ "variant": "Value" }, "yyjson": { - "us": 9.4, + "us": 9.5, "variant": "read" } }, "gsoc-2018": { "Boost.JSON": { - "us": 2815.5, + "us": 2792.0, "variant": "SAX" }, "Glaze": { - "us": 1058.4, + "us": 1027.4, "variant": "validate_json" }, "RapidJSON": { - "us": 7330.7, - "variant": "insitu (copy)" + "us": 7114.9, + "variant": "SAX (string stream)" }, "nlohmann json": { - "us": 952.0, + "us": 940.9, "variant": "accept" }, "nlohmann json_document": { - "us": 465.9, + "us": 457.7, "variant": "accept" }, "serde_json": { @@ -198,7 +198,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 850.8, + "us": 842.1, "variant": "DOM" }, "sonic-rs": { @@ -206,29 +206,29 @@ "variant": "Value" }, "yyjson": { - "us": 947.8, - "variant": "read (raw numbers)" + "us": 940.0, + "variant": "insitu (copy)" } }, "instruments": { "Boost.JSON": { - "us": 158.8, - "variant": "SAX" + "us": 155.8, + "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 136.0, + "us": 136.8, "variant": "validate_json" }, "RapidJSON": { - "us": 380.1, - "variant": "insitu (copy)" + "us": 366.2, + "variant": "SAX (string stream)" }, "nlohmann json": { - "us": 213.5, + "us": 206.4, "variant": "accept" }, "nlohmann json_document": { - "us": 72.9, + "us": 71.5, "variant": "accept" }, "serde_json": { @@ -240,7 +240,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 80.8, + "us": 83.1, "variant": "DOM" }, "sonic-rs": { @@ -248,29 +248,29 @@ "variant": "Value" }, "yyjson": { - "us": 77.9, + "us": 79.1, "variant": "insitu (copy)" } }, "marine_ik": { "Boost.JSON": { - "us": 2542.9, + "us": 2530.0, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 2302.4, + "us": 2292.5, "variant": "validate_json" }, "RapidJSON": { - "us": 5053.7, - "variant": "SAX" + "us": 3625.6, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 4220.2, + "us": 4140.6, "variant": "accept" }, "nlohmann json_document": { - "us": 1365.5, + "us": 1358.3, "variant": "accept" }, "serde_json": { @@ -282,7 +282,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 2441.4, + "us": 2428.0, "variant": "DOM" }, "sonic-rs": { @@ -290,29 +290,29 @@ "variant": "Value" }, "yyjson": { - "us": 2363.6, - "variant": "read" + "us": 2402.7, + "variant": "insitu (copy)" } }, "mesh": { "Boost.JSON": { - "us": 579.5, + "us": 591.5, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 515.1, + "us": 510.4, "variant": "validate_json" }, "RapidJSON": { - "us": 1570.7, - "variant": "insitu (copy)" + "us": 775.0, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 1067.4, + "us": 1038.1, "variant": "accept" }, "nlohmann json_document": { - "us": 344.7, + "us": 345.7, "variant": "accept" }, "serde_json": { @@ -324,7 +324,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 632.6, + "us": 621.1, "variant": "DOM" }, "sonic-rs": { @@ -332,29 +332,29 @@ "variant": "Value" }, "yyjson": { - "us": 557.5, - "variant": "insitu (copy)" + "us": 557.3, + "variant": "read" } }, "mesh.pretty": { "Boost.JSON": { - "us": 937.3, + "us": 947.1, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 829.2, + "us": 823.9, "variant": "validate_json" }, "RapidJSON": { - "us": 2508.6, - "variant": "insitu (copy)" + "us": 1387.1, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 1332.6, + "us": 1337.5, "variant": "accept" }, "nlohmann json_document": { - "us": 705.2, + "us": 707.2, "variant": "accept" }, "serde_json": { @@ -366,7 +366,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 847.1, + "us": 848.6, "variant": "DOM" }, "sonic-rs": { @@ -374,29 +374,29 @@ "variant": "Value" }, "yyjson": { - "us": 938.5, + "us": 952.0, "variant": "read" } }, "numbers": { "Boost.JSON": { - "us": 88.1, + "us": 88.2, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 88.1, + "us": 88.9, "variant": "validate_json" }, "RapidJSON": { - "us": 320.9, - "variant": "insitu (copy)" + "us": 132.6, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 149.7, + "us": 148.6, "variant": "accept" }, "nlohmann json_document": { - "us": 60.6, + "us": 59.3, "variant": "accept" }, "serde_json": { @@ -408,7 +408,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 116.0, + "us": 116.3, "variant": "DOM" }, "sonic-rs": { @@ -417,28 +417,28 @@ }, "yyjson": { "us": 103.1, - "variant": "insitu (copy)" + "variant": "read" } }, "random": { "Boost.JSON": { - "us": 591.7, - "variant": "SAX (numbers: none)" + "us": 591.4, + "variant": "SAX" }, "Glaze": { - "us": 438.6, + "us": 439.8, "variant": "validate_json" }, "RapidJSON": { - "us": 1214.8, - "variant": "insitu (copy)" + "us": 1199.8, + "variant": "SAX (string stream)" }, "nlohmann json": { - "us": 722.8, + "us": 703.4, "variant": "accept" }, "nlohmann json_document": { - "us": 207.1, + "us": 206.9, "variant": "accept" }, "serde_json": { @@ -450,7 +450,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 252.8, + "us": 256.2, "variant": "DOM" }, "sonic-rs": { @@ -458,8 +458,8 @@ "variant": "Value" }, "yyjson": { - "us": 310.9, - "variant": "insitu (copy)" + "us": 316.3, + "variant": "read" } }, "repeat": { @@ -472,11 +472,11 @@ "variant": "validate_json" }, "RapidJSON": { - "us": 14.9, - "variant": "insitu (copy)" + "us": 14.3, + "variant": "SAX (string stream)" }, "nlohmann json": { - "us": 8.9, + "us": 8.8, "variant": "accept" }, "nlohmann json_document": { @@ -500,29 +500,29 @@ "variant": "Value" }, "yyjson": { - "us": 4.4, - "variant": "insitu (copy)" + "us": 4.3, + "variant": "read" } }, "semanticscholar-corpus": { "Boost.JSON": { - "us": 8172.3, + "us": 8111.6, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 4606.6, + "us": 4538.8, "variant": "validate_json" }, "RapidJSON": { - "us": 20810.8, - "variant": "insitu (copy)" + "us": 20587.5, + "variant": "SAX" }, "nlohmann json": { - "us": 5293.8, + "us": 5144.6, "variant": "accept" }, "nlohmann json_document": { - "us": 2179.2, + "us": 2180.8, "variant": "accept" }, "serde_json": { @@ -534,7 +534,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 3379.0, + "us": 3356.2, "variant": "DOM" }, "sonic-rs": { @@ -542,13 +542,13 @@ "variant": "Value" }, "yyjson": { - "us": 3544.1, + "us": 3572.0, "variant": "insitu (copy)" } }, "tree-pretty": { "Boost.JSON": { - "us": 24.7, + "us": 24.1, "variant": "SAX (numbers: none)" }, "Glaze": { @@ -556,15 +556,15 @@ "variant": "validate_json" }, "RapidJSON": { - "us": 56.7, - "variant": "insitu (copy)" + "us": 54.0, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 32.6, + "us": 31.7, "variant": "accept" }, "nlohmann json_document": { - "us": 10.6, + "us": 10.5, "variant": "accept" }, "serde_json": { @@ -576,7 +576,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 11.2, + "us": 11.3, "variant": "DOM" }, "sonic-rs": { @@ -584,25 +584,25 @@ "variant": "Value" }, "yyjson": { - "us": 11.2, - "variant": "insitu (copy)" + "us": 11.3, + "variant": "read" } }, "twitter_api_compact_response": { "Boost.JSON": { - "us": 9.2, + "us": 9.0, "variant": "SAX" }, "Glaze": { - "us": 5.6, + "us": 5.5, "variant": "validate_json" }, "RapidJSON": { - "us": 25.1, - "variant": "SAX" + "us": 24.3, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 8.7, + "us": 8.5, "variant": "accept" }, "nlohmann json_document": { @@ -618,7 +618,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 3.6, + "us": 3.5, "variant": "DOM" }, "sonic-rs": { @@ -627,12 +627,12 @@ }, "yyjson": { "us": 3.3, - "variant": "insitu (copy)" + "variant": "read" } }, "twitter_api_response": { "Boost.JSON": { - "us": 11.9, + "us": 11.7, "variant": "SAX" }, "Glaze": { @@ -640,11 +640,11 @@ "variant": "validate_json" }, "RapidJSON": { - "us": 31.6, - "variant": "insitu (copy)" + "us": 29.7, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 11.6, + "us": 11.3, "variant": "accept" }, "nlohmann json_document": { @@ -668,29 +668,29 @@ "variant": "Value" }, "yyjson": { - "us": 4.2, + "us": 4.3, "variant": "read" } }, "twitter_timeline": { "Boost.JSON": { - "us": 40.2, - "variant": "SAX" + "us": 39.6, + "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 30.0, + "us": 29.4, "variant": "validate_json" }, "RapidJSON": { - "us": 104.7, - "variant": "SAX" + "us": 100.1, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 45.5, + "us": 44.0, "variant": "accept" }, "nlohmann json_document": { - "us": 15.1, + "us": 15.0, "variant": "accept" }, "serde_json": { @@ -710,29 +710,29 @@ "variant": "Value" }, "yyjson": { - "us": 15.6, - "variant": "read" + "us": 15.5, + "variant": "insitu (copy)" } }, "twitterescaped": { "Boost.JSON": { - "us": 556.0, - "variant": "SAX (numbers: none)" + "us": 552.2, + "variant": "SAX" }, "Glaze": { - "us": 467.6, + "us": 469.8, "variant": "validate_json" }, "RapidJSON": { - "us": 1194.8, - "variant": "insitu (copy)" + "us": 1182.0, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 712.1, + "us": 679.7, "variant": "accept" }, "nlohmann json_document": { - "us": 204.8, + "us": 201.8, "variant": "accept" }, "serde_json": { @@ -744,7 +744,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 254.9, + "us": 265.6, "variant": "DOM" }, "sonic-rs": { @@ -752,29 +752,29 @@ "variant": "Value" }, "yyjson": { - "us": 216.9, - "variant": "insitu (copy)" + "us": 217.6, + "variant": "read" } }, "update-center": { "Boost.JSON": { - "us": 542.2, - "variant": "SAX" + "us": 539.8, + "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 426.9, + "us": 414.1, "variant": "validate_json" }, "RapidJSON": { - "us": 1344.5, + "us": 1321.5, "variant": "SAX" }, "nlohmann json": { - "us": 461.1, + "us": 441.2, "variant": "accept" }, "nlohmann json_document": { - "us": 197.4, + "us": 194.5, "variant": "accept" }, "serde_json": { @@ -786,7 +786,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 228.4, + "us": 239.9, "variant": "DOM" }, "sonic-rs": { @@ -794,8 +794,8 @@ "variant": "Value" }, "yyjson": { - "us": 248.7, - "variant": "insitu (copy)" + "us": 239.7, + "variant": "read (raw numbers)" } } }, @@ -806,19 +806,19 @@ "variant": "SAX" }, "Glaze": { - "us": 136.1, + "us": 133.3, "variant": "validate_json" }, "RapidJSON": { - "us": 352.3, + "us": 350.5, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 120.6, + "us": 120.8, "variant": "accept" }, "nlohmann json_document": { - "us": 55.6, + "us": 54.6, "variant": "accept" }, "serde_json": { @@ -830,7 +830,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 62.7, + "us": 62.8, "variant": "DOM" }, "sonic-rs": { @@ -839,28 +839,28 @@ }, "yyjson": { "us": 85.4, - "variant": "insitu (copy)" + "variant": "read" } }, "github_events": { "Boost.JSON": { - "us": 38.8, - "variant": "SAX" + "us": 39.2, + "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 62.5, + "us": 59.8, "variant": "validate_json" }, "RapidJSON": { - "us": 185.8, + "us": 182.1, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 56.0, + "us": 56.9, "variant": "accept" }, "nlohmann json_document": { - "us": 22.7, + "us": 22.6, "variant": "accept" }, "serde_json": { @@ -872,7 +872,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 27.8, + "us": 28.3, "variant": "DOM" }, "sonic-rs": { @@ -880,29 +880,29 @@ "variant": "Value" }, "yyjson": { - "us": 34.3, + "us": 33.5, "variant": "read" } }, "google_maps_api_compact_response": { "Boost.JSON": { - "us": 14.6, + "us": 14.7, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 20.1, + "us": 19.6, "variant": "validate_json" }, "RapidJSON": { - "us": 47.0, - "variant": "SAX" + "us": 43.1, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 26.3, + "us": 25.5, "variant": "accept" }, "nlohmann json_document": { - "us": 9.6, + "us": 9.7, "variant": "accept" }, "serde_json": { @@ -914,7 +914,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 12.7, + "us": 12.9, "variant": "DOM" }, "sonic-rs": { @@ -923,28 +923,28 @@ }, "yyjson": { "us": 10.7, - "variant": "insitu (copy)" + "variant": "read" } }, "google_maps_api_response": { "Boost.JSON": { - "us": 26.7, + "us": 26.4, "variant": "SAX" }, "Glaze": { - "us": 27.2, + "us": 27.3, "variant": "validate_json" }, "RapidJSON": { - "us": 55.4, - "variant": "insitu (copy)" + "us": 53.9, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 32.6, + "us": 33.5, "variant": "accept" }, "nlohmann json_document": { - "us": 13.9, + "us": 14.1, "variant": "accept" }, "serde_json": { @@ -956,7 +956,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 14.4, + "us": 14.5, "variant": "DOM" }, "sonic-rs": { @@ -970,23 +970,23 @@ }, "gsoc-2018": { "Boost.JSON": { - "us": 1008.7, + "us": 1007.5, "variant": "SAX" }, "Glaze": { - "us": 1991.3, + "us": 1854.7, "variant": "validate_json" }, "RapidJSON": { - "us": 8521.5, + "us": 8248.5, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 1259.2, + "us": 1280.8, "variant": "accept" }, "nlohmann json_document": { - "us": 711.3, + "us": 703.5, "variant": "accept" }, "serde_json": { @@ -998,7 +998,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 1183.3, + "us": 1186.2, "variant": "DOM" }, "sonic-rs": { @@ -1006,29 +1006,29 @@ "variant": "IgnoredAny" }, "yyjson": { - "us": 1850.1, - "variant": "insitu (copy)" + "us": 1837.1, + "variant": "read" } }, "instruments": { "Boost.JSON": { - "us": 222.9, + "us": 218.8, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 201.6, + "us": 204.7, "variant": "validate_json" }, "RapidJSON": { - "us": 555.7, - "variant": "insitu (copy)" + "us": 531.6, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 288.7, + "us": 277.8, "variant": "accept" }, "nlohmann json_document": { - "us": 109.1, + "us": 116.3, "variant": "accept" }, "serde_json": { @@ -1040,7 +1040,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 127.2, + "us": 126.8, "variant": "DOM" }, "sonic-rs": { @@ -1048,29 +1048,29 @@ "variant": "IgnoredAny" }, "yyjson": { - "us": 154.9, - "variant": "insitu (copy)" + "us": 152.2, + "variant": "read" } }, "marine_ik": { "Boost.JSON": { - "us": 2910.2, + "us": 2905.6, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 3158.7, + "us": 3265.5, "variant": "validate_json" }, "RapidJSON": { - "us": 7337.4, - "variant": "SAX" + "us": 5252.5, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 6453.0, + "us": 6658.6, "variant": "accept" }, "nlohmann json_document": { - "us": 1999.2, + "us": 2137.5, "variant": "accept" }, "serde_json": { @@ -1082,7 +1082,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 4433.8, + "us": 4447.6, "variant": "DOM" }, "sonic-rs": { @@ -1090,29 +1090,29 @@ "variant": "IgnoredAny" }, "yyjson": { - "us": 4047.6, - "variant": "read (raw numbers)" + "us": 4052.9, + "variant": "read" } }, "mesh": { "Boost.JSON": { - "us": 991.6, + "us": 989.9, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 729.0, + "us": 711.9, "variant": "validate_json" }, "RapidJSON": { - "us": 2560.7, - "variant": "insitu (copy)" + "us": 1357.4, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 1719.8, + "us": 1804.1, "variant": "accept" }, "nlohmann json_document": { - "us": 457.8, + "us": 493.5, "variant": "accept" }, "serde_json": { @@ -1124,7 +1124,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 1207.8, + "us": 1208.9, "variant": "DOM" }, "sonic-rs": { @@ -1132,7 +1132,7 @@ "variant": "IgnoredAny" }, "yyjson": { - "us": 1037.0, + "us": 1033.2, "variant": "read" } }, @@ -1142,19 +1142,19 @@ "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 1141.5, + "us": 1155.7, "variant": "validate_json" }, "RapidJSON": { - "us": 3767.3, - "variant": "SAX" + "us": 2100.1, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 1977.6, + "us": 2025.6, "variant": "accept" }, "nlohmann json_document": { - "us": 1070.6, + "us": 1101.0, "variant": "accept" }, "serde_json": { @@ -1166,7 +1166,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 1443.7, + "us": 1453.5, "variant": "DOM" }, "sonic-rs": { @@ -1174,25 +1174,25 @@ "variant": "IgnoredAny" }, "yyjson": { - "us": 1810.8, + "us": 1819.0, "variant": "insitu (copy)" } }, "numbers": { "Boost.JSON": { - "us": 74.9, + "us": 79.6, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 126.3, + "us": 125.3, "variant": "validate_json" }, "RapidJSON": { - "us": 496.4, - "variant": "SAX" + "us": 273.3, + "variant": "SAX (string stream, default precision)" }, "nlohmann json": { - "us": 242.5, + "us": 247.3, "variant": "accept" }, "nlohmann json_document": { @@ -1208,7 +1208,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 197.0, + "us": 197.2, "variant": "DOM" }, "sonic-rs": { @@ -1216,29 +1216,29 @@ "variant": "IgnoredAny" }, "yyjson": { - "us": 178.9, + "us": 178.6, "variant": "read" } }, "random": { "Boost.JSON": { - "us": 891.3, + "us": 877.6, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 666.6, + "us": 658.7, "variant": "validate_json" }, "RapidJSON": { - "us": 1771.0, + "us": 1755.9, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 914.0, + "us": 929.7, "variant": "accept" }, "nlohmann json_document": { - "us": 352.5, + "us": 351.7, "variant": "accept" }, "serde_json": { @@ -1250,7 +1250,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 406.0, + "us": 406.7, "variant": "DOM" }, "sonic-rs": { @@ -1258,29 +1258,29 @@ "variant": "Value" }, "yyjson": { - "us": 527.2, - "variant": "read" + "us": 525.8, + "variant": "insitu (copy)" } }, "repeat": { "Boost.JSON": { - "us": 13.4, + "us": 14.0, "variant": "SAX" }, "Glaze": { - "us": 9.7, + "us": 10.8, "variant": "validate_json" }, "RapidJSON": { - "us": 20.1, - "variant": "SAX" + "us": 21.2, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 10.2, + "us": 11.2, "variant": "accept" }, "nlohmann json_document": { - "us": 5.1, + "us": 5.4, "variant": "accept" }, "serde_json": { @@ -1292,7 +1292,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 5.8, + "us": 5.9, "variant": "DOM" }, "sonic-rs": { @@ -1300,29 +1300,29 @@ "variant": "Value" }, "yyjson": { - "us": 7.9, - "variant": "insitu (copy)" + "us": 8.0, + "variant": "read" } }, "semanticscholar-corpus": { "Boost.JSON": { - "us": 5418.2, - "variant": "SAX" + "us": 5393.9, + "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 8110.4, + "us": 7948.3, "variant": "validate_json" }, "RapidJSON": { - "us": 27039.1, + "us": 27685.7, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 7386.3, + "us": 7751.9, "variant": "accept" }, "nlohmann json_document": { - "us": 3338.4, + "us": 3290.4, "variant": "accept" }, "serde_json": { @@ -1334,7 +1334,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 7648.3, + "us": 7595.2, "variant": "DOM" }, "sonic-rs": { @@ -1342,29 +1342,29 @@ "variant": "IgnoredAny" }, "yyjson": { - "us": 6263.9, - "variant": "insitu (copy)" + "us": 6209.1, + "variant": "read" } }, "tree-pretty": { "Boost.JSON": { - "us": 34.6, + "us": 34.1, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 36.5, + "us": 37.8, "variant": "validate_json" }, "RapidJSON": { - "us": 75.8, - "variant": "SAX" + "us": 72.2, + "variant": "SAX (default precision)" }, "nlohmann json": { - "us": 46.1, + "us": 46.5, "variant": "accept" }, "nlohmann json_document": { - "us": 18.5, + "us": 18.3, "variant": "accept" }, "serde_json": { @@ -1384,29 +1384,29 @@ "variant": "Value" }, "yyjson": { - "us": 20.3, - "variant": "insitu (copy)" + "us": 19.5, + "variant": "read" } }, "twitter_api_compact_response": { "Boost.JSON": { - "us": 6.6, + "us": 6.7, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 10.1, + "us": 10.0, "variant": "validate_json" }, "RapidJSON": { - "us": 32.6, + "us": 33.6, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 12.1, + "us": 12.5, "variant": "accept" }, "nlohmann json_document": { - "us": 4.1, + "us": 4.2, "variant": "accept" }, "serde_json": { @@ -1427,7 +1427,7 @@ }, "yyjson": { "us": 5.8, - "variant": "insitu (copy)" + "variant": "read" } }, "twitter_api_response": { @@ -1436,19 +1436,1619 @@ "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 13.7, + "us": 13.9, "variant": "validate_json" }, "RapidJSON": { - "us": 40.8, + "us": 41.0, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 15.8, + "us": 16.0, "variant": "accept" }, "nlohmann json_document": { - "us": 5.6, + "us": 5.7, + "variant": "accept" + }, + "serde_json": { + "us": 12.2, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 13.3, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 7.0, + "variant": "DOM" + }, + "sonic-rs": { + "us": 11.2, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 7.8, + "variant": "read" + } + }, + "twitter_timeline": { + "Boost.JSON": { + "us": 40.7, + "variant": "SAX" + }, + "Glaze": { + "us": 49.2, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 142.3, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 70.3, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 23.5, + "variant": "accept" + }, + "serde_json": { + "us": 45.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 54.3, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 30.3, + "variant": "DOM" + }, + "sonic-rs": { + "us": 43.0, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 27.8, + "variant": "insitu (copy)" + } + }, + "twitterescaped": { + "Boost.JSON": { + "us": 608.2, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 713.0, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1767.7, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 962.0, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 312.4, + "variant": "accept" + }, + "serde_json": { + "us": 702.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 856.4, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 407.8, + "variant": "DOM" + }, + "sonic-rs": { + "us": 628.9, + "variant": "Value" + }, + "yyjson": { + "us": 443.2, + "variant": "insitu (copy)" + } + }, + "update-center": { + "Boost.JSON": { + "us": 342.2, + "variant": "SAX" + }, + "Glaze": { + "us": 671.7, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1826.3, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 610.8, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 263.1, + "variant": "accept" + }, + "serde_json": { + "us": 490.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 650.9, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 336.1, + "variant": "DOM" + }, + "sonic-rs": { + "us": 383.6, + "variant": "Value" + }, + "yyjson": { + "us": 447.4, + "variant": "read" + } + } + }, + "x86-gcc": { + "apache_builds": { + "Boost.JSON": { + "us": 107.9, + "variant": "SAX" + }, + "Glaze": { + "us": 152.0, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 218.8, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 140.0, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 54.4, + "variant": "accept" + }, + "serde_json": { + "us": 105.1, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 135.6, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 60.2, + "variant": "DOM" + }, + "sonic-rs": { + "us": 88.3, + "variant": "Value" + }, + "yyjson": { + "us": 87.6, + "variant": "read (raw numbers)" + } + }, + "github_events": { + "Boost.JSON": { + "us": 40.5, + "variant": "SAX" + }, + "Glaze": { + "us": 72.3, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 112.5, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 56.7, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 21.1, + "variant": "accept" + }, + "serde_json": { + "us": 49.2, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 55.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 27.3, + "variant": "DOM" + }, + "sonic-rs": { + "us": 40.9, + "variant": "Value" + }, + "yyjson": { + "us": 35.5, + "variant": "read" + } + }, + "google_maps_api_compact_response": { + "Boost.JSON": { + "us": 15.3, + "variant": "SAX" + }, + "Glaze": { + "us": 21.5, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 24.7, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 26.7, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 8.9, + "variant": "accept" + }, + "serde_json": { + "us": 16.8, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 23.9, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 12.4, + "variant": "DOM" + }, + "sonic-rs": { + "us": 13.8, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 11.0, + "variant": "read" + } + }, + "google_maps_api_response": { + "Boost.JSON": { + "us": 26.9, + "variant": "SAX" + }, + "Glaze": { + "us": 34.3, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 34.9, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 36.0, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 13.7, + "variant": "accept" + }, + "serde_json": { + "us": 27.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 30.6, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 13.8, + "variant": "DOM" + }, + "sonic-rs": { + "us": 23.2, + "variant": "Value" + }, + "yyjson": { + "us": 17.5, + "variant": "read" + } + }, + "gsoc-2018": { + "Boost.JSON": { + "us": 1063.2, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 2067.9, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 4555.7, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 1317.1, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 698.7, + "variant": "accept" + }, + "serde_json": { + "us": 1498.2, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 2236.9, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 1171.7, + "variant": "DOM" + }, + "sonic-rs": { + "us": 1134.0, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 1876.5, + "variant": "read (raw numbers)" + } + }, + "instruments": { + "Boost.JSON": { + "us": 218.3, + "variant": "SAX" + }, + "Glaze": { + "us": 265.0, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 357.3, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 301.6, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 107.2, + "variant": "accept" + }, + "serde_json": { + "us": 212.4, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 290.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 117.0, + "variant": "DOM" + }, + "sonic-rs": { + "us": 229.3, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 158.0, + "variant": "read" + } + }, + "marine_ik": { + "Boost.JSON": { + "us": 2936.2, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 4986.3, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 5353.3, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 7267.5, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 1883.9, + "variant": "accept" + }, + "serde_json": { + "us": 4072.2, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 6669.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 4193.5, + "variant": "DOM" + }, + "sonic-rs": { + "us": 4661.1, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 4094.9, + "variant": "read (raw numbers)" + } + }, + "mesh": { + "Boost.JSON": { + "us": 954.5, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 1065.1, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1381.1, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 1867.2, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 399.6, + "variant": "accept" + }, + "serde_json": { + "us": 910.5, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 1691.7, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 1103.6, + "variant": "DOM" + }, + "sonic-rs": { + "us": 1221.0, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 1059.7, + "variant": "read (raw numbers)" + } + }, + "mesh.pretty": { + "Boost.JSON": { + "us": 1046.2, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 1822.9, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1889.2, + "variant": "SAX (default precision)" + }, + "nlohmann json": { + "us": 2329.2, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 967.1, + "variant": "accept" + }, + "serde_json": { + "us": 1483.7, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 2119.0, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 1340.0, + "variant": "DOM" + }, + "sonic-rs": { + "us": 1558.0, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 1651.7, + "variant": "read (raw numbers)" + } + }, + "numbers": { + "Boost.JSON": { + "us": 81.6, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 146.8, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 238.2, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 275.1, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 63.0, + "variant": "accept" + }, + "serde_json": { + "us": 163.8, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 261.5, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 195.1, + "variant": "DOM" + }, + "sonic-rs": { + "us": 161.8, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 171.1, + "variant": "read (raw numbers)" + } + }, + "random": { + "Boost.JSON": { + "us": 896.6, + "variant": "SAX" + }, + "Glaze": { + "us": 743.7, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1079.9, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 1020.4, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 350.4, + "variant": "accept" + }, + "serde_json": { + "us": 772.3, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 840.2, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 398.9, + "variant": "DOM" + }, + "sonic-rs": { + "us": 502.9, + "variant": "Value" + }, + "yyjson": { + "us": 572.4, + "variant": "insitu (copy)" + } + }, + "repeat": { + "Boost.JSON": { + "us": 13.4, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 15.9, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 14.3, + "variant": "SAX (string stream)" + }, + "nlohmann json": { + "us": 13.5, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 5.1, + "variant": "accept" + }, + "serde_json": { + "us": 12.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 11.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 6.2, + "variant": "DOM" + }, + "sonic-rs": { + "us": 7.6, + "variant": "Value" + }, + "yyjson": { + "us": 8.3, + "variant": "read" + } + }, + "semanticscholar-corpus": { + "Boost.JSON": { + "us": 5631.3, + "variant": "SAX" + }, + "Glaze": { + "us": 8153.6, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 14768.7, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 6955.2, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 3095.4, + "variant": "accept" + }, + "serde_json": { + "us": 6204.0, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 9501.2, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 7535.9, + "variant": "DOM" + }, + "sonic-rs": { + "us": 4777.5, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 6311.8, + "variant": "insitu (copy)" + } + }, + "tree-pretty": { + "Boost.JSON": { + "us": 35.4, + "variant": "SAX" + }, + "Glaze": { + "us": 48.9, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 62.8, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 48.0, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 16.9, + "variant": "accept" + }, + "serde_json": { + "us": 37.3, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 36.8, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 17.6, + "variant": "DOM" + }, + "sonic-rs": { + "us": 29.1, + "variant": "Value" + }, + "yyjson": { + "us": 21.4, + "variant": "insitu (copy)" + } + }, + "twitter_api_compact_response": { + "Boost.JSON": { + "us": 7.1, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 10.3, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 18.9, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 11.8, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 4.0, + "variant": "accept" + }, + "serde_json": { + "us": 7.8, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 11.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 5.7, + "variant": "DOM" + }, + "sonic-rs": { + "us": 6.7, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 5.8, + "variant": "insitu (copy)" + } + }, + "twitter_api_response": { + "Boost.JSON": { + "us": 11.0, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 16.6, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 26.9, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 16.5, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 5.5, + "variant": "accept" + }, + "serde_json": { + "us": 12.2, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 13.3, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 6.8, + "variant": "DOM" + }, + "sonic-rs": { + "us": 11.2, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 8.0, + "variant": "read" + } + }, + "twitter_timeline": { + "Boost.JSON": { + "us": 42.8, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 57.1, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 83.7, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 60.5, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 23.1, + "variant": "accept" + }, + "serde_json": { + "us": 45.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 54.3, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 29.8, + "variant": "DOM" + }, + "sonic-rs": { + "us": 43.0, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 28.9, + "variant": "read (raw numbers)" + } + }, + "twitterescaped": { + "Boost.JSON": { + "us": 669.8, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 753.3, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1109.2, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 908.9, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 306.8, + "variant": "accept" + }, + "serde_json": { + "us": 702.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 856.4, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 401.4, + "variant": "DOM" + }, + "sonic-rs": { + "us": 628.9, + "variant": "Value" + }, + "yyjson": { + "us": 474.3, + "variant": "read" + } + }, + "update-center": { + "Boost.JSON": { + "us": 366.2, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 719.0, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1010.5, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 580.2, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 256.4, + "variant": "accept" + }, + "serde_json": { + "us": 490.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 650.9, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 325.6, + "variant": "DOM" + }, + "sonic-rs": { + "us": 383.6, + "variant": "Value" + }, + "yyjson": { + "us": 459.2, + "variant": "read" + } + } + }, + "x86-gcc13": { + "apache_builds": { + "Boost.JSON": { + "us": 110.3, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 134.8, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 314.3, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 125.9, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 57.4, + "variant": "accept" + }, + "serde_json": { + "us": 105.1, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 135.6, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 62.4, + "variant": "DOM" + }, + "sonic-rs": { + "us": 88.3, + "variant": "Value" + }, + "yyjson": { + "us": 87.8, + "variant": "read" + } + }, + "github_events": { + "Boost.JSON": { + "us": 42.4, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 63.1, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 166.0, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 55.2, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 21.8, + "variant": "accept" + }, + "serde_json": { + "us": 49.2, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 55.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 27.8, + "variant": "DOM" + }, + "sonic-rs": { + "us": 40.9, + "variant": "Value" + }, + "yyjson": { + "us": 35.3, + "variant": "insitu (copy)" + } + }, + "google_maps_api_compact_response": { + "Boost.JSON": { + "us": 16.8, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 18.9, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 39.3, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 26.4, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 9.4, + "variant": "accept" + }, + "serde_json": { + "us": 16.8, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 23.9, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 13.3, + "variant": "DOM" + }, + "sonic-rs": { + "us": 13.8, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 11.3, + "variant": "read" + } + }, + "google_maps_api_response": { + "Boost.JSON": { + "us": 27.7, + "variant": "SAX" + }, + "Glaze": { + "us": 27.4, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 50.5, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 34.9, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 15.0, + "variant": "accept" + }, + "serde_json": { + "us": 27.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 30.6, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 14.7, + "variant": "DOM" + }, + "sonic-rs": { + "us": 23.2, + "variant": "Value" + }, + "yyjson": { + "us": 17.9, + "variant": "insitu (copy)" + } + }, + "gsoc-2018": { + "Boost.JSON": { + "us": 1107.8, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 1802.3, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 7484.8, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 1251.3, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 713.0, + "variant": "accept" + }, + "serde_json": { + "us": 1498.2, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 2236.9, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 1174.1, + "variant": "DOM" + }, + "sonic-rs": { + "us": 1134.0, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 1848.0, + "variant": "read" + } + }, + "instruments": { + "Boost.JSON": { + "us": 228.5, + "variant": "SAX" + }, + "Glaze": { + "us": 211.4, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 492.5, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 286.5, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 115.2, + "variant": "accept" + }, + "serde_json": { + "us": 212.4, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 290.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 125.4, + "variant": "DOM" + }, + "sonic-rs": { + "us": 229.3, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 162.9, + "variant": "insitu (copy)" + } + }, + "marine_ik": { + "Boost.JSON": { + "us": 2904.2, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 3706.9, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 5805.4, + "variant": "SAX (default precision)" + }, + "nlohmann json": { + "us": 6931.7, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 2131.0, + "variant": "accept" + }, + "serde_json": { + "us": 4072.2, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 6669.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 4381.3, + "variant": "DOM" + }, + "sonic-rs": { + "us": 4661.1, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 4173.8, + "variant": "read (raw numbers)" + } + }, + "mesh": { + "Boost.JSON": { + "us": 992.3, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 718.3, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1460.7, + "variant": "SAX (string stream, default precision)" + }, + "nlohmann json": { + "us": 1875.7, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 433.4, + "variant": "accept" + }, + "serde_json": { + "us": 910.5, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 1691.7, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 1171.5, + "variant": "DOM" + }, + "sonic-rs": { + "us": 1221.0, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 1120.2, + "variant": "read (raw numbers)" + } + }, + "mesh.pretty": { + "Boost.JSON": { + "us": 1061.8, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 1269.4, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1934.3, + "variant": "SAX (default precision)" + }, + "nlohmann json": { + "us": 2283.0, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 939.0, + "variant": "accept" + }, + "serde_json": { + "us": 1483.7, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 2119.0, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 1379.5, + "variant": "DOM" + }, + "sonic-rs": { + "us": 1558.0, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 1728.8, + "variant": "read (raw numbers)" + } + }, + "numbers": { + "Boost.JSON": { + "us": 79.8, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 116.0, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 284.2, + "variant": "SAX (default precision)" + }, + "nlohmann json": { + "us": 270.5, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 67.1, + "variant": "accept" + }, + "serde_json": { + "us": 163.8, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 261.5, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 199.2, + "variant": "DOM" + }, + "sonic-rs": { + "us": 161.8, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 178.0, + "variant": "read (raw numbers)" + } + }, + "random": { + "Boost.JSON": { + "us": 960.8, + "variant": "SAX" + }, + "Glaze": { + "us": 667.3, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 1453.5, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 979.1, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 363.7, + "variant": "accept" + }, + "serde_json": { + "us": 772.3, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 840.2, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 416.6, + "variant": "DOM" + }, + "sonic-rs": { + "us": 502.9, + "variant": "Value" + }, + "yyjson": { + "us": 568.1, + "variant": "insitu (copy)" + } + }, + "repeat": { + "Boost.JSON": { + "us": 14.4, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 11.9, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 17.8, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 11.1, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 5.7, + "variant": "accept" + }, + "serde_json": { + "us": 12.6, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 11.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 6.2, + "variant": "DOM" + }, + "sonic-rs": { + "us": 7.6, + "variant": "Value" + }, + "yyjson": { + "us": 9.2, + "variant": "read" + } + }, + "semanticscholar-corpus": { + "Boost.JSON": { + "us": 6232.4, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 7583.5, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 24043.7, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 7063.7, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 3214.2, + "variant": "accept" + }, + "serde_json": { + "us": 6204.0, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 9501.2, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 7505.0, + "variant": "DOM" + }, + "sonic-rs": { + "us": 4777.5, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 6346.4, + "variant": "insitu (copy)" + } + }, + "tree-pretty": { + "Boost.JSON": { + "us": 36.0, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 37.1, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 81.4, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 45.9, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 17.9, + "variant": "accept" + }, + "serde_json": { + "us": 37.3, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 36.8, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 19.0, + "variant": "DOM" + }, + "sonic-rs": { + "us": 29.1, + "variant": "Value" + }, + "yyjson": { + "us": 21.6, + "variant": "insitu (copy)" + } + }, + "twitter_api_compact_response": { + "Boost.JSON": { + "us": 7.9, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 9.5, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 29.5, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 11.6, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 4.1, + "variant": "accept" + }, + "serde_json": { + "us": 7.8, + "variant": "from_utf8 + IgnoredAny" + }, + "simd-json": { + "us": 11.1, + "variant": "tape (copy)" + }, + "simdjson": { + "us": 6.1, + "variant": "DOM" + }, + "sonic-rs": { + "us": 6.7, + "variant": "IgnoredAny" + }, + "yyjson": { + "us": 6.0, + "variant": "read" + } + }, + "twitter_api_response": { + "Boost.JSON": { + "us": 11.8, + "variant": "SAX (numbers: none)" + }, + "Glaze": { + "us": 13.9, + "variant": "validate_json" + }, + "RapidJSON": { + "us": 37.2, + "variant": "insitu (copy)" + }, + "nlohmann json": { + "us": 16.4, + "variant": "accept" + }, + "nlohmann json_document": { + "us": 5.8, "variant": "accept" }, "serde_json": { @@ -1474,1619 +3074,19 @@ }, "twitter_timeline": { "Boost.JSON": { - "us": 39.7, + "us": 46.1, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 48.8, + "us": 49.0, "variant": "validate_json" }, "RapidJSON": { - "us": 137.9, + "us": 125.4, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 66.3, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 23.8, - "variant": "accept" - }, - "serde_json": { - "us": 45.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 54.3, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 29.3, - "variant": "DOM" - }, - "sonic-rs": { - "us": 43.0, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 27.9, - "variant": "read" - } - }, - "twitterescaped": { - "Boost.JSON": { - "us": 615.1, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 720.6, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 1735.8, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 925.8, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 309.9, - "variant": "accept" - }, - "serde_json": { - "us": 702.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 856.4, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 409.5, - "variant": "DOM" - }, - "sonic-rs": { - "us": 628.9, - "variant": "Value" - }, - "yyjson": { - "us": 440.5, - "variant": "insitu (copy)" - } - }, - "update-center": { - "Boost.JSON": { - "us": 341.5, - "variant": "SAX" - }, - "Glaze": { - "us": 695.8, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 2050.6, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 600.7, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 264.2, - "variant": "accept" - }, - "serde_json": { - "us": 490.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 650.9, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 334.9, - "variant": "DOM" - }, - "sonic-rs": { - "us": 383.6, - "variant": "Value" - }, - "yyjson": { - "us": 449.2, - "variant": "insitu (copy)" - } - } - }, - "x86-gcc": { - "apache_builds": { - "Boost.JSON": { - "us": 107.7, - "variant": "SAX" - }, - "Glaze": { - "us": 149.4, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 219.3, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 131.7, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 54.1, - "variant": "accept" - }, - "serde_json": { - "us": 105.1, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 135.6, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 59.9, - "variant": "DOM" - }, - "sonic-rs": { - "us": 88.3, - "variant": "Value" - }, - "yyjson": { - "us": 88.1, - "variant": "insitu (copy)" - } - }, - "github_events": { - "Boost.JSON": { - "us": 41.2, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 72.7, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 114.8, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 57.3, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 21.5, - "variant": "accept" - }, - "serde_json": { - "us": 49.2, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 55.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 28.0, - "variant": "DOM" - }, - "sonic-rs": { - "us": 40.9, - "variant": "Value" - }, - "yyjson": { - "us": 35.6, - "variant": "read" - } - }, - "google_maps_api_compact_response": { - "Boost.JSON": { - "us": 15.3, - "variant": "SAX" - }, - "Glaze": { - "us": 21.7, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 28.5, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 26.5, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 8.9, - "variant": "accept" - }, - "serde_json": { - "us": 16.8, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 23.9, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 12.4, - "variant": "DOM" - }, - "sonic-rs": { - "us": 13.8, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 11.0, - "variant": "insitu (copy)" - } - }, - "google_maps_api_response": { - "Boost.JSON": { - "us": 26.9, - "variant": "SAX" - }, - "Glaze": { - "us": 34.5, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 39.5, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 36.1, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 13.6, - "variant": "accept" - }, - "serde_json": { - "us": 27.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 30.6, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 13.8, - "variant": "DOM" - }, - "sonic-rs": { - "us": 23.2, - "variant": "Value" - }, - "yyjson": { - "us": 17.5, - "variant": "insitu (copy)" - } - }, - "gsoc-2018": { - "Boost.JSON": { - "us": 1055.0, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 1954.0, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 4464.7, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 1301.1, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 687.5, - "variant": "accept" - }, - "serde_json": { - "us": 1498.2, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 2236.9, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 1211.3, - "variant": "DOM" - }, - "sonic-rs": { - "us": 1134.0, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 1850.7, - "variant": "read" - } - }, - "instruments": { - "Boost.JSON": { - "us": 218.9, - "variant": "SAX" - }, - "Glaze": { - "us": 264.3, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 408.3, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 300.2, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 105.0, - "variant": "accept" - }, - "serde_json": { - "us": 212.4, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 290.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 116.9, - "variant": "DOM" - }, - "sonic-rs": { - "us": 229.3, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 158.2, - "variant": "insitu (copy)" - } - }, - "marine_ik": { - "Boost.JSON": { - "us": 3059.3, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 5037.4, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 7235.4, - "variant": "SAX" - }, - "nlohmann json": { - "us": 7748.5, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 1897.5, - "variant": "accept" - }, - "serde_json": { - "us": 4072.2, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 6669.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 4306.0, - "variant": "DOM" - }, - "sonic-rs": { - "us": 4661.1, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 4183.2, - "variant": "read (raw numbers)" - } - }, - "mesh": { - "Boost.JSON": { - "us": 954.4, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 1062.3, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 2302.8, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 1902.9, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 398.9, - "variant": "accept" - }, - "serde_json": { - "us": 910.5, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 1691.7, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 1105.5, - "variant": "DOM" - }, - "sonic-rs": { - "us": 1221.0, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 1054.7, - "variant": "read (raw numbers)" - } - }, - "mesh.pretty": { - "Boost.JSON": { - "us": 1044.7, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 1810.0, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 3637.8, - "variant": "SAX" - }, - "nlohmann json": { - "us": 2370.2, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 962.8, - "variant": "accept" - }, - "serde_json": { - "us": 1483.7, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 2119.0, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 1344.8, - "variant": "DOM" - }, - "sonic-rs": { - "us": 1558.0, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 1646.7, - "variant": "read (raw numbers)" - } - }, - "numbers": { - "Boost.JSON": { - "us": 81.6, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 147.6, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 436.2, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 274.2, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 63.0, - "variant": "accept" - }, - "serde_json": { - "us": 163.8, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 261.5, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 195.7, - "variant": "DOM" - }, - "sonic-rs": { - "us": 161.8, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 168.7, - "variant": "read (raw numbers)" - } - }, - "random": { - "Boost.JSON": { - "us": 896.4, - "variant": "SAX" - }, - "Glaze": { - "us": 745.2, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 1110.5, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 1016.4, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 346.7, - "variant": "accept" - }, - "serde_json": { - "us": 772.3, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 840.2, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 396.1, - "variant": "DOM" - }, - "sonic-rs": { - "us": 502.9, - "variant": "Value" - }, - "yyjson": { - "us": 568.3, - "variant": "insitu (copy)" - } - }, - "repeat": { - "Boost.JSON": { - "us": 13.1, - "variant": "SAX" - }, - "Glaze": { - "us": 13.9, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 14.9, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 12.5, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 5.1, - "variant": "accept" - }, - "serde_json": { - "us": 12.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 11.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 5.6, - "variant": "DOM" - }, - "sonic-rs": { - "us": 7.6, - "variant": "Value" - }, - "yyjson": { - "us": 8.2, - "variant": "insitu (copy)" - } - }, - "semanticscholar-corpus": { - "Boost.JSON": { - "us": 5592.9, - "variant": "SAX" - }, - "Glaze": { - "us": 8211.8, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 15200.9, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 6871.2, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 3105.6, - "variant": "accept" - }, - "serde_json": { - "us": 6204.0, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 9501.2, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 7473.0, - "variant": "DOM" - }, - "sonic-rs": { - "us": 4777.5, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 6350.5, - "variant": "read (raw numbers)" - } - }, - "tree-pretty": { - "Boost.JSON": { - "us": 35.2, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 48.3, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 72.0, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 47.0, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 16.6, - "variant": "accept" - }, - "serde_json": { - "us": 37.3, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 36.8, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 17.6, - "variant": "DOM" - }, - "sonic-rs": { - "us": 29.1, - "variant": "Value" - }, - "yyjson": { - "us": 21.6, - "variant": "read" - } - }, - "twitter_api_compact_response": { - "Boost.JSON": { - "us": 7.1, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 10.4, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 19.8, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 11.5, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 4.0, - "variant": "accept" - }, - "serde_json": { - "us": 7.8, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 11.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 5.7, - "variant": "DOM" - }, - "sonic-rs": { - "us": 6.7, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 5.8, - "variant": "read" - } - }, - "twitter_api_response": { - "Boost.JSON": { - "us": 11.0, - "variant": "SAX" - }, - "Glaze": { - "us": 16.4, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 27.9, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 16.3, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 5.5, - "variant": "accept" - }, - "serde_json": { - "us": 12.2, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 13.3, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 6.8, - "variant": "DOM" - }, - "sonic-rs": { - "us": 11.2, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 8.0, - "variant": "insitu (copy)" - } - }, - "twitter_timeline": { - "Boost.JSON": { - "us": 42.1, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 54.2, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 87.3, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 60.8, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 22.8, - "variant": "accept" - }, - "serde_json": { - "us": 45.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 54.3, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 28.4, - "variant": "DOM" - }, - "sonic-rs": { - "us": 43.0, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 27.7, - "variant": "read" - } - }, - "twitterescaped": { - "Boost.JSON": { - "us": 673.0, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 755.2, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 1207.3, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 910.2, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 308.1, - "variant": "accept" - }, - "serde_json": { - "us": 702.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 856.4, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 402.3, - "variant": "DOM" - }, - "sonic-rs": { - "us": 628.9, - "variant": "Value" - }, - "yyjson": { - "us": 479.7, - "variant": "read (raw numbers)" - } - }, - "update-center": { - "Boost.JSON": { - "us": 369.1, - "variant": "SAX" - }, - "Glaze": { - "us": 718.7, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 1048.6, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 613.8, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 272.9, - "variant": "accept" - }, - "serde_json": { - "us": 490.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 650.9, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 328.0, - "variant": "DOM" - }, - "sonic-rs": { - "us": 383.6, - "variant": "Value" - }, - "yyjson": { - "us": 459.1, - "variant": "read (raw numbers)" - } - } - }, - "x86-gcc13": { - "apache_builds": { - "Boost.JSON": { - "us": 110.2, - "variant": "SAX" - }, - "Glaze": { - "us": 134.5, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 313.5, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 125.1, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 56.5, - "variant": "accept" - }, - "serde_json": { - "us": 105.1, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 135.6, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 61.2, - "variant": "DOM" - }, - "sonic-rs": { - "us": 88.3, - "variant": "Value" - }, - "yyjson": { - "us": 87.7, - "variant": "read" - } - }, - "github_events": { - "Boost.JSON": { - "us": 42.2, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 61.9, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 169.9, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 55.1, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 22.2, - "variant": "accept" - }, - "serde_json": { - "us": 49.2, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 55.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 28.2, - "variant": "DOM" - }, - "sonic-rs": { - "us": 40.9, - "variant": "Value" - }, - "yyjson": { - "us": 34.7, - "variant": "read" - } - }, - "google_maps_api_compact_response": { - "Boost.JSON": { - "us": 17.0, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 18.7, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 39.5, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 26.5, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 9.4, - "variant": "accept" - }, - "serde_json": { - "us": 16.8, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 23.9, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 13.1, - "variant": "DOM" - }, - "sonic-rs": { - "us": 13.8, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 11.4, - "variant": "insitu (copy)" - } - }, - "google_maps_api_response": { - "Boost.JSON": { - "us": 27.5, - "variant": "SAX" - }, - "Glaze": { - "us": 27.4, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 50.5, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 34.2, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 14.9, - "variant": "accept" - }, - "serde_json": { - "us": 27.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 30.6, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 14.7, - "variant": "DOM" - }, - "sonic-rs": { - "us": 23.2, - "variant": "Value" - }, - "yyjson": { - "us": 17.8, - "variant": "insitu (copy)" - } - }, - "gsoc-2018": { - "Boost.JSON": { - "us": 1103.6, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 1846.2, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 7663.4, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 1260.0, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 691.6, - "variant": "accept" - }, - "serde_json": { - "us": 1498.2, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 2236.9, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 1134.3, - "variant": "DOM" - }, - "sonic-rs": { - "us": 1134.0, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 1854.3, - "variant": "read" - } - }, - "instruments": { - "Boost.JSON": { - "us": 228.0, - "variant": "SAX" - }, - "Glaze": { - "us": 211.2, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 489.1, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 278.3, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 113.6, - "variant": "accept" - }, - "serde_json": { - "us": 212.4, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 290.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 126.4, - "variant": "DOM" - }, - "sonic-rs": { - "us": 229.3, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 163.2, - "variant": "read" - } - }, - "marine_ik": { - "Boost.JSON": { - "us": 2914.7, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 3658.9, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 7328.2, - "variant": "SAX" - }, - "nlohmann json": { - "us": 6959.6, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 2006.2, - "variant": "accept" - }, - "serde_json": { - "us": 4072.2, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 6669.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 4331.8, - "variant": "DOM" - }, - "sonic-rs": { - "us": 4661.1, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 4157.3, - "variant": "read (raw numbers)" - } - }, - "mesh": { - "Boost.JSON": { - "us": 991.3, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 722.6, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 2511.9, - "variant": "SAX" - }, - "nlohmann json": { - "us": 1832.6, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 412.2, - "variant": "accept" - }, - "serde_json": { - "us": 910.5, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 1691.7, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 1160.7, - "variant": "DOM" - }, - "sonic-rs": { - "us": 1221.0, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 1089.4, - "variant": "read (raw numbers)" - } - }, - "mesh.pretty": { - "Boost.JSON": { - "us": 1057.6, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 1252.1, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 3530.5, - "variant": "SAX" - }, - "nlohmann json": { - "us": 2126.7, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 1073.8, - "variant": "accept" - }, - "serde_json": { - "us": 1483.7, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 2119.0, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 1377.9, - "variant": "DOM" - }, - "sonic-rs": { - "us": 1558.0, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 1754.5, - "variant": "read (raw numbers)" - } - }, - "numbers": { - "Boost.JSON": { - "us": 79.8, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 115.4, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 500.6, - "variant": "SAX" - }, - "nlohmann json": { - "us": 267.0, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 67.4, - "variant": "accept" - }, - "serde_json": { - "us": 163.8, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 261.5, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 193.8, - "variant": "DOM" - }, - "sonic-rs": { - "us": 161.8, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 174.9, - "variant": "read (raw numbers)" - } - }, - "random": { - "Boost.JSON": { - "us": 951.6, - "variant": "SAX" - }, - "Glaze": { - "us": 658.8, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 1441.5, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 950.7, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 362.6, - "variant": "accept" - }, - "serde_json": { - "us": 772.3, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 840.2, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 416.4, - "variant": "DOM" - }, - "sonic-rs": { - "us": 502.9, - "variant": "Value" - }, - "yyjson": { - "us": 570.3, - "variant": "read" - } - }, - "repeat": { - "Boost.JSON": { - "us": 14.2, - "variant": "SAX" - }, - "Glaze": { - "us": 10.9, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 17.4, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 11.0, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 5.6, - "variant": "accept" - }, - "serde_json": { - "us": 12.6, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 11.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 6.2, - "variant": "DOM" - }, - "sonic-rs": { - "us": 7.6, - "variant": "Value" - }, - "yyjson": { - "us": 8.6, - "variant": "insitu (copy)" - } - }, - "semanticscholar-corpus": { - "Boost.JSON": { - "us": 6226.4, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 7578.8, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 24363.8, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 6899.2, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 3167.8, - "variant": "accept" - }, - "serde_json": { - "us": 6204.0, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 9501.2, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 7697.2, - "variant": "DOM" - }, - "sonic-rs": { - "us": 4777.5, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 6423.8, - "variant": "insitu (copy)" - } - }, - "tree-pretty": { - "Boost.JSON": { - "us": 36.0, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 36.9, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 82.7, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 45.1, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 17.9, - "variant": "accept" - }, - "serde_json": { - "us": 37.3, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 36.8, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 19.1, - "variant": "DOM" - }, - "sonic-rs": { - "us": 29.1, - "variant": "Value" - }, - "yyjson": { - "us": 21.3, - "variant": "insitu (copy)" - } - }, - "twitter_api_compact_response": { - "Boost.JSON": { - "us": 8.0, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 9.5, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 28.5, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 11.5, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 4.1, - "variant": "accept" - }, - "serde_json": { - "us": 7.8, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 11.1, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 5.9, - "variant": "DOM" - }, - "sonic-rs": { - "us": 6.7, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 6.0, - "variant": "insitu (copy)" - } - }, - "twitter_api_response": { - "Boost.JSON": { - "us": 11.7, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 13.7, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 37.1, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 16.3, - "variant": "accept" - }, - "nlohmann json_document": { - "us": 5.8, - "variant": "accept" - }, - "serde_json": { - "us": 12.2, - "variant": "from_utf8 + IgnoredAny" - }, - "simd-json": { - "us": 13.3, - "variant": "tape (copy)" - }, - "simdjson": { - "us": 7.1, - "variant": "DOM" - }, - "sonic-rs": { - "us": 11.2, - "variant": "IgnoredAny" - }, - "yyjson": { - "us": 7.8, - "variant": "read" - } - }, - "twitter_timeline": { - "Boost.JSON": { - "us": 45.6, - "variant": "SAX (numbers: none)" - }, - "Glaze": { - "us": 48.5, - "variant": "validate_json" - }, - "RapidJSON": { - "us": 121.4, - "variant": "insitu (copy)" - }, - "nlohmann json": { - "us": 60.4, + "us": 61.3, "variant": "accept" }, "nlohmann json_document": { @@ -3102,7 +3102,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 29.9, + "us": 30.3, "variant": "DOM" }, "sonic-rs": { @@ -3110,29 +3110,29 @@ "variant": "IgnoredAny" }, "yyjson": { - "us": 28.5, - "variant": "read" + "us": 28.7, + "variant": "insitu (copy)" } }, "twitterescaped": { "Boost.JSON": { - "us": 703.3, + "us": 689.9, "variant": "SAX (numbers: none)" }, "Glaze": { - "us": 734.8, + "us": 735.3, "variant": "validate_json" }, "RapidJSON": { - "us": 1451.0, + "us": 1459.9, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 874.1, + "us": 877.4, "variant": "accept" }, "nlohmann json_document": { - "us": 314.0, + "us": 310.5, "variant": "accept" }, "serde_json": { @@ -3144,7 +3144,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 452.6, + "us": 442.8, "variant": "DOM" }, "sonic-rs": { @@ -3152,29 +3152,29 @@ "variant": "Value" }, "yyjson": { - "us": 503.1, - "variant": "insitu (copy)" + "us": 500.9, + "variant": "read" } }, "update-center": { "Boost.JSON": { - "us": 408.9, + "us": 406.2, "variant": "SAX" }, "Glaze": { - "us": 680.4, + "us": 681.3, "variant": "validate_json" }, "RapidJSON": { - "us": 1570.2, + "us": 1555.0, "variant": "insitu (copy)" }, "nlohmann json": { - "us": 578.7, + "us": 578.8, "variant": "accept" }, "nlohmann json_document": { - "us": 261.8, + "us": 261.3, "variant": "accept" }, "serde_json": { @@ -3186,7 +3186,7 @@ "variant": "tape (copy)" }, "simdjson": { - "us": 333.6, + "us": 332.3, "variant": "DOM" }, "sonic-rs": { @@ -3194,8 +3194,8 @@ "variant": "Value" }, "yyjson": { - "us": 466.4, - "variant": "read (raw numbers)" + "us": 461.4, + "variant": "read" } } } diff --git a/docs/mkdocs/scripts/figures/data/perf_usecases_mac.json b/docs/mkdocs/scripts/figures/data/perf_usecases_mac.json index 9a5fa161f..a937d3455 100644 --- a/docs/mkdocs/scripts/figures/data/perf_usecases_mac.json +++ b/docs/mkdocs/scripts/figures/data/perf_usecases_mac.json @@ -4,35 +4,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 169.3, + "us": 169.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 169.3, + "us": 169.6, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 174.9, + "us": 176.5, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 174.9, + "us": 176.5, "level": "full" }, "variants": { "accept": { - "us": 169.3, + "us": 169.6, "level": "full" }, "read (reused)": { - "us": 174.9, + "us": 176.5, "level": "full" }, "parse": { - "us": 182.0, + "us": 183.0, "level": "full" } } @@ -40,23 +40,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 461.9, + "us": 450.9, "level": "full" }, "best_any": { "variant": "accept", - "us": 461.9, + "us": 450.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 461.9, + "us": 450.9, "level": "full" }, "parse": { - "us": 1357.9, + "us": 1357.3, "level": "full" } } @@ -64,39 +64,43 @@ "yyjson": { "best": { "variant": "read", - "us": 178.2, + "us": 181.3, "level": "full" }, "best_any": { "variant": "read", - "us": 178.2, + "us": 181.3, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 185.0, + "us": 183.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 185.0, + "us": 183.1, "level": "full" }, "variants": { - "read": { - "us": 178.2, + "insitu (copy untimed)": { + "us": 172.5, "level": "full" }, - "insitu (copy)": { - "us": 180.6, + "read": { + "us": 181.3, "level": "full" }, "read (reused allocator)": { - "us": 185.0, + "us": 183.1, + "level": "full" + }, + "insitu (copy)": { + "us": 183.6, "level": "full" }, "read (raw numbers)": { - "us": 188.9, + "us": 192.5, "level": "full" } } @@ -104,31 +108,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 205.0, + "us": 211.9, "level": "full" }, "best_any": { "variant": "DOM", - "us": 205.0, + "us": 211.9, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 202.6, + "us": 196.2, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 202.6, + "us": 196.2, "level": "full" }, "variants": { "DOM (reused)": { - "us": 202.6, + "us": 196.2, "level": "full" }, "DOM": { - "us": 205.0, + "us": 211.9, "level": "full" } } @@ -137,14 +141,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 381.2, + "us": 381.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 381.2, + "us": 381.5, "level": "no UTF-8" } } @@ -152,35 +156,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 330.0, + "us": 331.3, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 330.0, + "us": 331.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 330.0, - "level": "full" - }, - "generic (double, strict)": { - "us": 911.0, + "us": 331.3, "level": "full" }, "generic (double)": { - "us": 913.1, + "us": 912.3, "level": "partial" }, + "generic (double, strict)": { + "us": 913.8, + "level": "full" + }, "generic": { - "us": 1268.7, + "us": 1271.7, "level": "partial" }, "generic (strict)": { - "us": 1271.3, + "us": 1274.5, "level": "full" } } @@ -188,111 +192,143 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 536.2, + "us": 534.8, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 536.2, + "us": 534.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 537.2, + "us": 533.2, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 537.2, + "us": 533.2, "level": "full" }, "variants": { - "SAX (numbers: none)": { - "us": 536.2, + "SAX (reused)": { + "us": 533.2, "level": "full" }, - "SAX (reused)": { - "us": 537.2, + "SAX (numbers: none)": { + "us": 534.8, "level": "full" }, "SAX": { - "us": 538.4, + "us": 535.0, "level": "full" }, "parse (numbers: none)": { - "us": 859.0, + "us": 859.9, "level": "full" }, "parser (reused)": { - "us": 865.2, + "us": 868.8, "level": "full" }, "parse": { - "us": 873.1, + "us": 870.5, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 1311.0, + "variant": "SAX (default precision)", + "us": 1311.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 700.0, + "us": 694.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1346.8, + "us": 1348.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1188.4, + "us": 1189.3, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 685.9, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 700.0, + "us": 694.3, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 713.3, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 721.8, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 1144.1, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1155.4, + "us": 1162.4, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 1159.8, + "us": 1171.8, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1188.4, + "us": 1189.3, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1192.8, + "us": 1198.1, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1307.4, + "level": "full" + }, + "SAX (default precision)": { + "us": 1311.2, + "level": "full" + }, "insitu (copy)": { - "us": 1311.0, + "us": 1320.5, "level": "full" }, "SAX": { - "us": 1322.9, + "us": 1323.5, "level": "full" }, "SAX (raw numbers)": { - "us": 1337.8, + "us": 1335.6, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 1347.0, "level": "full" }, "Document (reused allocator)": { - "us": 1346.8, + "us": 1348.2, + "level": "full" + }, + "SAX (string stream)": { + "us": 1359.5, "level": "full" }, "Document": { - "us": 1357.6, + "us": 1360.1, "level": "full" } } @@ -390,35 +426,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 313.2, + "us": 312.9, "level": "full" }, "best_any": { "variant": "accept", - "us": 313.2, + "us": 312.9, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 360.1, + "us": 359.4, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 360.1, + "us": 359.4, "level": "full" }, "variants": { "accept": { - "us": 313.2, + "us": 312.9, "level": "full" }, "read (reused)": { - "us": 360.1, + "us": 359.4, "level": "full" }, "parse": { - "us": 362.2, + "us": 360.3, "level": "full" } } @@ -426,63 +462,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 905.0, + "us": 888.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 905.0, + "us": 888.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 905.0, + "us": 888.0, "level": "full" }, "parse": { - "us": 2411.5, + "us": 2406.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 474.7, + "variant": "insitu (copy)", + "us": 476.8, "level": "full" }, "best_any": { - "variant": "read", - "us": 474.7, + "variant": "insitu (copy)", + "us": 476.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 487.0, + "us": 480.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 487.0, + "us": 480.0, "level": "full" }, "variants": { - "read": { - "us": 474.7, + "insitu (copy untimed)": { + "us": 450.8, "level": "full" }, "insitu (copy)": { - "us": 478.8, + "us": 476.8, "level": "full" }, "read (reused allocator)": { - "us": 487.0, + "us": 480.0, + "level": "full" + }, + "read": { + "us": 481.1, "level": "full" }, "read (raw numbers)": { - "us": 526.4, + "us": 529.1, "level": "full" } } @@ -490,31 +530,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 458.8, + "us": 451.8, "level": "full" }, "best_any": { "variant": "DOM", - "us": 458.8, + "us": 451.8, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 454.0, + "us": 449.3, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 454.0, + "us": 449.3, "level": "full" }, "variants": { "DOM (reused)": { - "us": 454.0, + "us": 449.3, "level": "full" }, "DOM": { - "us": 458.8, + "us": 451.8, "level": "full" } } @@ -523,14 +563,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 993.5, + "us": 984.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 993.5, + "us": 984.8, "level": "no UTF-8" } } @@ -538,35 +578,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 854.0, + "us": 862.2, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 854.0, + "us": 862.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 854.0, + "us": 862.2, "level": "full" }, "generic (double, strict)": { - "us": 1929.4, + "us": 1917.4, "level": "full" }, "generic (double)": { - "us": 1931.4, + "us": 1921.0, "level": "partial" }, "generic (strict)": { - "us": 2719.7, + "us": 2713.3, "level": "full" }, "generic": { - "us": 2735.4, + "us": 2727.9, "level": "partial" } } @@ -574,111 +614,143 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 994.8, + "us": 994.5, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 994.8, + "us": 994.5, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 1026.8, + "us": 1019.7, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 1026.8, + "us": 1019.7, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 994.8, + "us": 994.5, "level": "full" }, "SAX (reused)": { - "us": 1026.8, + "us": 1019.7, "level": "full" }, "SAX": { - "us": 1029.3, + "us": 1020.7, "level": "full" }, "parse (numbers: none)": { - "us": 1470.1, - "level": "full" - }, - "parser (reused)": { - "us": 1486.3, + "us": 1462.9, "level": "full" }, "parse": { - "us": 1487.4, + "us": 1480.0, + "level": "full" + }, + "parser (reused)": { + "us": 1480.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 1585.3, + "variant": "SAX (string stream, default precision)", + "us": 1396.9, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 1177.5, + "variant": "SAX (string stream, default precision) (no encoding check)", + "us": 1031.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1700.1, + "us": 1689.7, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1614.7, + "us": 1621.8, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1177.5, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1031.8, "level": "no UTF-8" }, + "SAX (string stream) (no encoding check)": { + "us": 1122.7, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1127.3, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 1140.9, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 1358.3, + "level": "no UTF-8" + }, + "SAX (string stream, default precision)": { + "us": 1396.9, + "level": "full" + }, + "SAX (string stream)": { + "us": 1444.8, + "level": "full" + }, + "SAX (default precision)": { + "us": 1445.3, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 1545.6, + "level": "full" + }, "SAX (no encoding check)": { - "us": 1551.5, + "us": 1549.8, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1585.3, + "us": 1569.7, "level": "full" }, "SAX (raw numbers) (no encoding check)": { - "us": 1610.0, - "level": "no UTF-8" - }, - "Document (reused allocator) (no encoding check)": { - "us": 1614.7, + "us": 1605.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1627.0, + "us": 1616.2, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1621.8, "level": "no UTF-8" }, "SAX": { - "us": 1644.0, + "us": 1639.2, "level": "full" }, "Document (reused allocator)": { - "us": 1700.1, - "level": "full" - }, - "Document": { - "us": 1703.1, + "us": 1689.7, "level": "full" }, "SAX (raw numbers)": { - "us": 1705.4, + "us": 1700.8, + "level": "full" + }, + "Document": { + "us": 1705.5, "level": "full" } } @@ -776,35 +848,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 867.6, + "us": 885.8, "level": "full" }, "best_any": { "variant": "accept", - "us": 867.6, + "us": 885.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 927.9, + "us": 955.0, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 927.9, + "us": 955.0, "level": "full" }, "variants": { "accept": { - "us": 867.6, + "us": 885.8, "level": "full" }, "read (reused)": { - "us": 927.9, + "us": 955.0, "level": "full" }, "parse": { - "us": 928.1, + "us": 956.1, "level": "full" } } @@ -812,23 +884,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 2339.7, + "us": 2405.4, "level": "full" }, "best_any": { "variant": "accept", - "us": 2339.7, + "us": 2405.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 2339.7, + "us": 2405.4, "level": "full" }, "parse": { - "us": 6063.5, + "us": 6000.5, "level": "full" } } @@ -836,39 +908,43 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 1495.7, + "us": 1492.5, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 1495.7, + "us": 1492.5, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 1490.1, + "us": 1507.7, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 1490.1, + "us": 1507.7, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 1490.1, + "insitu (copy untimed)": { + "us": 1457.0, "level": "full" }, "insitu (copy)": { - "us": 1495.7, + "us": 1492.5, "level": "full" }, "read": { - "us": 1497.8, + "us": 1500.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 1507.7, "level": "full" }, "read (raw numbers)": { - "us": 1727.0, + "us": 1746.0, "level": "full" } } @@ -876,31 +952,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 1889.8, + "us": 1888.5, "level": "full" }, "best_any": { "variant": "DOM", - "us": 1889.8, + "us": 1888.5, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 1887.9, + "us": 1883.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 1887.9, + "us": 1883.4, "level": "full" }, "variants": { "DOM (reused)": { - "us": 1887.9, + "us": 1883.4, "level": "full" }, "DOM": { - "us": 1889.8, + "us": 1888.5, "level": "full" } } @@ -909,14 +985,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 2579.2, + "us": 2577.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 2579.2, + "us": 2577.6, "level": "no UTF-8" } } @@ -924,148 +1000,180 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1302.5, + "us": 1325.9, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1302.5, + "us": 1325.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 1302.5, + "us": 1325.9, + "level": "full" + }, + "generic (double, strict)": { + "us": 5910.9, "level": "full" }, "generic (double)": { - "us": 5914.2, - "level": "partial" - }, - "generic (double, strict)": { - "us": 5920.7, - "level": "full" - }, - "generic": { - "us": 9224.0, + "us": 6022.0, "level": "partial" }, "generic (strict)": { - "us": 9232.6, + "us": 9316.7, "level": "full" + }, + "generic": { + "us": 9317.5, + "level": "partial" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 1467.0, + "us": 1466.8, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 1467.0, + "us": 1466.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 3048.6, + "us": 3098.2, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 3048.6, + "us": 3098.2, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 1467.0, + "us": 1466.8, "level": "full" }, "parse (numbers: none)": { - "us": 2081.2, - "level": "full" - }, - "SAX": { - "us": 3044.2, + "us": 2095.5, "level": "full" }, "SAX (reused)": { - "us": 3048.6, + "us": 3098.2, "level": "full" }, - "parse": { - "us": 3623.3, + "SAX": { + "us": 3109.1, "level": "full" }, "parser (reused)": { - "us": 3624.7, + "us": 3631.0, + "level": "full" + }, + "parse": { + "us": 3644.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 6862.0, + "variant": "SAX (string stream, default precision)", + "us": 1982.0, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 6837.6, - "level": "no UTF-8" + "variant": "SAX (string stream, default precision)", + "us": 1982.0, + "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 7361.0, + "us": 7345.7, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 7351.2, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 7345.7, + "level": "full" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 6837.6, + "SAX (string stream, default precision)": { + "us": 1982.0, + "level": "full" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1999.2, + "level": "no UTF-8" + }, + "SAX (default precision)": { + "us": 2484.0, + "level": "full" + }, + "SAX (default precision) (no encoding check)": { + "us": 2565.0, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 6261.5, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 6280.2, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 6735.5, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 6821.7, "level": "no UTF-8" }, "insitu (copy)": { - "us": 6862.0, + "us": 6857.6, "level": "full" }, - "SAX": { - "us": 6980.3, - "level": "full" + "insitu (copy) (no encoding check)": { + "us": 6858.0, + "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 6982.1, + "us": 6980.3, "level": "no UTF-8" }, - "Document": { - "us": 7347.9, + "SAX": { + "us": 6996.5, "level": "full" }, - "Document (reused allocator) (no encoding check)": { - "us": 7351.2, - "level": "no UTF-8" - }, "Document (reused allocator)": { - "us": 7361.0, + "us": 7345.7, + "level": "full" + }, + "Document": { + "us": 7376.6, "level": "full" }, "Document (no encoding check)": { - "us": 7384.4, + "us": 7399.8, "level": "no UTF-8" }, - "SAX (raw numbers) (no encoding check)": { - "us": 9453.0, + "Document (reused allocator) (no encoding check)": { + "us": 7446.8, "level": "no UTF-8" }, "SAX (raw numbers)": { - "us": 9537.8, + "us": 9451.3, "level": "full" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 9522.8, + "level": "no UTF-8" } } }, @@ -1162,35 +1270,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 20763.7, + "us": 20873.2, "level": "full" }, "best_any": { "variant": "accept", - "us": 20763.7, + "us": 20873.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 22538.0, + "us": 22491.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 22538.0, + "us": 22491.8, "level": "full" }, "variants": { "accept": { - "us": 20763.7, + "us": 20873.2, "level": "full" }, "read (reused)": { - "us": 22538.0, + "us": 22491.8, "level": "full" }, "parse": { - "us": 22795.7, + "us": 23091.8, "level": "full" } } @@ -1198,63 +1306,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 54684.4, + "us": 55286.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 54684.4, + "us": 55286.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 54684.4, + "us": 55286.0, "level": "full" }, "parse": { - "us": 167511.4, + "us": 166730.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "read (raw numbers)", - "us": 30678.7, + "variant": "insitu (copy)", + "us": 31498.8, "level": "full" }, "best_any": { - "variant": "read (raw numbers)", - "us": 30678.7, + "variant": "insitu (copy)", + "us": 31498.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 30875.9, + "us": 31543.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 30875.9, + "us": 31543.8, "level": "full" }, "variants": { - "read (raw numbers)": { - "us": 30678.7, + "insitu (copy untimed)": { + "us": 30239.6, "level": "full" }, "insitu (copy)": { - "us": 30766.6, + "us": 31498.8, "level": "full" }, "read (reused allocator)": { - "us": 30875.9, + "us": 31543.8, + "level": "full" + }, + "read (raw numbers)": { + "us": 31545.0, "level": "full" }, "read": { - "us": 31120.9, + "us": 31614.2, "level": "full" } } @@ -1262,31 +1374,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 28910.8, + "us": 28843.2, "level": "full" }, "best_any": { "variant": "DOM", - "us": 28910.8, + "us": 28843.2, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 28911.3, + "us": 28444.3, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 28911.3, + "us": 28444.3, "level": "full" }, "variants": { - "DOM": { - "us": 28910.8, + "DOM (reused)": { + "us": 28444.3, "level": "full" }, - "DOM (reused)": { - "us": 28911.3, + "DOM": { + "us": 28843.2, "level": "full" } } @@ -1295,14 +1407,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 41429.4, + "us": 41617.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 41429.4, + "us": 41617.2, "level": "no UTF-8" } } @@ -1310,147 +1422,179 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 46180.8, + "us": 45192.2, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 46180.8, + "us": 45192.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 46180.8, + "us": 45192.2, "level": "full" }, "generic (double)": { - "us": 89772.3, + "us": 89467.3, "level": "partial" }, "generic (double, strict)": { - "us": 90357.5, - "level": "full" - }, - "generic (strict)": { - "us": 133744.9, + "us": 89602.5, "level": "full" }, "generic": { - "us": 133880.0, + "us": 131063.1, "level": "partial" + }, + "generic (strict)": { + "us": 131198.8, + "level": "full" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 54696.2, + "us": 53939.3, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 54696.2, + "us": 53939.3, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 54070.7, + "us": 54415.7, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 54070.7, + "us": 54415.7, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 54070.7, - "level": "full" - }, "SAX (numbers: none)": { - "us": 54696.2, + "us": 53939.3, "level": "full" }, "SAX": { - "us": 54853.6, + "us": 54192.5, "level": "full" }, - "parse (numbers: none)": { - "us": 90182.5, + "SAX (reused)": { + "us": 54415.7, "level": "full" }, "parser (reused)": { - "us": 90267.2, + "us": 88553.8, "level": "full" }, "parse": { - "us": 90897.5, + "us": 90383.7, + "level": "full" + }, + "parse (numbers: none)": { + "us": 90510.6, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 141751.8, + "variant": "SAX (string stream, default precision)", + "us": 134679.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 63673.4, + "us": 64733.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 158816.1, + "us": 156135.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 144204.3, + "us": 143701.0, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 63589.0, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 63673.4, + "us": 64733.5, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 71496.2, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 71771.5, + "level": "no UTF-8" + }, + "SAX (string stream, default precision)": { + "us": 134679.0, + "level": "full" + }, + "SAX (string stream)": { + "us": 134981.8, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 136366.4, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 136778.8, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 136206.5, + "us": 137711.7, "level": "no UTF-8" }, - "SAX (no encoding check)": { - "us": 136556.8, - "level": "no UTF-8" + "insitu (copy untimed)": { + "us": 140586.2, + "level": "full" }, "insitu (copy)": { - "us": 141751.8, + "us": 141376.9, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 144204.3, + "us": 143701.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 145183.5, + "us": 145538.5, "level": "no UTF-8" }, - "SAX (raw numbers)": { - "us": 155496.2, + "SAX": { + "us": 154349.1, "level": "full" }, - "SAX": { - "us": 155807.8, + "SAX (raw numbers)": { + "us": 154625.2, + "level": "full" + }, + "SAX (default precision)": { + "us": 155243.8, "level": "full" }, "Document (reused allocator)": { - "us": 158816.1, + "us": 156135.2, "level": "full" }, "Document": { - "us": 159047.6, + "us": 157729.5, "level": "full" } } @@ -1584,19 +1728,19 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 2.5, + "us": 2.4, "level": "full" }, "best_any": { "variant": "accept", - "us": 2.5, + "us": 2.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 2.5, + "us": 2.4, "level": "full" }, "parse": { @@ -1635,6 +1779,10 @@ "us": 0.9, "level": "full" }, + "insitu (copy untimed)": { + "us": 0.9, + "level": "full" + }, "read (raw numbers)": { "us": 0.9, "level": "full" @@ -1732,39 +1880,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 2.4, + "us": 2.3, "level": "full" }, "best_any": { "variant": "SAX", - "us": 2.4, + "us": 2.3, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 2.4, + "us": 2.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 2.4, + "us": 2.3, "level": "full" }, "variants": { "SAX": { - "us": 2.4, + "us": 2.3, "level": "full" }, "SAX (numbers: none)": { - "us": 2.4, + "us": 2.3, "level": "full" }, "SAX (reused)": { - "us": 2.4, + "us": 2.3, "level": "full" }, "parser (reused)": { - "us": 3.6, + "us": 3.5, "level": "full" }, "parse": { @@ -1779,28 +1927,44 @@ }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 6.2, + "variant": "SAX (default precision)", + "us": 6.0, "level": "full" }, "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, + "us": 6.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 5.5, + "us": 5.4, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 2.7, + "us": 2.6, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 2.6, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 3.0, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 3.1, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 5.2, "level": "no UTF-8" }, "SAX (no encoding check)": { @@ -1812,14 +1976,30 @@ "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 5.5, + "us": 5.4, "level": "no UTF-8" }, + "SAX (default precision)": { + "us": 6.0, + "level": "full" + }, "Document (no encoding check)": { "us": 6.0, "level": "no UTF-8" }, "SAX": { + "us": 6.1, + "level": "full" + }, + "SAX (string stream)": { + "us": 6.1, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 6.1, + "level": "full" + }, + "Document (reused allocator)": { "us": 6.2, "level": "full" }, @@ -1827,8 +2007,8 @@ "us": 6.3, "level": "full" }, - "Document (reused allocator)": { - "us": 6.3, + "insitu (copy untimed)": { + "us": 6.4, "level": "full" }, "insitu (copy)": { @@ -1836,7 +2016,7 @@ "level": "full" }, "Document": { - "us": 6.8, + "us": 6.7, "level": "full" } } @@ -1934,35 +2114,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 151.0, + "us": 149.1, "level": "full" }, "best_any": { "variant": "accept", - "us": 151.0, + "us": 149.1, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 158.9, + "us": 159.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 158.9, + "us": 159.6, "level": "full" }, "variants": { "accept": { - "us": 151.0, + "us": 149.1, "level": "full" }, "read (reused)": { - "us": 158.9, + "us": 159.6, "level": "full" }, "parse": { - "us": 163.8, + "us": 161.4, "level": "full" } } @@ -1970,63 +2150,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 401.7, + "us": 398.8, "level": "full" }, "best_any": { "variant": "accept", - "us": 401.7, + "us": 398.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 401.7, + "us": 398.8, "level": "full" }, "parse": { - "us": 1334.8, + "us": 1321.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 161.6, + "variant": "read", + "us": 163.5, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 161.6, + "variant": "read", + "us": 163.5, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 161.3, + "us": 161.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 161.3, + "us": 161.0, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 161.3, + "insitu (copy untimed)": { + "us": 154.3, "level": "full" }, - "insitu (copy)": { - "us": 161.6, + "read (reused allocator)": { + "us": 161.0, "level": "full" }, "read": { - "us": 161.7, + "us": 163.5, + "level": "full" + }, + "insitu (copy)": { + "us": 165.8, "level": "full" }, "read (raw numbers)": { - "us": 172.0, + "us": 172.4, "level": "full" } } @@ -2034,31 +2218,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 178.3, + "us": 186.5, "level": "full" }, "best_any": { "variant": "DOM", - "us": 178.3, + "us": 186.5, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 178.5, + "us": 168.3, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 178.5, + "us": 168.3, "level": "full" }, "variants": { - "DOM": { - "us": 178.3, + "DOM (reused)": { + "us": 168.3, "level": "full" }, - "DOM (reused)": { - "us": 178.5, + "DOM": { + "us": 186.5, "level": "full" } } @@ -2067,14 +2251,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 260.8, + "us": 257.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 260.8, + "us": 257.0, "level": "no UTF-8" } } @@ -2082,83 +2266,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 277.2, + "us": 272.7, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 277.2, + "us": 272.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 277.2, - "level": "full" - }, - "generic (double, strict)": { - "us": 833.3, + "us": 272.7, "level": "full" }, "generic (double)": { - "us": 836.9, + "us": 825.7, "level": "partial" }, - "generic": { - "us": 1179.0, - "level": "partial" + "generic (double, strict)": { + "us": 830.4, + "level": "full" }, "generic (strict)": { - "us": 1182.8, + "us": 1166.5, "level": "full" + }, + "generic": { + "us": 1186.7, + "level": "partial" } } }, "Boost.JSON": { "best": { "variant": "SAX", - "us": 462.3, + "us": 455.1, "level": "full" }, "best_any": { "variant": "SAX", - "us": 462.3, + "us": 455.1, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 461.5, + "us": 455.7, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 461.5, + "us": 455.7, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 461.5, + "SAX": { + "us": 455.1, "level": "full" }, - "SAX": { - "us": 462.3, + "SAX (reused)": { + "us": 455.7, "level": "full" }, "SAX (numbers: none)": { - "us": 465.5, - "level": "full" - }, - "parse": { - "us": 778.0, + "us": 461.0, "level": "full" }, "parse (numbers: none)": { - "us": 779.8, + "us": 776.7, "level": "full" }, "parser (reused)": { - "us": 784.5, + "us": 779.3, + "level": "full" + }, + "parse": { + "us": 779.8, "level": "full" } } @@ -2166,63 +2350,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1092.9, + "us": 1082.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 481.7, + "us": 480.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1180.4, + "us": 1153.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1031.1, + "us": 1012.0, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 474.2, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 481.7, + "us": 480.8, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 538.5, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 548.1, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 945.8, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 979.6, + "us": 967.8, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 993.3, + "us": 980.1, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1031.1, + "us": 1012.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1034.3, + "us": 1025.5, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1077.1, + "level": "full" + }, "insitu (copy)": { - "us": 1092.9, + "us": 1082.7, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 1106.9, + "level": "full" + }, + "SAX (default precision)": { + "us": 1108.3, + "level": "full" + }, + "SAX (string stream)": { + "us": 1115.1, "level": "full" }, "SAX": { - "us": 1144.5, + "us": 1133.3, "level": "full" }, "SAX (raw numbers)": { - "us": 1159.3, + "us": 1148.4, "level": "full" }, "Document (reused allocator)": { - "us": 1180.4, + "us": 1153.4, "level": "full" }, "Document": { - "us": 1191.1, + "us": 1162.1, "level": "full" } } @@ -2320,35 +2536,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 194.8, + "us": 193.7, "level": "full" }, "best_any": { "variant": "accept", - "us": 194.8, + "us": 193.7, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 247.2, + "us": 243.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 247.2, + "us": 243.8, "level": "full" }, "variants": { "accept": { - "us": 194.8, + "us": 193.7, "level": "full" }, "read (reused)": { - "us": 247.2, + "us": 243.8, "level": "full" }, "parse": { - "us": 247.5, + "us": 244.2, "level": "full" } } @@ -2356,23 +2572,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 697.8, + "us": 678.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 697.8, + "us": 678.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 697.8, + "us": 678.0, "level": "full" }, "parse": { - "us": 2308.1, + "us": 2314.4, "level": "full" } } @@ -2380,39 +2596,43 @@ "yyjson": { "best": { "variant": "read", - "us": 285.4, + "us": 284.2, "level": "full" }, "best_any": { "variant": "read", - "us": 285.4, + "us": 284.2, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 286.2, + "us": 286.7, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 286.2, + "us": 286.7, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 274.6, + "level": "full" + }, "read": { - "us": 285.4, + "us": 284.2, "level": "full" }, "insitu (copy)": { - "us": 285.5, + "us": 284.6, "level": "full" }, "read (reused allocator)": { - "us": 286.2, + "us": 286.7, "level": "full" }, "read (raw numbers)": { - "us": 340.0, + "us": 347.5, "level": "full" } } @@ -2420,12 +2640,12 @@ "simdjson": { "best": { "variant": "DOM", - "us": 327.8, + "us": 332.8, "level": "full" }, "best_any": { "variant": "DOM", - "us": 327.8, + "us": 332.8, "level": "full" }, "best_reused": { @@ -2444,7 +2664,7 @@ "level": "full" }, "DOM": { - "us": 327.8, + "us": 332.8, "level": "full" } } @@ -2453,14 +2673,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 550.5, + "us": 552.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 550.5, + "us": 552.5, "level": "no UTF-8" } } @@ -2468,147 +2688,179 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 470.0, + "us": 470.9, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 470.0, + "us": 470.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 470.0, + "us": 470.9, "level": "full" }, "generic (double)": { - "us": 1611.3, + "us": 1580.3, "level": "partial" }, "generic (double, strict)": { - "us": 1612.0, - "level": "full" - }, - "generic (strict)": { - "us": 2388.3, + "us": 1592.4, "level": "full" }, "generic": { - "us": 2393.1, + "us": 2359.8, "level": "partial" + }, + "generic (strict)": { + "us": 2369.5, + "level": "full" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 443.0, + "us": 438.8, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 443.0, + "us": 438.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 463.5, + "us": 464.0, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 463.5, + "us": 464.0, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 443.0, - "level": "full" - }, - "SAX (reused)": { - "us": 463.5, + "us": 438.8, "level": "full" }, "SAX": { - "us": 463.7, + "us": 457.3, + "level": "full" + }, + "SAX (reused)": { + "us": 464.0, "level": "full" }, "parse (numbers: none)": { - "us": 945.3, - "level": "full" - }, - "parse": { - "us": 957.5, + "us": 927.2, "level": "full" }, "parser (reused)": { - "us": 957.9, + "us": 945.5, + "level": "full" + }, + "parse": { + "us": 952.3, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 1124.8, + "variant": "SAX (default precision)", + "us": 936.3, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 761.9, + "variant": "SAX (string stream, default precision) (no encoding check)", + "us": 653.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1250.3, + "us": 1238.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1157.8, + "us": 1151.2, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 761.9, + "SAX (string stream, default precision) (no encoding check)": { + "us": 653.3, "level": "no UTF-8" }, + "insitu (copy untimed) (no encoding check)": { + "us": 744.5, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 754.5, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 822.4, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 869.2, + "level": "no UTF-8" + }, + "SAX (default precision)": { + "us": 936.3, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 970.2, + "level": "full" + }, "SAX (no encoding check)": { - "us": 1020.9, + "us": 1022.5, "level": "no UTF-8" }, + "SAX (string stream)": { + "us": 1038.3, + "level": "full" + }, "insitu (copy)": { - "us": 1124.8, + "us": 1113.0, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 1114.2, "level": "full" }, "SAX": { - "us": 1134.2, + "us": 1126.3, "level": "full" }, - "Document (no encoding check)": { - "us": 1152.8, + "Document (reused allocator) (no encoding check)": { + "us": 1151.2, "level": "no UTF-8" }, - "Document (reused allocator) (no encoding check)": { - "us": 1157.8, + "Document (no encoding check)": { + "us": 1152.5, "level": "no UTF-8" }, "Document": { - "us": 1235.6, + "us": 1235.8, "level": "full" }, "Document (reused allocator)": { - "us": 1250.3, + "us": 1238.4, "level": "full" }, "SAX (raw numbers) (no encoding check)": { - "us": 1297.1, + "us": 1281.6, "level": "no UTF-8" }, "SAX (raw numbers)": { - "us": 1342.0, + "us": 1337.9, "level": "full" } } @@ -2708,31 +2960,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 227.0, + "us": 224.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 227.0, + "us": 224.0, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 223.7, + "us": 223.5, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 223.7, + "us": 223.5, "level": "full" }, "variants": { "read (reused)": { - "us": 223.7, + "us": 223.5, "level": "full" }, "parse": { - "us": 227.0, + "us": 224.0, + "level": "full" + }, + "parse_copy": { + "us": 230.6, "level": "full" } } @@ -2740,23 +2996,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 465.6, + "us": 465.2, "level": "full" }, "best_any": { "variant": "sax", - "us": 465.6, + "us": 465.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 465.6, + "us": 465.2, "level": "full" }, "parse": { - "us": 1417.8, + "us": 1414.6, "level": "full" } } @@ -2764,35 +3020,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 229.4, + "us": 230.9, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 229.4, + "us": 230.9, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 234.3, + "us": 237.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 234.3, + "us": 237.0, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 229.4, + "insitu (copy untimed)": { + "us": 218.7, "level": "full" }, - "read (reused allocator)": { - "us": 234.3, + "insitu (copy)": { + "us": 230.9, "level": "full" }, "read": { - "us": 235.2, + "us": 231.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 237.0, "level": "full" } } @@ -2800,39 +3060,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 243.7, + "us": 248.8, "level": "full" }, "best_any": { "variant": "DOM", - "us": 243.7, + "us": 248.8, "level": "full" }, "best_reused": { - "variant": "DOM (reused)", - "us": 244.0, + "variant": "On-Demand (reused)", + "us": 247.3, "level": "full" }, "best_reused_any": { - "variant": "DOM (reused)", - "us": 244.0, + "variant": "On-Demand (reused)", + "us": 247.3, "level": "full" }, "variants": { - "DOM": { - "us": 243.7, + "On-Demand (reused)": { + "us": 247.3, "level": "full" }, "DOM (reused)": { - "us": 244.0, + "us": 247.4, "level": "full" }, - "On-Demand (reused)": { - "us": 257.3, + "DOM": { + "us": 248.8, "level": "full" }, "On-Demand": { - "us": 258.9, + "us": 251.1, "level": "full" } } @@ -2841,14 +3101,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 427.9, + "us": 427.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 427.9, + "us": 427.8, "level": "no UTF-8" } } @@ -2856,35 +3116,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 984.7, + "us": 967.9, "level": "full" }, "best_any": { - "variant": "generic (double)", - "us": 978.5, - "level": "partial" + "variant": "generic (double, strict)", + "us": 967.9, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double)": { - "us": 978.5, - "level": "partial" - }, "generic (double, strict)": { - "us": 984.7, + "us": 967.9, "level": "full" }, + "generic (double)": { + "us": 970.8, + "level": "partial" + }, "generic": { - "us": 1339.1, + "us": 1318.0, "level": "partial" }, "generic (strict)": { - "us": 1345.1, + "us": 1326.5, "level": "full" }, "lazy_json": { - "us": 1918.4, + "us": 1955.2, "level": "partial" } }, @@ -2895,39 +3155,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 528.7, + "us": 535.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 528.7, + "us": 535.0, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 530.6, + "us": 532.9, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 530.6, + "us": 532.9, "level": "full" }, "variants": { - "SAX": { - "us": 528.7, - "level": "full" - }, "SAX (reused)": { - "us": 530.6, + "us": 532.9, "level": "full" }, - "parser (reused)": { - "us": 909.7, + "SAX": { + "us": 535.0, "level": "full" }, "parse": { - "us": 918.5, + "us": 914.4, + "level": "full" + }, + "parser (reused)": { + "us": 915.5, "level": "full" } } @@ -2935,55 +3195,71 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 1331.1, + "us": 1329.3, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 747.8, + "variant": "SAX (string stream) (no encoding check)", + "us": 735.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1402.6, + "us": 1401.0, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1233.2, + "us": 1231.2, "level": "no UTF-8" }, "variants": { + "SAX (string stream) (no encoding check)": { + "us": 735.1, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 739.2, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 747.8, + "us": 745.0, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1168.8, + "us": 1160.1, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1233.2, + "us": 1231.2, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1240.8, + "us": 1243.0, "level": "no UTF-8" }, "SAX": { - "us": 1331.1, + "us": 1329.3, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 1355.9, + "level": "full" + }, + "SAX (string stream)": { + "us": 1357.7, "level": "full" }, "insitu (copy)": { - "us": 1361.9, + "us": 1358.5, "level": "full" }, "Document (reused allocator)": { - "us": 1402.6, + "us": 1401.0, "level": "full" }, "Document": { - "us": 1405.5, + "us": 1405.1, "level": "full" } } @@ -3077,31 +3353,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 481.7, + "us": 484.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 481.7, + "us": 484.7, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 482.7, + "us": 483.7, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 482.7, + "us": 483.7, "level": "full" }, "variants": { - "parse": { - "us": 481.7, + "read (reused)": { + "us": 483.7, "level": "full" }, - "read (reused)": { - "us": 482.7, + "parse": { + "us": 484.7, + "level": "full" + }, + "parse_copy": { + "us": 512.4, "level": "full" } } @@ -3109,59 +3389,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 931.8, + "us": 925.3, "level": "full" }, "best_any": { "variant": "sax", - "us": 931.8, + "us": 925.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 931.8, + "us": 925.3, "level": "full" }, "parse": { - "us": 2532.5, + "us": 2535.6, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 576.2, + "variant": "insitu (copy)", + "us": 581.2, "level": "full" }, "best_any": { - "variant": "read", - "us": 576.2, + "variant": "insitu (copy)", + "us": 581.2, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 582.6, + "us": 587.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 582.6, + "us": 587.0, "level": "full" }, "variants": { - "read": { - "us": 576.2, + "insitu (copy untimed)": { + "us": 550.7, "level": "full" }, "insitu (copy)": { - "us": 577.4, + "us": 581.2, + "level": "full" + }, + "read": { + "us": 582.7, "level": "full" }, "read (reused allocator)": { - "us": 582.6, + "us": 587.0, "level": "full" } } @@ -3169,39 +3453,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 587.7, + "us": 570.8, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 587.7, + "us": 570.8, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 577.7, + "us": 581.8, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 577.7, + "us": 581.8, "level": "full" }, "variants": { - "On-Demand (reused)": { - "us": 577.7, - "level": "full" - }, "On-Demand": { - "us": 587.7, + "us": 570.8, "level": "full" }, - "DOM": { - "us": 589.5, + "On-Demand (reused)": { + "us": 581.8, "level": "full" }, "DOM (reused)": { - "us": 596.0, + "us": 587.2, + "level": "full" + }, + "DOM": { + "us": 590.9, "level": "full" } } @@ -3210,14 +3494,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1088.0, + "us": 1086.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1088.0, + "us": 1086.6, "level": "no UTF-8" } } @@ -3225,35 +3509,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 2057.0, + "us": 2048.8, "level": "full" }, "best_any": { - "variant": "generic (double)", - "us": 2052.3, - "level": "partial" + "variant": "generic (double, strict)", + "us": 2048.8, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double)": { - "us": 2052.3, - "level": "partial" - }, "generic (double, strict)": { - "us": 2057.0, + "us": 2048.8, "level": "full" }, - "generic (strict)": { - "us": 2842.2, - "level": "full" + "generic (double)": { + "us": 2049.7, + "level": "partial" }, "generic": { - "us": 2856.0, + "us": 2832.0, "level": "partial" }, + "generic (strict)": { + "us": 2856.2, + "level": "full" + }, "lazy_json": { - "us": 8317.8, + "us": 7968.5, "level": "partial" } }, @@ -3264,95 +3548,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 1008.2, + "us": 1010.2, "level": "full" }, "best_any": { "variant": "SAX", - "us": 1008.2, + "us": 1010.2, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 1006.9, + "us": 1006.5, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 1006.9, + "us": 1006.5, "level": "full" }, "variants": { "SAX (reused)": { - "us": 1006.9, + "us": 1006.5, "level": "full" }, "SAX": { - "us": 1008.2, - "level": "full" - }, - "parser (reused)": { - "us": 1577.2, + "us": 1010.2, "level": "full" }, "parse": { - "us": 1583.2, + "us": 1574.8, + "level": "full" + }, + "parser (reused)": { + "us": 1576.3, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 1654.8, + "variant": "SAX (string stream)", + "us": 1455.3, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 1275.7, + "variant": "SAX (string stream) (no encoding check)", + "us": 1136.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1803.5, + "us": 1790.8, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1720.8, + "us": 1712.6, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1275.7, + "SAX (string stream) (no encoding check)": { + "us": 1136.2, "level": "no UTF-8" }, + "insitu (copy untimed) (no encoding check)": { + "us": 1223.3, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 1255.3, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 1455.3, + "level": "full" + }, "SAX (no encoding check)": { - "us": 1559.8, + "us": 1565.0, "level": "no UTF-8" }, "SAX": { - "us": 1654.8, + "us": 1639.8, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 1657.8, "level": "full" }, "insitu (copy)": { - "us": 1663.9, + "us": 1670.6, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1720.8, + "us": 1712.6, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1726.7, + "us": 1716.0, "level": "no UTF-8" }, - "Document": { - "us": 1802.0, + "Document (reused allocator)": { + "us": 1790.8, "level": "full" }, - "Document (reused allocator)": { - "us": 1803.5, + "Document": { + "us": 1804.8, "level": "full" } } @@ -3446,31 +3746,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 1790.2, + "us": 1815.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 1790.2, + "us": 1815.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 1787.5, + "us": 1814.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1787.5, + "us": 1814.8, "level": "full" }, "variants": { "read (reused)": { - "us": 1787.5, + "us": 1814.8, "level": "full" }, "parse": { - "us": 1790.2, + "us": 1815.8, + "level": "full" + }, + "parse_copy": { + "us": 1861.5, "level": "full" } } @@ -3478,23 +3782,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 3074.9, + "us": 3072.1, "level": "full" }, "best_any": { "variant": "sax", - "us": 3074.9, + "us": 3072.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 3074.9, + "us": 3072.1, "level": "full" }, "parse": { - "us": 6419.0, + "us": 6451.6, "level": "full" } } @@ -3502,35 +3806,39 @@ "yyjson": { "best": { "variant": "read", - "us": 1941.4, + "us": 1948.4, "level": "full" }, "best_any": { "variant": "read", - "us": 1941.4, + "us": 1948.4, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 1947.4, + "us": 1945.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 1947.4, + "us": 1945.0, "level": "full" }, "variants": { - "read": { - "us": 1941.4, - "level": "full" - }, - "insitu (copy)": { - "us": 1944.0, + "insitu (copy untimed)": { + "us": 1906.5, "level": "full" }, "read (reused allocator)": { - "us": 1947.4, + "us": 1945.0, + "level": "full" + }, + "read": { + "us": 1948.4, + "level": "full" + }, + "insitu (copy)": { + "us": 1958.3, "level": "full" } } @@ -3538,39 +3846,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 2386.7, + "us": 2374.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 2386.7, + "us": 2374.0, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 2391.8, + "us": 2379.3, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 2391.8, + "us": 2379.3, "level": "full" }, "variants": { "On-Demand": { - "us": 2386.7, + "us": 2374.0, "level": "full" }, "On-Demand (reused)": { - "us": 2391.8, - "level": "full" - }, - "DOM": { - "us": 2417.8, + "us": 2379.3, "level": "full" }, "DOM (reused)": { - "us": 2421.5, + "us": 2426.8, + "level": "full" + }, + "DOM": { + "us": 2431.0, "level": "full" } } @@ -3579,14 +3887,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 2972.4, + "us": 2992.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 2972.4, + "us": 2992.6, "level": "no UTF-8" } } @@ -3594,35 +3902,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 6271.8, + "us": 6330.8, "level": "full" }, "best_any": { "variant": "generic (double, strict)", - "us": 6271.8, + "us": 6330.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (double, strict)": { - "us": 6271.8, + "us": 6330.8, "level": "full" }, "generic (double)": { - "us": 6352.5, + "us": 6408.4, "level": "partial" }, "generic (strict)": { - "us": 9611.3, + "us": 9738.4, "level": "full" }, "generic": { - "us": 9622.8, + "us": 9802.6, "level": "partial" }, "lazy_json": { - "us": 11984.1, + "us": 12005.4, "level": "partial" } }, @@ -3633,95 +3941,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 3042.4, + "us": 3066.7, "level": "full" }, "best_any": { "variant": "SAX", - "us": 3042.4, + "us": 3066.7, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 3043.4, + "us": 3067.8, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 3043.4, + "us": 3067.8, "level": "full" }, "variants": { "SAX": { - "us": 3042.4, + "us": 3066.7, "level": "full" }, "SAX (reused)": { - "us": 3043.4, + "us": 3067.8, "level": "full" }, "parser (reused)": { - "us": 3999.4, + "us": 4017.5, "level": "full" }, "parse": { - "us": 4012.9, + "us": 4046.4, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 6937.7, + "variant": "SAX (string stream)", + "us": 6453.3, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 6937.7, + "variant": "SAX (string stream)", + "us": 6453.3, "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 7716.9, + "us": 7705.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator)", - "us": 7716.9, + "us": 7705.2, "level": "full" }, "variants": { - "SAX": { - "us": 6937.7, + "SAX (string stream)": { + "us": 6453.3, "level": "full" }, - "SAX (no encoding check)": { - "us": 6949.0, + "SAX (string stream) (no encoding check)": { + "us": 6484.0, "level": "no UTF-8" }, - "insitu (copy) (no encoding check)": { - "us": 7177.7, + "SAX (no encoding check)": { + "us": 7003.9, + "level": "no UTF-8" + }, + "SAX": { + "us": 7006.7, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 7199.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 7217.9, + "us": 7201.1, "level": "full" }, - "Document (reused allocator)": { - "us": 7716.9, + "insitu (copy untimed)": { + "us": 7220.0, "level": "full" }, - "Document (reused allocator) (no encoding check)": { - "us": 7721.3, + "insitu (copy) (no encoding check)": { + "us": 7258.3, "level": "no UTF-8" }, + "Document (reused allocator)": { + "us": 7705.2, + "level": "full" + }, "Document": { - "us": 7732.4, + "us": 7736.4, "level": "full" }, "Document (no encoding check)": { - "us": 7737.8, + "us": 7768.0, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 7820.7, "level": "no UTF-8" } } @@ -3815,31 +4139,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 29450.5, + "us": 28986.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 29450.5, + "us": 28986.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 29182.9, + "us": 29025.1, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 29182.9, + "us": 29025.1, "level": "full" }, "variants": { - "read (reused)": { - "us": 29182.9, + "parse": { + "us": 28986.8, "level": "full" }, - "parse": { - "us": 29450.5, + "read (reused)": { + "us": 29025.1, + "level": "full" + }, + "parse_copy": { + "us": 30541.2, "level": "full" } } @@ -3847,59 +4175,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 64003.1, + "us": 64088.8, "level": "full" }, "best_any": { "variant": "sax", - "us": 64003.1, + "us": 64088.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 64003.1, + "us": 64088.8, "level": "full" }, "parse": { - "us": 173462.1, + "us": 174598.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 37855.2, + "variant": "insitu (copy)", + "us": 38250.8, "level": "full" }, "best_any": { - "variant": "read", - "us": 37855.2, + "variant": "insitu (copy)", + "us": 38250.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 38236.1, + "us": 38317.9, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 38236.1, + "us": 38317.9, "level": "full" }, "variants": { - "read": { - "us": 37855.2, - "level": "full" - }, - "read (reused allocator)": { - "us": 38236.1, + "insitu (copy untimed)": { + "us": 37511.6, "level": "full" }, "insitu (copy)": { - "us": 38334.2, + "us": 38250.8, + "level": "full" + }, + "read (reused allocator)": { + "us": 38317.9, + "level": "full" + }, + "read": { + "us": 38916.7, "level": "full" } } @@ -3907,39 +4239,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 35389.3, + "us": 35111.1, "level": "full" }, "best_any": { "variant": "DOM", - "us": 35389.3, + "us": 35111.1, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 35378.8, + "us": 35264.0, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 35378.8, + "us": 35264.0, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 35378.8, + "DOM": { + "us": 35111.1, "level": "full" }, - "DOM": { - "us": 35389.3, + "DOM (reused)": { + "us": 35264.0, "level": "full" }, "On-Demand (reused)": { - "us": 36143.2, + "us": 35698.0, "level": "full" }, "On-Demand": { - "us": 36151.8, + "us": 35730.0, "level": "full" } } @@ -3948,14 +4280,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 48845.2, + "us": 48687.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 48845.2, + "us": 48687.5, "level": "no UTF-8" } } @@ -3963,35 +4295,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 100545.3, + "us": 99763.0, "level": "full" }, "best_any": { - "variant": "generic (double, strict)", - "us": 100545.3, - "level": "full" + "variant": "generic (double)", + "us": 99629.9, + "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double, strict)": { - "us": 100545.3, - "level": "full" - }, "generic (double)": { - "us": 101081.2, + "us": 99629.9, "level": "partial" }, + "generic (double, strict)": { + "us": 99763.0, + "level": "full" + }, "generic (strict)": { - "us": 144474.7, + "us": 141016.3, "level": "full" }, "generic": { - "us": 145725.6, + "us": 141315.6, "level": "partial" }, "lazy_json": { - "us": 150463.6, + "us": 149334.4, "level": "partial" } }, @@ -4002,95 +4334,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 55144.7, + "us": 53704.2, "level": "full" }, "best_any": { "variant": "SAX", - "us": 55144.7, + "us": 53704.2, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 54808.2, + "us": 53956.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 54808.2, + "us": 53956.3, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 54808.2, + "SAX": { + "us": 53704.2, "level": "full" }, - "SAX": { - "us": 55144.7, + "SAX (reused)": { + "us": 53956.3, "level": "full" }, "parser (reused)": { - "us": 97284.9, + "us": 95269.8, "level": "full" }, "parse": { - "us": 97480.4, + "us": 96281.3, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 149509.1, + "variant": "SAX (string stream)", + "us": 136103.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 71696.7, + "us": 72226.9, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 165510.0, + "us": 163157.3, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 151351.8, + "us": 149474.4, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 71696.7, + "insitu (copy untimed) (no encoding check)": { + "us": 69604.5, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 72226.9, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 72406.0, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 136103.0, + "level": "full" + }, "SAX (no encoding check)": { - "us": 137181.9, + "us": 136834.2, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 149509.1, + "insitu (copy untimed)": { + "us": 145645.6, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 151351.8, + "us": 149474.4, "level": "no UTF-8" }, + "insitu (copy)": { + "us": 149723.9, + "level": "full" + }, "Document (no encoding check)": { - "us": 154019.9, + "us": 151254.2, "level": "no UTF-8" }, "SAX": { - "us": 154067.7, + "us": 152317.3, "level": "full" }, "Document (reused allocator)": { - "us": 165510.0, + "us": 163157.3, "level": "full" }, "Document": { - "us": 166855.7, + "us": 166280.8, "level": "full" } } @@ -4210,25 +4558,29 @@ "parse": { "us": 1.2, "level": "full" + }, + "parse_copy": { + "us": 1.3, + "level": "full" } } }, "nlohmann json": { "best": { "variant": "sax", - "us": 2.5, + "us": 2.4, "level": "full" }, "best_any": { "variant": "sax", - "us": 2.5, + "us": 2.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 2.5, + "us": 2.4, "level": "full" }, "parse": { @@ -4259,6 +4611,10 @@ "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 1.1, + "level": "full" + }, "read (reused allocator)": { "us": 1.1, "level": "full" @@ -4381,12 +4737,12 @@ }, "best_reused": { "variant": "SAX (reused)", - "us": 2.4, + "us": 2.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 2.4, + "us": 2.3, "level": "full" }, "variants": { @@ -4395,7 +4751,7 @@ "level": "full" }, "SAX (reused)": { - "us": 2.4, + "us": 2.3, "level": "full" }, "parser (reused)": { @@ -4411,7 +4767,7 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 6.2, + "us": 6.1, "level": "full" }, "best_any": { @@ -4421,7 +4777,7 @@ }, "best_reused": { "variant": "Document (reused allocator)", - "us": 6.6, + "us": 6.5, "level": "full" }, "best_reused_any": { @@ -4434,8 +4790,16 @@ "us": 2.9, "level": "no UTF-8" }, + "insitu (copy untimed) (no encoding check)": { + "us": 2.9, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 3.1, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 5.4, + "us": 5.3, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { @@ -4443,21 +4807,29 @@ "level": "no UTF-8" }, "SAX": { - "us": 6.2, + "us": 6.1, + "level": "full" + }, + "SAX (string stream)": { + "us": 6.1, "level": "full" }, "Document (no encoding check)": { - "us": 6.2, + "us": 6.3, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 6.6, + "us": 6.5, "level": "full" }, "insitu (copy)": { "us": 6.7, "level": "full" }, + "insitu (copy untimed)": { + "us": 6.7, + "level": "full" + }, "Document": { "us": 7.1, "level": "full" @@ -4553,31 +4925,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 208.5, + "us": 205.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 208.5, + "us": 205.0, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 204.3, + "us": 198.9, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 204.3, + "us": 198.9, "level": "full" }, "variants": { "read (reused)": { - "us": 204.3, + "us": 198.9, "level": "full" }, "parse": { - "us": 208.5, + "us": 205.0, + "level": "full" + }, + "parse_copy": { + "us": 211.0, "level": "full" } } @@ -4585,23 +4961,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 421.9, + "us": 415.3, "level": "full" }, "best_any": { "variant": "sax", - "us": 421.9, + "us": 415.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 421.9, + "us": 415.3, "level": "full" }, "parse": { - "us": 1393.2, + "us": 1386.9, "level": "full" } } @@ -4609,35 +4985,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 211.7, + "us": 212.2, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 211.7, + "us": 212.2, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 214.0, + "us": 207.3, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 214.0, + "us": 207.3, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 211.7, + "insitu (copy untimed)": { + "us": 199.6, "level": "full" }, "read (reused allocator)": { - "us": 214.0, + "us": 207.3, + "level": "full" + }, + "insitu (copy)": { + "us": 212.2, "level": "full" }, "read": { - "us": 214.4, + "us": 213.6, "level": "full" } } @@ -4645,39 +5025,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 228.5, + "us": 222.1, "level": "full" }, "best_any": { "variant": "DOM", - "us": 228.5, + "us": 222.1, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 227.4, + "us": 224.0, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 227.4, + "us": 224.0, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 227.4, + "DOM": { + "us": 222.1, "level": "full" }, - "DOM": { - "us": 228.5, + "DOM (reused)": { + "us": 224.0, "level": "full" }, "On-Demand (reused)": { - "us": 231.8, + "us": 231.7, "level": "full" }, "On-Demand": { - "us": 237.5, + "us": 232.5, "level": "full" } } @@ -4686,14 +5066,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 309.5, + "us": 303.9, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 309.5, + "us": 303.9, "level": "no UTF-8" } } @@ -4701,35 +5081,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 900.5, + "us": 886.5, "level": "full" }, "best_any": { - "variant": "generic (double)", - "us": 898.3, - "level": "partial" + "variant": "generic (double, strict)", + "us": 886.5, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double)": { - "us": 898.3, - "level": "partial" - }, "generic (double, strict)": { - "us": 900.5, + "us": 886.5, "level": "full" }, - "generic (strict)": { - "us": 1238.0, - "level": "full" + "generic (double)": { + "us": 886.8, + "level": "partial" }, "generic": { - "us": 1239.5, + "us": 1228.9, "level": "partial" }, + "generic (strict)": { + "us": 1231.7, + "level": "full" + }, "lazy_json": { - "us": 1335.3, + "us": 1327.8, "level": "partial" } }, @@ -4740,95 +5120,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 459.7, + "us": 452.5, "level": "full" }, "best_any": { "variant": "SAX", - "us": 459.7, + "us": 452.5, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 458.2, + "us": 452.5, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 458.2, + "us": 452.5, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 458.2, + "SAX": { + "us": 452.5, "level": "full" }, - "SAX": { - "us": 459.7, + "SAX (reused)": { + "us": 452.5, "level": "full" }, "parser (reused)": { - "us": 835.5, + "us": 827.1, "level": "full" }, "parse": { - "us": 839.3, + "us": 830.2, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 1140.7, + "variant": "SAX", + "us": 1115.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 532.4, + "us": 538.9, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1229.2, + "us": 1204.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1079.5, + "us": 1061.2, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 522.0, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 532.4, + "us": 538.9, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 557.8, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 982.5, + "us": 972.0, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1079.5, + "us": 1061.2, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1082.4, + "us": 1067.5, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 1140.7, + "SAX": { + "us": 1115.7, "level": "full" }, - "SAX": { - "us": 1148.3, + "insitu (copy untimed)": { + "us": 1123.6, + "level": "full" + }, + "insitu (copy)": { + "us": 1125.9, + "level": "full" + }, + "SAX (string stream)": { + "us": 1126.8, "level": "full" }, "Document (reused allocator)": { - "us": 1229.2, + "us": 1204.4, "level": "full" }, "Document": { - "us": 1239.6, + "us": 1212.6, "level": "full" } } @@ -4922,31 +5318,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 371.2, + "us": 369.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 371.2, + "us": 369.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 371.0, + "us": 367.1, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 371.0, + "us": 367.1, "level": "full" }, "variants": { "read (reused)": { - "us": 371.0, + "us": 367.1, "level": "full" }, "parse": { - "us": 371.2, + "us": 369.2, + "level": "full" + }, + "parse_copy": { + "us": 376.8, "level": "full" } } @@ -4954,59 +5354,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 797.3, + "us": 779.7, "level": "full" }, "best_any": { "variant": "sax", - "us": 797.3, + "us": 779.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 797.3, + "us": 779.7, "level": "full" }, "parse": { - "us": 2444.5, + "us": 2411.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 386.9, + "variant": "read", + "us": 384.0, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 386.9, + "variant": "read", + "us": 384.0, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 386.3, + "us": 382.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 386.3, + "us": 382.2, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 386.3, + "insitu (copy untimed)": { + "us": 372.7, "level": "full" }, - "insitu (copy)": { - "us": 386.9, + "read (reused allocator)": { + "us": 382.2, "level": "full" }, "read": { - "us": 387.5, + "us": 384.0, + "level": "full" + }, + "insitu (copy)": { + "us": 386.1, "level": "full" } } @@ -5014,39 +5418,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 445.8, + "us": 441.5, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 445.8, + "us": 441.5, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 447.3, + "us": 446.3, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 447.3, + "us": 446.3, "level": "full" }, "variants": { "On-Demand": { - "us": 445.8, + "us": 441.5, "level": "full" }, "On-Demand (reused)": { - "us": 447.3, + "us": 446.3, "level": "full" }, "DOM (reused)": { - "us": 460.0, + "us": 457.8, "level": "full" }, "DOM": { - "us": 461.8, + "us": 464.2, "level": "full" } } @@ -5055,14 +5459,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 654.3, + "us": 651.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 654.3, + "us": 651.2, "level": "no UTF-8" } } @@ -5070,35 +5474,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 1747.0, + "us": 1716.8, "level": "full" }, "best_any": { "variant": "generic (double)", - "us": 1739.5, + "us": 1698.8, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (double)": { - "us": 1739.5, + "us": 1698.8, "level": "partial" }, "generic (double, strict)": { - "us": 1747.0, - "level": "full" - }, - "generic (strict)": { - "us": 2506.0, + "us": 1716.8, "level": "full" }, "generic": { - "us": 2523.7, + "us": 2482.6, "level": "partial" }, + "generic (strict)": { + "us": 2514.5, + "level": "full" + }, "lazy_json": { - "us": 2689.2, + "us": 2642.2, "level": "partial" } }, @@ -5109,95 +5513,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 464.0, + "us": 464.2, "level": "full" }, "best_any": { "variant": "SAX", - "us": 464.0, + "us": 464.2, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 464.2, + "us": 464.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 464.2, + "us": 464.3, "level": "full" }, "variants": { "SAX": { - "us": 464.0, - "level": "full" - }, - "SAX (reused)": { "us": 464.2, "level": "full" }, - "parser (reused)": { - "us": 1054.0, + "SAX (reused)": { + "us": 464.3, "level": "full" }, "parse": { - "us": 1055.8, + "us": 1042.3, + "level": "full" + }, + "parser (reused)": { + "us": 1046.2, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 1151.5, + "variant": "SAX (string stream)", + "us": 1055.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 869.7, + "us": 848.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1357.4, + "us": 1338.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1264.8, + "us": 1254.5, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 838.9, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 869.7, + "us": 848.7, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 860.0, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1041.3, + "us": 1038.6, "level": "no UTF-8" }, + "SAX (string stream)": { + "us": 1055.3, + "level": "full" + }, "SAX": { - "us": 1151.5, + "us": 1129.1, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 1211.2, "level": "full" }, "insitu (copy)": { - "us": 1230.2, + "us": 1218.6, "level": "full" }, "Document (no encoding check)": { - "us": 1263.9, + "us": 1248.4, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1264.8, + "us": 1254.5, "level": "no UTF-8" }, "Document": { - "us": 1344.6, + "us": 1321.5, "level": "full" }, "Document (reused allocator)": { - "us": 1357.4, + "us": 1338.1, "level": "full" } } @@ -5293,59 +5713,63 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 185.9, + "us": 184.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 185.9, + "us": 184.3, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 179.6, + "us": 179.1, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 179.6, + "us": 179.1, "level": "full" }, "variants": { "read (reused)": { - "us": 179.6, + "us": 179.1, "level": "full" }, "parse": { - "us": 185.9, + "us": 184.3, "level": "full" }, "structs (from_json)": { - "us": 188.2, + "us": 185.2, + "level": "full" + }, + "parse_copy": { + "us": 193.5, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 1360.2, + "variant": "structs (from_json)", + "us": 1360.0, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1360.2, + "variant": "structs (from_json)", + "us": 1360.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 1360.2, + "structs (from_json)": { + "us": 1360.0, "level": "full" }, - "structs (from_json)": { - "us": 1364.1, + "parse": { + "us": 1366.5, "level": "full" } } @@ -5353,39 +5777,43 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 190.7, + "us": 190.2, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 190.7, + "us": 190.2, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 193.3, + "us": 193.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 193.3, + "us": 193.1, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 178.4, + "level": "full" + }, "insitu (copy)": { - "us": 190.7, + "us": 190.2, "level": "full" }, "read (reused allocator)": { - "us": 193.3, + "us": 193.1, "level": "full" }, "read": { - "us": 195.0, + "us": 196.0, "level": "full" }, "read (raw numbers)": { - "us": 205.8, + "us": 205.6, "level": "full" } } @@ -5393,47 +5821,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 202.5, + "us": 195.7, "level": "full" }, "best_any": { "variant": "On-Demand structs", - "us": 128.2, + "us": 126.6, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 206.0, + "us": 194.6, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 139.0, + "us": 137.0, "level": "partial" }, "variants": { "On-Demand structs": { - "us": 128.2, + "us": 126.6, "level": "partial" }, "On-Demand (key selectors)": { - "us": 133.7, - "level": "partial" - }, - "On-Demand (reused)": { - "us": 139.0, + "us": 131.0, "level": "partial" }, "On-Demand": { - "us": 139.2, + "us": 135.2, "level": "partial" }, - "DOM": { - "us": 202.5, - "level": "full" + "On-Demand (reused)": { + "us": 137.0, + "level": "partial" }, "DOM (reused)": { - "us": 206.0, + "us": 194.6, + "level": "full" + }, + "DOM": { + "us": 195.7, "level": "full" } } @@ -5442,14 +5870,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 385.0, + "us": 384.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 385.0, + "us": 384.8, "level": "no UTF-8" } } @@ -5457,44 +5885,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 312.8, + "us": 311.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 239.0, + "us": 241.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 239.0, + "us": 241.4, "level": "partial" }, "structs (validate_skipped)": { - "us": 312.8, + "us": 311.2, "level": "full" }, "lazy_json": { - "us": 692.8, - "level": "partial" - }, - "generic (double)": { - "us": 980.2, + "us": 723.7, "level": "partial" }, "generic (double, strict)": { - "us": 983.5, + "us": 973.2, "level": "full" }, - "generic (strict)": { - "us": 1333.4, - "level": "full" + "generic (double)": { + "us": 978.5, + "level": "partial" }, "generic": { - "us": 1338.0, + "us": 1326.6, "level": "partial" + }, + "generic (strict)": { + "us": 1331.8, + "level": "full" } }, "excluded": { @@ -5504,35 +5932,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 619.5, + "us": 617.1, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 619.5, + "us": 617.1, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 878.3, + "us": 881.0, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 878.3, + "us": 881.0, "level": "full" }, "variants": { "parse_into structs": { - "us": 619.5, + "us": 617.1, "level": "full" }, "parser (reused)": { - "us": 878.3, + "us": 881.0, "level": "full" }, "parse": { - "us": 880.9, + "us": 886.0, "level": "full" } }, @@ -5543,55 +5971,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1315.7, + "us": 1318.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 702.1, + "us": 690.0, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1363.6, + "us": 1358.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1187.4, + "us": 1186.8, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 678.8, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 702.1, + "us": 690.0, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 886.0, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1187.4, + "us": 1186.8, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1198.3, + "us": 1200.5, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 1210.5, + "us": 1204.8, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 1315.7, + "insitu (copy untimed)": { + "us": 1303.9, "level": "full" }, - "Document": { - "us": 1356.3, + "insitu (copy)": { + "us": 1318.3, "level": "full" }, "Document (reused allocator)": { - "us": 1363.6, + "us": 1358.1, + "level": "full" + }, + "Document": { + "us": 1362.2, "level": "full" }, "Document (raw numbers)": { - "us": 1368.8, + "us": 1370.5, + "level": "full" + }, + "Document (string stream)": { + "us": 1431.8, "level": "full" } } @@ -5677,35 +6121,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 362.7, + "us": 362.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 362.7, + "us": 362.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 362.7, + "us": 361.9, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 362.7, + "us": 361.9, "level": "full" }, "variants": { - "parse": { - "us": 362.7, + "read (reused)": { + "us": 361.9, "level": "full" }, - "read (reused)": { - "us": 362.7, + "parse": { + "us": 362.8, "level": "full" }, "structs (from_json)": { - "us": 378.8, + "us": 379.5, + "level": "full" + }, + "parse_copy": { + "us": 390.8, "level": "full" } } @@ -5713,63 +6161,67 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 2407.2, + "us": 2416.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 2407.2, + "us": 2416.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 2407.2, + "us": 2416.3, "level": "full" }, "structs (from_json)": { - "us": 2408.7, + "us": 2429.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 475.5, + "variant": "insitu (copy)", + "us": 478.9, "level": "full" }, "best_any": { - "variant": "read", - "us": 475.5, + "variant": "insitu (copy)", + "us": 478.9, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 490.8, + "us": 494.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 490.8, + "us": 494.4, "level": "full" }, "variants": { - "read": { - "us": 475.5, + "insitu (copy untimed)": { + "us": 455.6, "level": "full" }, "insitu (copy)": { - "us": 478.0, + "us": 478.9, + "level": "full" + }, + "read": { + "us": 483.8, "level": "full" }, "read (reused allocator)": { - "us": 490.8, + "us": 494.4, "level": "full" }, "read (raw numbers)": { - "us": 539.6, + "us": 538.2, "level": "full" } } @@ -5777,47 +6229,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 453.7, + "us": 449.8, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 353.3, + "us": 354.2, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 451.8, + "us": 447.0, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 351.5, + "us": 351.9, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 351.5, + "us": 351.9, "level": "partial" }, "On-Demand": { - "us": 353.3, + "us": 354.2, "level": "partial" }, "On-Demand (key selectors)": { - "us": 358.0, + "us": 362.8, "level": "partial" }, "On-Demand structs": { - "us": 372.1, + "us": 371.1, "level": "partial" }, "DOM (reused)": { - "us": 451.8, + "us": 447.0, "level": "full" }, "DOM": { - "us": 453.7, + "us": 449.8, "level": "full" } } @@ -5826,14 +6278,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 990.8, + "us": 990.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 990.8, + "us": 990.0, "level": "no UTF-8" } } @@ -5841,43 +6293,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 849.2, + "us": 854.4, "level": "full" }, "best_any": { "variant": "structs", - "us": 257.5, + "us": 255.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 257.5, + "us": 255.1, "level": "partial" }, "structs (validate_skipped)": { - "us": 849.2, + "us": 854.4, "level": "full" }, "generic (double, strict)": { - "us": 1950.8, + "us": 1951.3, "level": "full" }, "generic (double)": { - "us": 1952.2, + "us": 1953.0, "level": "partial" }, "generic (strict)": { - "us": 2740.9, + "us": 2744.5, "level": "full" }, "generic": { - "us": 2753.3, + "us": 2745.9, "level": "partial" }, "lazy_json": { - "us": 5165.1, + "us": 5155.3, "level": "partial" } }, @@ -5898,12 +6350,12 @@ }, "best_reused": { "variant": "parser (reused)", - "us": 1494.7, + "us": 1489.8, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1494.7, + "us": 1489.8, "level": "full" }, "variants": { @@ -5912,11 +6364,11 @@ "level": "full" }, "parser (reused)": { - "us": 1494.7, + "us": 1489.8, "level": "full" }, "parse": { - "us": 1495.2, + "us": 1493.0, "level": "full" } }, @@ -5927,55 +6379,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1568.8, + "us": 1590.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1168.6, + "us": 1157.9, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1694.4, + "us": 1691.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1616.8, + "us": 1612.0, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1168.6, + "insitu (copy untimed) (no encoding check)": { + "us": 1125.7, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 1157.9, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1291.4, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1554.3, + "level": "full" + }, "insitu (copy)": { - "us": 1568.8, + "us": 1590.2, + "level": "full" + }, + "Document (string stream)": { + "us": 1594.0, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1616.8, + "us": 1612.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1617.4, - "level": "no UTF-8" - }, - "Document (raw numbers) (no encoding check)": { - "us": 1688.7, + "us": 1621.7, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1694.4, + "us": 1691.1, "level": "full" }, + "Document (raw numbers) (no encoding check)": { + "us": 1697.8, + "level": "no UTF-8" + }, "Document": { - "us": 1705.4, + "us": 1704.6, "level": "full" }, "Document (raw numbers)": { - "us": 1769.4, + "us": 1777.5, "level": "full" } } @@ -6061,35 +6529,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 927.5, + "us": 956.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 927.5, + "us": 956.4, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 927.6, + "us": 956.0, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 927.6, + "us": 956.0, "level": "full" }, "variants": { - "parse": { - "us": 927.5, + "read (reused)": { + "us": 956.0, "level": "full" }, - "read (reused)": { - "us": 927.6, + "parse": { + "us": 956.4, "level": "full" }, "structs (from_json)": { - "us": 927.9, + "us": 962.8, + "level": "full" + }, + "parse_copy": { + "us": 999.8, "level": "full" } } @@ -6097,23 +6569,23 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 6040.6, + "us": 6047.2, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 6040.6, + "us": 6047.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 6040.6, + "us": 6047.2, "level": "full" }, "parse": { - "us": 6046.2, + "us": 6055.2, "level": "full" } } @@ -6121,39 +6593,43 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 1489.8, + "us": 1484.6, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 1489.8, + "us": 1484.6, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 1490.6, + "us": 1492.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 1490.6, + "us": 1492.2, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 1461.4, + "level": "full" + }, "insitu (copy)": { - "us": 1489.8, + "us": 1484.6, "level": "full" }, "read (reused allocator)": { - "us": 1490.6, + "us": 1492.2, "level": "full" }, "read": { - "us": 1498.0, + "us": 1493.8, "level": "full" }, "read (raw numbers)": { - "us": 1730.4, + "us": 1729.4, "level": "full" } } @@ -6161,47 +6637,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 1885.6, + "us": 1886.2, "level": "full" }, "best_any": { "variant": "On-Demand (key selectors)", - "us": 565.8, + "us": 566.2, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 1886.9, + "us": 1883.7, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 565.1, + "us": 573.2, "level": "partial" }, "variants": { - "On-Demand (reused)": { - "us": 565.1, - "level": "partial" - }, "On-Demand (key selectors)": { - "us": 565.8, + "us": 566.2, "level": "partial" }, "On-Demand": { - "us": 566.0, + "us": 567.0, + "level": "partial" + }, + "On-Demand (reused)": { + "us": 573.2, "level": "partial" }, "On-Demand structs": { - "us": 694.6, + "us": 697.8, "level": "partial" }, - "DOM": { - "us": 1885.6, + "DOM (reused)": { + "us": 1883.7, "level": "full" }, - "DOM (reused)": { - "us": 1886.9, + "DOM": { + "us": 1886.2, "level": "full" } } @@ -6210,14 +6686,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 2585.3, + "us": 2585.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 2585.3, + "us": 2585.5, "level": "no UTF-8" } } @@ -6225,43 +6701,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1302.1, + "us": 1315.8, "level": "full" }, "best_any": { "variant": "structs", - "us": 310.4, + "us": 313.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 310.4, + "us": 313.3, "level": "partial" }, "structs (validate_skipped)": { - "us": 1302.1, + "us": 1315.8, "level": "full" }, "lazy_json": { - "us": 1993.7, + "us": 1993.4, + "level": "partial" + }, + "generic (double)": { + "us": 5937.2, "level": "partial" }, "generic (double, strict)": { - "us": 5901.6, + "us": 5942.6, "level": "full" }, - "generic (double)": { - "us": 5974.2, - "level": "partial" - }, "generic (strict)": { - "us": 9227.3, + "us": 9359.8, "level": "full" }, "generic": { - "us": 9231.1, + "us": 9409.2, "level": "partial" } }, @@ -6272,35 +6748,35 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 3633.5, + "us": 3650.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 3633.5, + "us": 3650.1, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 3616.4, + "us": 3669.6, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 3616.4, + "us": 3669.6, "level": "full" }, "variants": { - "parser (reused)": { - "us": 3616.4, + "parse": { + "us": 3650.1, "level": "full" }, - "parse": { - "us": 3633.5, + "parser (reused)": { + "us": 3669.6, "level": "full" }, "parse_into structs": { - "us": 3768.2, + "us": 3773.2, "level": "full" } }, @@ -6310,57 +6786,73 @@ }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 6799.5, + "variant": "Document (string stream)", + "us": 6776.0, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 6799.1, - "level": "no UTF-8" + "variant": "Document (string stream)", + "us": 6776.0, + "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 7349.4, + "us": 7377.9, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 7341.9, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 7377.9, + "level": "full" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 6799.1, - "level": "no UTF-8" + "Document (string stream)": { + "us": 6776.0, + "level": "full" }, "insitu (copy)": { - "us": 6799.5, + "us": 6799.9, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 6825.8, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 6857.2, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 6865.2, + "level": "full" + }, + "insitu (copy) (no encoding check)": { + "us": 6872.9, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 7347.1, + "level": "no UTF-8" + }, + "Document": { + "us": 7358.0, + "level": "full" + }, + "Document (reused allocator)": { + "us": 7377.9, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 7341.9, + "us": 7422.8, "level": "no UTF-8" }, - "Document (reused allocator)": { - "us": 7349.4, - "level": "full" - }, - "Document": { - "us": 7359.5, - "level": "full" - }, - "Document (no encoding check)": { - "us": 7376.4, + "Document (raw numbers) (no encoding check)": { + "us": 9466.5, "level": "no UTF-8" }, "Document (raw numbers)": { - "us": 9444.0, + "us": 9559.0, "level": "full" - }, - "Document (raw numbers) (no encoding check)": { - "us": 9469.7, - "level": "no UTF-8" } } }, @@ -6445,35 +6937,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 25032.1, + "us": 24991.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 25032.1, + "us": 24991.3, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 24617.8, + "us": 24108.3, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 24617.8, + "us": 24108.3, "level": "full" }, "variants": { "read (reused)": { - "us": 24617.8, + "us": 24108.3, "level": "full" }, "parse": { - "us": 25032.1, + "us": 24991.3, + "level": "full" + }, + "parse_copy": { + "us": 26098.8, "level": "full" }, "structs (from_json)": { - "us": 30873.2, + "us": 30575.1, "level": "full" } } @@ -6481,23 +6977,23 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 180705.2, + "us": 179533.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 180705.2, + "us": 179533.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 180705.2, + "us": 179533.0, "level": "full" }, "structs (from_json)": { - "us": 182467.2, + "us": 183413.8, "level": "full" } } @@ -6505,39 +7001,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 33077.5, + "us": 33002.2, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 33077.5, + "us": 33002.2, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 33788.2, + "us": 33930.3, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 33788.2, + "us": 33930.3, "level": "full" }, "variants": { - "read (raw numbers)": { - "us": 33077.5, + "insitu (copy untimed)": { + "us": 32514.5, "level": "full" }, - "read": { - "us": 33709.1, + "read (raw numbers)": { + "us": 33002.2, "level": "full" }, "read (reused allocator)": { - "us": 33788.2, + "us": 33930.3, + "level": "full" + }, + "read": { + "us": 34016.8, "level": "full" }, "insitu (copy)": { - "us": 33901.2, + "us": 34161.8, "level": "full" } } @@ -6545,47 +7045,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 30891.8, + "us": 30504.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 19832.2, + "us": 19562.1, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 30849.8, + "us": 30308.7, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 19444.8, + "us": 19607.0, "level": "partial" }, "variants": { - "On-Demand (reused)": { - "us": 19444.8, + "On-Demand": { + "us": 19562.1, "level": "partial" }, - "On-Demand": { - "us": 19832.2, + "On-Demand (reused)": { + "us": 19607.0, "level": "partial" }, "On-Demand (key selectors)": { - "us": 22174.0, + "us": 22068.9, "level": "partial" }, "On-Demand structs": { - "us": 27758.5, + "us": 27406.3, "level": "partial" }, "DOM (reused)": { - "us": 30849.8, + "us": 30308.7, "level": "full" }, "DOM": { - "us": 30891.8, + "us": 30504.0, "level": "full" } } @@ -6594,14 +7094,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 46396.5, + "us": 45858.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 46396.5, + "us": 45858.5, "level": "no UTF-8" } } @@ -6609,43 +7109,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 47314.8, + "us": 46924.4, "level": "full" }, "best_any": { "variant": "structs", - "us": 37142.8, + "us": 37578.0, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 37142.8, + "us": 37578.0, "level": "partial" }, "structs (validate_skipped)": { - "us": 47314.8, + "us": 46924.4, "level": "full" }, "generic (double, strict)": { - "us": 95804.7, + "us": 95348.5, "level": "full" }, "generic (double)": { - "us": 96031.6, + "us": 95425.0, "level": "partial" }, "lazy_json": { - "us": 101320.8, + "us": 98994.3, "level": "partial" }, "generic (strict)": { - "us": 139642.2, + "us": 136975.1, "level": "full" }, "generic": { - "us": 140696.5, + "us": 137208.3, "level": "partial" } }, @@ -6656,35 +7156,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 67861.2, + "us": 67255.4, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 67861.2, + "us": 67255.4, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 95851.9, + "us": 94889.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 95851.9, + "us": 94889.2, "level": "full" }, "variants": { "parse_into structs": { - "us": 67861.2, - "level": "full" - }, - "parser (reused)": { - "us": 95851.9, + "us": 67255.4, "level": "full" }, "parse": { - "us": 97058.1, + "us": 94295.5, + "level": "full" + }, + "parser (reused)": { + "us": 94889.2, "level": "full" } }, @@ -6695,55 +7195,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 145957.9, + "us": 144436.2, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 68045.2, + "us": 67089.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 160854.2, + "us": 157473.5, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 147010.8, + "us": 145266.0, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 68045.2, + "insitu (copy untimed) (no encoding check)": { + "us": 65624.6, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 67089.8, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 86510.8, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 141509.4, + "level": "full" + }, "insitu (copy)": { - "us": 145957.9, + "us": 144436.2, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 147010.8, + "us": 145266.0, "level": "no UTF-8" }, + "Document (string stream)": { + "us": 146474.4, + "level": "full" + }, "Document (raw numbers) (no encoding check)": { - "us": 148843.0, + "us": 147821.3, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 149432.4, + "us": 148806.2, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 160854.2, + "us": 157473.5, "level": "full" }, "Document": { - "us": 162240.4, + "us": 161788.8, "level": "full" }, "Document (raw numbers)": { - "us": 162931.6, + "us": 162254.5, "level": "full" } } @@ -6857,6 +7373,10 @@ "level": "full" }, "structs (from_json)": { + "us": 1.0, + "level": "full" + }, + "parse_copy": { "us": 1.1, "level": "full" } @@ -6865,23 +7385,23 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 7.7, + "us": 7.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 7.7, + "us": 7.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 7.7, + "us": 7.6, "level": "full" }, "structs (from_json)": { - "us": 7.7, + "us": 7.6, "level": "full" } } @@ -6908,6 +7428,10 @@ "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 1.0, + "level": "full" + }, "read (reused allocator)": { "us": 1.0, "level": "full" @@ -7068,7 +7592,7 @@ "level": "full" }, "parse": { - "us": 3.9, + "us": 3.8, "level": "full" } }, @@ -7089,7 +7613,7 @@ }, "best_reused": { "variant": "Document (reused allocator)", - "us": 6.4, + "us": 6.3, "level": "full" }, "best_reused_any": { @@ -7098,10 +7622,18 @@ "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 2.6, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { "us": 2.7, "level": "no UTF-8" }, + "Document (string stream) (no encoding check)": { + "us": 3.8, + "level": "no UTF-8" + }, "Document (reused allocator) (no encoding check)": { "us": 5.5, "level": "no UTF-8" @@ -7111,23 +7643,31 @@ "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 6.2, + "us": 6.1, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 6.4, + "us": 6.3, "level": "full" }, "insitu (copy)": { "us": 6.5, "level": "full" }, + "insitu (copy untimed)": { + "us": 6.5, + "level": "full" + }, "Document": { - "us": 6.9, + "us": 6.8, + "level": "full" + }, + "Document (string stream)": { + "us": 6.8, "level": "full" }, "Document (raw numbers)": { - "us": 7.0, + "us": 6.9, "level": "full" } } @@ -7213,59 +7753,63 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 164.6, + "us": 165.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 164.6, + "us": 165.1, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 163.6, + "us": 160.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 163.6, + "us": 160.2, "level": "full" }, "variants": { "read (reused)": { - "us": 163.6, + "us": 160.2, "level": "full" }, "parse": { - "us": 164.6, + "us": 165.1, "level": "full" }, "structs (from_json)": { - "us": 168.5, + "us": 165.5, + "level": "full" + }, + "parse_copy": { + "us": 171.0, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 1337.4, + "variant": "structs (from_json)", + "us": 1331.1, "level": "full" }, "best_any": { - "variant": "parse", - "us": 1337.4, + "variant": "structs (from_json)", + "us": 1331.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 1337.4, + "structs (from_json)": { + "us": 1331.1, "level": "full" }, - "structs (from_json)": { - "us": 1338.3, + "parse": { + "us": 1333.0, "level": "full" } } @@ -7273,39 +7817,43 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 170.8, + "us": 169.3, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 170.8, + "us": 169.3, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 166.9, + "us": 169.7, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 166.9, + "us": 169.7, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 166.9, + "insitu (copy untimed)": { + "us": 159.0, "level": "full" }, "insitu (copy)": { - "us": 170.8, + "us": 169.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 169.7, "level": "full" }, "read": { - "us": 171.4, + "us": 175.3, "level": "full" }, "read (raw numbers)": { - "us": 187.2, + "us": 189.2, "level": "full" } } @@ -7313,47 +7861,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 180.8, + "us": 171.2, "level": "full" }, "best_any": { "variant": "On-Demand structs", - "us": 110.6, + "us": 105.9, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 185.4, + "us": 176.5, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 120.6, + "us": 117.6, "level": "partial" }, "variants": { "On-Demand structs": { - "us": 110.6, + "us": 105.9, "level": "partial" }, "On-Demand (key selectors)": { - "us": 112.9, + "us": 115.2, "level": "partial" }, "On-Demand": { - "us": 119.6, + "us": 115.6, "level": "partial" }, "On-Demand (reused)": { - "us": 120.6, + "us": 117.6, "level": "partial" }, "DOM": { - "us": 180.8, + "us": 171.2, "level": "full" }, "DOM (reused)": { - "us": 185.4, + "us": 176.5, "level": "full" } } @@ -7362,14 +7910,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 266.7, + "us": 261.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 266.7, + "us": 261.5, "level": "no UTF-8" } } @@ -7377,44 +7925,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 269.0, + "us": 264.0, "level": "full" }, "best_any": { "variant": "structs", - "us": 219.9, + "us": 216.6, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 219.9, + "us": 216.6, "level": "partial" }, "structs (validate_skipped)": { - "us": 269.0, + "us": 264.0, "level": "full" }, "lazy_json": { - "us": 436.0, + "us": 450.2, + "level": "partial" + }, + "generic (double)": { + "us": 889.6, "level": "partial" }, "generic (double, strict)": { - "us": 885.6, - "level": "full" - }, - "generic (double)": { - "us": 901.8, - "level": "partial" - }, - "generic (strict)": { - "us": 1241.5, + "us": 891.2, "level": "full" }, "generic": { - "us": 1242.0, + "us": 1232.0, "level": "partial" + }, + "generic (strict)": { + "us": 1234.8, + "level": "full" } }, "excluded": { @@ -7424,35 +7972,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 548.7, + "us": 539.9, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 548.7, + "us": 539.9, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 794.3, + "us": 787.9, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 794.3, + "us": 787.9, "level": "full" }, "variants": { "parse_into structs": { - "us": 548.7, + "us": 539.9, "level": "full" }, "parser (reused)": { - "us": 794.3, + "us": 787.9, "level": "full" }, "parse": { - "us": 803.9, + "us": 795.6, "level": "full" } }, @@ -7463,55 +8011,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1095.2, + "us": 1090.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 484.4, + "us": 485.6, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1183.7, + "us": 1161.6, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1031.8, + "us": 1026.3, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 482.4, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 484.4, + "us": 485.6, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 666.8, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1031.8, + "us": 1026.3, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1036.8, + "us": 1027.3, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 1057.7, + "us": 1046.8, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1082.0, + "level": "full" + }, "insitu (copy)": { - "us": 1095.2, + "us": 1090.3, + "level": "full" + }, + "Document (string stream)": { + "us": 1159.7, "level": "full" }, "Document (reused allocator)": { - "us": 1183.7, + "us": 1161.6, "level": "full" }, "Document": { - "us": 1194.1, + "us": 1173.4, "level": "full" }, "Document (raw numbers)": { - "us": 1209.2, + "us": 1188.2, "level": "full" } } @@ -7597,35 +8161,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 250.4, + "us": 247.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 250.4, + "us": 247.1, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 250.1, + "us": 245.4, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 250.1, + "us": 245.4, "level": "full" }, "variants": { "read (reused)": { - "us": 250.1, + "us": 245.4, "level": "full" }, "parse": { - "us": 250.4, + "us": 247.1, + "level": "full" + }, + "parse_copy": { + "us": 254.4, "level": "full" }, "structs (from_json)": { - "us": 266.5, + "us": 262.1, "level": "full" } } @@ -7633,63 +8201,67 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 2321.0, + "us": 2287.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 2321.0, + "us": 2287.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 2321.0, + "us": 2287.4, "level": "full" }, "structs (from_json)": { - "us": 2329.0, + "us": 2293.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 290.6, + "variant": "insitu (copy)", + "us": 284.2, "level": "full" }, "best_any": { - "variant": "read", - "us": 290.6, + "variant": "insitu (copy)", + "us": 284.2, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 291.0, + "us": 289.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 291.0, + "us": 289.0, "level": "full" }, "variants": { - "read": { - "us": 290.6, - "level": "full" - }, - "read (reused allocator)": { - "us": 291.0, + "insitu (copy untimed)": { + "us": 277.2, "level": "full" }, "insitu (copy)": { - "us": 291.1, + "us": 284.2, + "level": "full" + }, + "read (reused allocator)": { + "us": 289.0, + "level": "full" + }, + "read": { + "us": 289.3, "level": "full" }, "read (raw numbers)": { - "us": 349.8, + "us": 349.0, "level": "full" } } @@ -7697,47 +8269,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 328.3, + "us": 327.9, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 223.8, + "us": 221.5, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 325.5, + "us": 325.2, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 223.4, + "us": 222.2, "level": "partial" }, "variants": { - "On-Demand (reused)": { - "us": 223.4, + "On-Demand": { + "us": 221.5, "level": "partial" }, - "On-Demand": { - "us": 223.8, + "On-Demand (reused)": { + "us": 222.2, "level": "partial" }, "On-Demand (key selectors)": { - "us": 228.0, + "us": 224.7, "level": "partial" }, "On-Demand structs": { - "us": 242.8, + "us": 240.0, "level": "partial" }, "DOM (reused)": { - "us": 325.5, + "us": 325.2, "level": "full" }, "DOM": { - "us": 328.3, + "us": 327.9, "level": "full" } } @@ -7746,14 +8318,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 558.4, + "us": 555.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 558.4, + "us": 555.4, "level": "no UTF-8" } } @@ -7761,43 +8333,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 480.0, + "us": 469.6, "level": "full" }, "best_any": { "variant": "structs", - "us": 131.9, + "us": 129.9, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 131.9, + "us": 129.9, "level": "partial" }, "structs (validate_skipped)": { - "us": 480.0, + "us": 469.6, "level": "full" }, "lazy_json": { - "us": 1290.9, + "us": 1269.0, "level": "partial" }, "generic (double)": { - "us": 1640.1, + "us": 1610.8, "level": "partial" }, "generic (double, strict)": { - "us": 1641.1, + "us": 1637.5, "level": "full" }, "generic (strict)": { - "us": 2412.0, + "us": 2376.0, "level": "full" }, "generic": { - "us": 2421.1, + "us": 2390.6, "level": "partial" } }, @@ -7808,35 +8380,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 703.9, + "us": 691.7, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 703.9, + "us": 691.7, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 967.0, + "us": 959.3, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 967.0, + "us": 959.3, "level": "full" }, "variants": { "parse_into structs": { - "us": 703.9, - "level": "full" - }, - "parser (reused)": { - "us": 967.0, + "us": 691.7, "level": "full" }, "parse": { - "us": 970.0, + "us": 956.2, + "level": "full" + }, + "parser (reused)": { + "us": 959.3, "level": "full" } }, @@ -7847,55 +8419,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1131.0, + "us": 1125.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 766.8, + "us": 759.9, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1255.6, + "us": 1226.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1161.8, + "us": 1140.9, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 766.8, + "insitu (copy untimed) (no encoding check)": { + "us": 748.7, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 759.9, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 998.2, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1121.1, + "level": "full" + }, "insitu (copy)": { - "us": 1131.0, + "us": 1125.3, "level": "full" }, "Document (no encoding check)": { - "us": 1160.5, + "us": 1132.7, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1161.8, + "us": 1140.9, "level": "no UTF-8" }, + "Document (string stream)": { + "us": 1152.3, + "level": "full" + }, "Document": { - "us": 1237.7, + "us": 1218.8, "level": "full" }, "Document (reused allocator)": { - "us": 1255.6, + "us": 1226.4, "level": "full" }, "Document (raw numbers) (no encoding check)": { - "us": 1383.4, + "us": 1381.0, "level": "no UTF-8" }, "Document (raw numbers)": { - "us": 1457.2, + "us": 1443.1, "level": "full" } } @@ -7982,24 +8570,24 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "editable", - "us": 283.0, + "variant": "editable (source numbers)", + "us": 282.8, "level": "full" }, "best_any": { - "variant": "editable", - "us": 283.0, + "variant": "editable (source numbers)", + "us": 282.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "editable": { - "us": 283.0, + "editable (source numbers)": { + "us": 282.8, "level": "full" }, - "editable (source numbers)": { - "us": 283.7, + "editable": { + "us": 291.0, "level": "full" } } @@ -8007,47 +8595,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 1266.0, + "us": 1273.0, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 1266.0, + "us": 1273.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 1266.0, + "us": 1273.0, "level": "full" }, "parse": { - "us": 1617.0, + "us": 1617.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 440.6, + "variant": "insitu (copy) + mut copy", + "us": 439.6, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 440.6, + "variant": "insitu (copy) + mut copy", + "us": 439.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "mut copy": { - "us": 440.6, + "insitu (copy untimed) + mut copy": { + "us": 426.7, "level": "full" }, "insitu (copy) + mut copy": { - "us": 449.2, + "us": 439.6, + "level": "full" + }, + "mut copy": { + "us": 443.3, "level": "full" } } @@ -8056,14 +8648,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 489.9, + "us": 486.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 489.9, + "us": 486.0, "level": "no UTF-8" } } @@ -8071,23 +8663,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 1529.1, + "us": 1539.1, "level": "full" }, "best_any": { "variant": "generic", - "us": 1523.4, + "us": 1522.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 1523.4, + "us": 1522.3, "level": "partial" }, "generic (strict)": { - "us": 1529.1, + "us": 1539.1, "level": "full" } }, @@ -8099,19 +8691,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1367.0, + "us": 1367.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 1367.0, + "us": 1367.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1367.0, + "us": 1367.5, "level": "full" } } @@ -8119,19 +8711,27 @@ "RapidJSON": { "best": { "variant": "Document", - "us": 1923.9, + "us": 1921.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1354.5, + "us": 1356.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1343.5, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1354.5, + "us": 1356.4, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1486.8, "level": "no UTF-8" }, "Document (no encoding check)": { @@ -8139,11 +8739,19 @@ "level": "no UTF-8" }, "Document": { - "us": 1923.9, + "us": 1921.7, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 1932.2, "level": "full" }, "insitu (copy)": { - "us": 1937.7, + "us": 1938.6, + "level": "full" + }, + "Document (string stream)": { + "us": 2012.1, "level": "full" } } @@ -8216,24 +8824,24 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", + "variant": "editable", "us": 559.5, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", + "variant": "editable", "us": 559.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "editable (source numbers)": { + "editable": { "us": 559.5, "level": "full" }, - "editable": { - "us": 562.7, + "editable (source numbers)": { + "us": 560.4, "level": "full" } } @@ -8241,23 +8849,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2328.6, + "us": 2344.5, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2328.6, + "us": 2344.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 2328.6, + "us": 2344.5, "level": "full" }, "parse": { - "us": 2729.2, + "us": 2734.6, "level": "full" } } @@ -8265,23 +8873,27 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 903.8, + "us": 909.2, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 903.8, + "us": 909.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 881.9, + "level": "full" + }, "insitu (copy) + mut copy": { - "us": 903.8, + "us": 909.2, "level": "full" }, "mut copy": { - "us": 907.2, + "us": 911.0, "level": "full" } } @@ -8290,14 +8902,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1228.8, + "us": 1223.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1228.8, + "us": 1223.8, "level": "no UTF-8" } } @@ -8305,24 +8917,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3231.2, + "us": 3235.2, "level": "full" }, "best_any": { - "variant": "generic (strict)", - "us": 3231.2, - "level": "full" + "variant": "generic", + "us": 3230.2, + "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (strict)": { - "us": 3231.2, - "level": "full" - }, "generic": { - "us": 3236.9, + "us": 3230.2, "level": "partial" + }, + "generic (strict)": { + "us": 3235.2, + "level": "full" } }, "excluded": { @@ -8333,19 +8945,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1999.8, + "us": 1992.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 1999.8, + "us": 1992.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1999.8, + "us": 1992.5, "level": "full" } } @@ -8353,31 +8965,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2403.9, + "us": 2426.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 2001.3, + "us": 2001.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 2001.3, + "insitu (copy untimed) (no encoding check)": { + "us": 1964.0, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 2001.5, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 2148.2, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 2387.9, + "level": "full" + }, "insitu (copy)": { - "us": 2403.9, + "us": 2426.0, + "level": "full" + }, + "Document (string stream)": { + "us": 2433.3, "level": "full" }, "Document (no encoding check)": { - "us": 2450.3, + "us": 2461.9, "level": "no UTF-8" }, "Document": { - "us": 2527.0, + "us": 2534.7, "level": "full" } } @@ -8451,23 +9079,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 1448.4, + "us": 1484.0, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 1448.4, + "us": 1484.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 1448.4, + "us": 1484.0, "level": "full" }, "editable": { - "us": 2741.0, + "us": 2764.6, "level": "full" } } @@ -8475,23 +9103,23 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 8305.1, + "us": 8334.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 8305.1, + "us": 8334.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 8305.1, + "us": 8334.2, "level": "full" }, "ordered_json": { - "us": 8360.3, + "us": 8408.0, "level": "full" } } @@ -8499,23 +9127,27 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 3699.7, + "us": 3728.2, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 3699.7, + "us": 3728.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 3641.7, + "level": "full" + }, "mut copy": { - "us": 3699.7, + "us": 3728.2, "level": "full" }, "insitu (copy) + mut copy": { - "us": 3717.7, + "us": 3747.4, "level": "full" } } @@ -8524,14 +9156,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 5652.9, + "us": 5638.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 5652.9, + "us": 5638.4, "level": "no UTF-8" } } @@ -8539,24 +9171,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 10937.8, + "us": 11083.2, "level": "full" }, "best_any": { - "variant": "generic", - "us": 10921.1, - "level": "partial" + "variant": "generic (strict)", + "us": 11083.2, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic": { - "us": 10921.1, - "level": "partial" - }, "generic (strict)": { - "us": 10937.8, + "us": 11083.2, "level": "full" + }, + "generic": { + "us": 11123.5, + "level": "partial" } }, "excluded": { @@ -8567,52 +9199,68 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 6557.5, + "us": 6572.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 6557.5, + "us": 6572.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 6557.5, + "us": 6572.8, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 13830.3, + "variant": "Document (string stream)", + "us": 13835.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 13824.6, - "level": "no UTF-8" + "variant": "Document (string stream)", + "us": 13835.7, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 13824.6, + "insitu (copy untimed) (no encoding check)": { + "us": 13793.7, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 13835.7, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 13873.8, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 13879.1, "level": "no UTF-8" }, "insitu (copy)": { - "us": 13830.3, + "us": 13892.9, "level": "full" }, - "Document": { - "us": 14346.0, - "level": "full" + "insitu (copy) (no encoding check)": { + "us": 13899.6, + "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 14354.3, + "us": 14435.8, "level": "no UTF-8" + }, + "Document": { + "us": 14525.4, + "level": "full" } } }, @@ -8685,23 +9333,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 58343.8, + "us": 57634.6, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 58343.8, + "us": 57634.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 58343.8, + "us": 57634.6, "level": "full" }, "editable": { - "us": 58469.5, + "us": 58057.4, "level": "full" } } @@ -8709,23 +9357,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 199819.1, + "us": 203232.0, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 199819.1, + "us": 203232.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 199819.1, + "us": 203232.0, "level": "full" }, "parse": { - "us": 281756.4, + "us": 244854.9, "level": "full" } } @@ -8733,23 +9381,27 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 85478.1, + "us": 84242.4, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 85478.1, + "us": 84242.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 84238.9, + "level": "full" + }, "insitu (copy) + mut copy": { - "us": 85478.1, + "us": 84242.4, "level": "full" }, "mut copy": { - "us": 85521.7, + "us": 84575.2, "level": "full" } } @@ -8758,14 +9410,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 63913.9, + "us": 62688.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 63913.9, + "us": 62688.4, "level": "no UTF-8" } } @@ -8773,24 +9425,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 180097.8, + "us": 178332.9, "level": "full" }, "best_any": { - "variant": "generic (strict)", - "us": 180097.8, - "level": "full" + "variant": "generic", + "us": 176396.9, + "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (strict)": { - "us": 180097.8, - "level": "full" - }, "generic": { - "us": 180188.4, + "us": 176396.9, "level": "partial" + }, + "generic (strict)": { + "us": 178332.9, + "level": "full" } }, "excluded": { @@ -8801,19 +9453,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 159052.7, + "us": 155237.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 159052.7, + "us": 155237.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 159052.7, + "us": 155237.3, "level": "full" } } @@ -8821,31 +9473,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 226139.2, + "us": 224246.6, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 148686.3, + "us": 145819.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 144741.2, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 148686.3, + "us": 145819.4, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 226097.2, + "Document (string stream) (no encoding check)": { + "us": 164924.7, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 226139.2, + "insitu (copy untimed)": { + "us": 221270.2, "level": "full" }, + "insitu (copy)": { + "us": 224246.6, + "level": "full" + }, + "Document (string stream)": { + "us": 224879.1, + "level": "full" + }, + "Document (no encoding check)": { + "us": 225430.5, + "level": "no UTF-8" + }, "Document": { - "us": 239101.2, + "us": 240143.2, "level": "full" } } @@ -8966,23 +9634,27 @@ }, "yyjson": { "best": { - "variant": "mut copy", - "us": 2.5, + "variant": "insitu (copy) + mut copy", + "us": 2.4, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 2.5, + "variant": "insitu (copy) + mut copy", + "us": 2.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "mut copy": { - "us": 2.5, + "insitu (copy) + mut copy": { + "us": 2.4, "level": "full" }, - "insitu (copy) + mut copy": { + "insitu (copy untimed) + mut copy": { + "us": 2.4, + "level": "full" + }, + "mut copy": { "us": 2.5, "level": "full" } @@ -9007,23 +9679,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 8.4, + "us": 8.3, "level": "full" }, "best_any": { "variant": "generic", - "us": 8.4, + "us": 8.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 8.4, + "us": 8.3, "level": "partial" }, "generic (strict)": { - "us": 8.4, + "us": 8.3, "level": "full" } }, @@ -9066,20 +9738,36 @@ "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 6.5, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { "us": 6.6, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 9.7, + "Document (string stream) (no encoding check)": { + "us": 7.6, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 9.8, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 10.3, + "level": "full" + }, "insitu (copy)": { "us": 10.4, "level": "full" }, "Document": { - "us": 10.7, + "us": 10.5, + "level": "full" + }, + "Document (string stream)": { + "us": 10.6, "level": "full" } } @@ -9153,23 +9841,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 267.0, + "us": 260.5, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 267.0, + "us": 260.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 267.0, + "us": 260.5, "level": "full" }, "editable": { - "us": 267.7, + "us": 264.0, "level": "full" } } @@ -9177,47 +9865,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 1252.2, + "us": 1238.4, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 1252.2, + "us": 1238.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 1252.2, + "us": 1238.4, "level": "full" }, "parse": { - "us": 1598.2, + "us": 1570.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 423.8, + "variant": "insitu (copy) + mut copy", + "us": 410.8, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 423.8, + "variant": "insitu (copy) + mut copy", + "us": 410.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "mut copy": { - "us": 423.8, + "insitu (copy) + mut copy": { + "us": 410.8, "level": "full" }, - "insitu (copy) + mut copy": { - "us": 425.1, + "insitu (copy untimed) + mut copy": { + "us": 413.5, + "level": "full" + }, + "mut copy": { + "us": 416.3, "level": "full" } } @@ -9226,14 +9918,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 368.2, + "us": 359.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 368.2, + "us": 359.7, "level": "no UTF-8" } } @@ -9241,23 +9933,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 1436.1, + "us": 1424.6, "level": "full" }, "best_any": { "variant": "generic", - "us": 1425.0, + "us": 1415.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 1425.0, + "us": 1415.1, "level": "partial" }, "generic (strict)": { - "us": 1436.1, + "us": 1424.6, "level": "full" } }, @@ -9269,19 +9961,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1293.2, + "us": 1268.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 1293.2, + "us": 1268.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1293.2, + "us": 1268.2, "level": "full" } } @@ -9289,31 +9981,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1708.5, + "us": 1685.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1138.6, + "us": 1129.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1123.6, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1138.6, + "us": 1129.6, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1238.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1605.0, + "us": 1575.2, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1682.0, + "level": "full" + }, "insitu (copy)": { - "us": 1708.5, + "us": 1685.7, "level": "full" }, "Document": { - "us": 1747.7, + "us": 1720.0, + "level": "full" + }, + "Document (string stream)": { + "us": 1721.3, "level": "full" } } @@ -9387,23 +10095,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 446.6, + "us": 442.6, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 446.6, + "us": 442.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 446.6, + "us": 442.6, "level": "full" }, "editable": { - "us": 450.2, + "us": 444.7, "level": "full" } } @@ -9411,47 +10119,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2214.8, + "us": 2222.5, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2214.8, + "us": 2222.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 2214.8, + "us": 2222.5, "level": "full" }, "parse": { - "us": 2633.9, + "us": 2598.0, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 719.9, + "variant": "insitu (copy) + mut copy", + "us": 704.0, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 719.9, + "variant": "insitu (copy) + mut copy", + "us": 704.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "mut copy": { - "us": 719.9, + "insitu (copy untimed) + mut copy": { + "us": 700.5, "level": "full" }, "insitu (copy) + mut copy": { - "us": 720.5, + "us": 704.0, + "level": "full" + }, + "mut copy": { + "us": 712.1, "level": "full" } } @@ -9460,14 +10172,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 790.4, + "us": 774.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 790.4, + "us": 774.2, "level": "no UTF-8" } } @@ -9475,23 +10187,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 2901.3, + "us": 2911.8, "level": "full" }, "best_any": { "variant": "generic", - "us": 2901.2, + "us": 2897.2, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 2901.2, + "us": 2897.2, "level": "partial" }, "generic (strict)": { - "us": 2901.3, + "us": 2911.8, "level": "full" } }, @@ -9503,19 +10215,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1480.5, + "us": 1463.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 1480.5, + "us": 1463.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1480.5, + "us": 1463.3, "level": "full" } } @@ -9523,31 +10235,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1976.2, + "us": 1969.5, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1608.6, + "us": 1587.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1608.6, + "insitu (copy untimed) (no encoding check)": { + "us": 1580.4, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 1976.2, + "insitu (copy) (no encoding check)": { + "us": 1587.5, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1824.4, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1948.5, "level": "full" }, "Document (no encoding check)": { - "us": 1989.1, + "us": 1950.3, "level": "no UTF-8" }, + "insitu (copy)": { + "us": 1969.5, + "level": "full" + }, + "Document (string stream)": { + "us": 1985.5, + "level": "full" + }, "Document": { - "us": 2066.6, + "us": 2033.5, "level": "full" } } @@ -9623,35 +10351,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 259.0, + "us": 252.4, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 259.0, + "us": 252.4, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 255.1, + "us": 246.9, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 255.1, + "us": 246.9, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 255.1, + "us": 246.9, "level": "full" }, "parse + dump (source numbers)": { - "us": 259.0, + "us": 252.4, "level": "full" }, "parse + dump": { - "us": 261.0, + "us": 259.4, + "level": "full" + }, + "parse_copy + dump": { + "us": 263.6, "level": "full" } } @@ -9659,59 +10391,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 1616.0, + "us": 1600.2, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 1616.0, + "us": 1600.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 1616.0, + "us": 1600.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 298.2, + "variant": "insitu (copy) + write", + "us": 292.9, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 298.2, + "variant": "insitu (copy) + write", + "us": 292.9, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 302.2, + "us": 298.2, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 302.2, + "us": 298.2, "level": "full" }, "variants": { - "read + write": { - "us": 298.2, + "insitu (copy untimed) + write": { + "us": 279.2, "level": "full" }, "insitu (copy) + write": { - "us": 302.2, + "us": 292.9, "level": "full" }, "read + write (reused allocator)": { - "us": 302.2, + "us": 298.2, + "level": "full" + }, + "read + write": { + "us": 300.2, "level": "full" }, "read (raw numbers) + write": { - "us": 310.0, + "us": 312.6, "level": "full" } } @@ -9719,35 +10455,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 573.7, + "us": 423.4, "level": "full" }, "best_any": { "variant": "minify", - "us": 61.5, + "us": 62.3, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 569.6, + "us": 417.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 569.6, + "us": 417.4, "level": "full" }, "variants": { "minify": { - "us": 61.5, + "us": 62.3, "level": "partial" }, "DOM (reused) + to_string": { - "us": 569.6, + "us": 417.4, "level": "full" }, "DOM + to_string": { - "us": 573.7, + "us": 423.4, "level": "full" } } @@ -9756,14 +10492,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 505.4, + "us": 500.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 505.4, + "us": 500.2, "level": "no UTF-8" } } @@ -9771,28 +10507,28 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 1516.8, + "us": 1505.4, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 285.4, + "us": 281.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 285.4, - "level": "partial" - }, - "generic": { - "us": 1514.4, + "us": 281.1, "level": "partial" }, "generic (strict)": { - "us": 1516.8, + "us": 1505.4, "level": "full" + }, + "generic": { + "us": 1518.0, + "level": "partial" } }, "excluded": { @@ -9803,87 +10539,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1384.1, + "us": 1393.2, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1384.1, + "us": 1393.2, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1388.6, + "us": 1410.6, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1388.6, + "us": 1410.6, "level": "full" }, "variants": { "parse + serialize": { - "us": 1384.1, + "us": 1393.2, "level": "full" }, "parser (reused) + serialize": { - "us": 1388.6, + "us": 1410.6, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 1512.5, + "variant": "SAX to Writer (raw numbers)", + "us": 1513.0, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1327.8, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 1058.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 1999.6, + "us": 1995.4, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 1807.8, + "us": 1824.8, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 1058.3, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 1327.8, + "us": 1315.2, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1333.5, + "us": 1352.4, "level": "no UTF-8" }, - "SAX to Writer": { - "us": 1512.5, + "SAX to Writer (raw numbers)": { + "us": 1513.0, "level": "full" }, - "SAX to Writer (raw numbers)": { - "us": 1513.9, + "SAX to Writer": { + "us": 1525.4, + "level": "full" + }, + "SAX to Writer (string stream)": { + "us": 1575.7, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 1799.0, + "us": 1798.8, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 1807.8, + "us": 1824.8, "level": "no UTF-8" }, - "Document + Writer": { - "us": 1992.7, + "Document + Writer (reused allocator)": { + "us": 1995.4, "level": "full" }, - "Document + Writer (reused allocator)": { - "us": 1999.6, + "Document + Writer": { + "us": 1996.8, "level": "full" } } @@ -9952,36 +10696,40 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 492.8, + "variant": "parse + dump", + "us": 493.3, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 492.8, + "variant": "parse + dump", + "us": 493.3, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 492.1, + "us": 492.3, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 492.1, + "us": 492.3, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 492.1, - "level": "full" - }, - "parse + dump (source numbers)": { - "us": 492.8, + "us": 492.3, "level": "full" }, "parse + dump": { - "us": 492.9, + "us": 493.3, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 493.6, + "level": "full" + }, + "parse_copy + dump": { + "us": 524.8, "level": "full" } } @@ -9989,59 +10737,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 2688.1, + "us": 2706.3, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 2688.1, + "us": 2706.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 2688.1, + "us": 2706.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 640.6, + "variant": "read + write", + "us": 648.2, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 640.6, + "variant": "read + write", + "us": 648.2, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 647.8, + "us": 654.2, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 647.8, + "us": 654.2, "level": "full" }, "variants": { - "insitu (copy) + write": { - "us": 640.6, + "insitu (copy untimed) + write": { + "us": 625.2, "level": "full" }, "read + write": { - "us": 641.0, + "us": 648.2, "level": "full" }, "read + write (reused allocator)": { - "us": 647.8, + "us": 654.2, + "level": "full" + }, + "insitu (copy) + write": { + "us": 657.3, "level": "full" }, "read (raw numbers) + write": { - "us": 709.7, + "us": 720.8, "level": "full" } } @@ -10049,35 +10801,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 927.9, + "us": 848.2, "level": "full" }, "best_any": { "variant": "minify", - "us": 168.2, + "us": 170.9, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 914.1, + "us": 881.8, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 914.1, + "us": 881.8, "level": "full" }, "variants": { "minify": { - "us": 168.2, + "us": 170.9, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 914.1, + "DOM + to_string": { + "us": 848.2, "level": "full" }, - "DOM + to_string": { - "us": 927.9, + "DOM (reused) + to_string": { + "us": 881.8, "level": "full" } } @@ -10086,14 +10838,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1224.0, + "us": 1220.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1224.0, + "us": 1220.5, "level": "no UTF-8" } } @@ -10101,27 +10853,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3219.6, + "us": 3225.4, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 796.3, + "us": 728.8, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 796.3, + "us": 728.8, "level": "partial" }, "generic": { - "us": 3205.6, + "us": 3209.1, "level": "partial" }, "generic (strict)": { - "us": 3219.6, + "us": 3225.4, "level": "full" } }, @@ -10133,87 +10885,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1989.9, + "us": 1986.5, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1989.9, + "us": 1986.5, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1990.5, + "us": 1982.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1990.5, + "us": 1982.2, "level": "full" }, "variants": { - "parse + serialize": { - "us": 1989.9, + "parser (reused) + serialize": { + "us": 1982.2, "level": "full" }, - "parser (reused) + serialize": { - "us": 1990.5, + "parse + serialize": { + "us": 1986.5, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 1815.7, + "variant": "SAX to Writer (string stream)", + "us": 1807.7, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1714.2, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 1485.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2562.8, + "us": 2519.6, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2454.9, + "us": 2449.8, "level": "no UTF-8" }, "variants": { - "SAX to Writer (no encoding check)": { - "us": 1714.2, + "SAX to Writer (string stream) (no encoding check)": { + "us": 1485.1, "level": "no UTF-8" }, + "SAX to Writer (no encoding check)": { + "us": 1718.8, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 1807.7, + "level": "full" + }, "SAX to Writer": { - "us": 1815.7, + "us": 1815.2, "level": "full" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1956.5, + "us": 1988.1, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 2064.8, + "us": 2097.4, "level": "full" }, - "Document + Writer (no encoding check)": { - "us": 2437.7, - "level": "no UTF-8" - }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 2454.9, + "us": 2449.8, "level": "no UTF-8" }, - "Document + Writer": { - "us": 2533.0, - "level": "full" + "Document + Writer (no encoding check)": { + "us": 2464.5, + "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 2562.8, + "us": 2519.6, + "level": "full" + }, + "Document + Writer": { + "us": 2537.3, "level": "full" } } @@ -10283,35 +11043,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 1328.4, + "us": 1359.9, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 1328.4, + "us": 1359.9, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 2552.9, + "us": 2610.6, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 2552.9, + "us": 2610.6, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 1328.4, + "us": 1359.9, "level": "full" }, "parse + dump": { - "us": 2549.8, + "us": 2581.5, "level": "full" }, "read + dump (reused)": { - "us": 2552.9, + "us": 2610.6, + "level": "full" + }, + "parse_copy + dump": { + "us": 2649.1, "level": "full" } } @@ -10319,19 +11083,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 8318.0, + "us": 8388.9, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 8318.0, + "us": 8388.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 8318.0, + "us": 8388.9, "level": "full" } } @@ -10339,39 +11103,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 2527.0, + "us": 2549.6, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 2527.0, + "us": 2549.6, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 3217.5, + "us": 3237.4, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 3217.5, + "us": 3237.4, "level": "full" }, "variants": { "read (raw numbers) + write": { - "us": 2527.0, + "us": 2549.6, "level": "full" }, - "read + write (reused allocator)": { - "us": 3217.5, - "level": "full" - }, - "insitu (copy) + write": { - "us": 3219.4, + "insitu (copy untimed) + write": { + "us": 3195.6, "level": "full" }, "read + write": { - "us": 3223.5, + "us": 3223.1, + "level": "full" + }, + "insitu (copy) + write": { + "us": 3225.6, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 3237.4, "level": "full" } } @@ -10379,35 +11147,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 5038.2, + "us": 5120.0, "level": "full" }, "best_any": { "variant": "minify", - "us": 226.7, + "us": 227.1, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 5090.9, + "us": 5115.5, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 5090.9, + "us": 5115.5, "level": "full" }, "variants": { "minify": { - "us": 226.7, + "us": 227.1, "level": "partial" }, - "DOM + to_string": { - "us": 5038.2, + "DOM (reused) + to_string": { + "us": 5115.5, "level": "full" }, - "DOM (reused) + to_string": { - "us": 5090.9, + "DOM + to_string": { + "us": 5120.0, "level": "full" } } @@ -10416,14 +11184,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 5660.8, + "us": 5676.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 5660.8, + "us": 5676.5, "level": "no UTF-8" } } @@ -10431,27 +11199,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 10919.7, + "us": 11092.4, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 1705.4, + "us": 1721.5, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 1705.4, + "us": 1721.5, "level": "partial" }, "generic (strict)": { - "us": 10919.7, + "us": 11092.4, "level": "full" }, "generic": { - "us": 10952.1, + "us": 11130.8, "level": "partial" } }, @@ -10463,31 +11231,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 6554.1, + "us": 6542.4, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 6554.1, + "us": 6542.4, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 6537.5, + "us": 6524.1, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 6537.5, + "us": 6524.1, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 6537.5, + "us": 6524.1, "level": "full" }, "parse + serialize": { - "us": 6554.1, + "us": 6542.4, "level": "full" } } @@ -10495,55 +11263,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 10903.5, + "us": 11009.0, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers)", - "us": 10903.5, - "level": "full" + "variant": "SAX to Writer (raw numbers) (no encoding check)", + "us": 10908.5, + "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 14337.0, + "us": 14370.9, "level": "full" }, "best_reused_any": { - "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 14295.4, - "level": "no UTF-8" + "variant": "Document + Writer (reused allocator)", + "us": 14370.9, + "level": "full" }, "variants": { + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 10908.5, + "level": "no UTF-8" + }, "SAX to Writer (raw numbers)": { - "us": 10903.5, + "us": 11009.0, "level": "full" }, - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 10914.0, + "Document + Writer (reused allocator)": { + "us": 14370.9, + "level": "full" + }, + "Document + Writer (no encoding check)": { + "us": 14434.6, "level": "no UTF-8" }, "Document + Writer": { - "us": 14281.0, + "us": 14460.5, "level": "full" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 14295.4, + "us": 14533.2, "level": "no UTF-8" }, - "Document + Writer (no encoding check)": { - "us": 14302.9, + "SAX to Writer (string stream) (no encoding check)": { + "us": 15103.5, "level": "no UTF-8" }, - "Document + Writer (reused allocator)": { - "us": 14337.0, + "SAX to Writer (string stream)": { + "us": 15111.3, "level": "full" }, "SAX to Writer": { - "us": 15502.7, + "us": 15554.3, "level": "full" }, "SAX to Writer (no encoding check)": { - "us": 15539.2, + "us": 15716.2, "level": "no UTF-8" } } @@ -10612,36 +11388,40 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "parse + dump", - "us": 37888.0, + "variant": "parse + dump (source numbers)", + "us": 37817.3, "level": "full" }, "best_any": { - "variant": "parse + dump", - "us": 37888.0, + "variant": "parse + dump (source numbers)", + "us": 37817.3, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 37414.0, + "us": 37523.8, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 37414.0, + "us": 37523.8, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 37414.0, - "level": "full" - }, - "parse + dump": { - "us": 37888.0, + "us": 37523.8, "level": "full" }, "parse + dump (source numbers)": { - "us": 37899.0, + "us": 37817.3, + "level": "full" + }, + "parse + dump": { + "us": 37882.5, + "level": "full" + }, + "parse_copy + dump": { + "us": 38976.6, "level": "full" } } @@ -10649,59 +11429,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 199578.8, + "us": 197745.3, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 199578.8, + "us": 197745.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 199578.8, + "us": 197745.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 51098.8, + "variant": "insitu (copy) + write", + "us": 51134.1, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 51098.8, + "variant": "insitu (copy) + write", + "us": 51134.1, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 51273.7, + "us": 51533.2, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 51273.7, + "us": 51533.2, "level": "full" }, "variants": { - "read + write": { - "us": 51098.8, - "level": "full" - }, - "read (raw numbers) + write": { - "us": 51139.1, - "level": "full" - }, - "read + write (reused allocator)": { - "us": 51273.7, + "insitu (copy untimed) + write": { + "us": 50820.6, "level": "full" }, "insitu (copy) + write": { - "us": 51282.8, + "us": 51134.1, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 51533.2, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 51608.1, + "level": "full" + }, + "read + write": { + "us": 51801.0, "level": "full" } } @@ -10709,35 +11493,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 82978.4, + "us": 61059.3, "level": "full" }, "best_any": { "variant": "minify", - "us": 5755.1, + "us": 5761.8, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 83305.5, + "us": 61143.8, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 83305.5, + "us": 61143.8, "level": "full" }, "variants": { "minify": { - "us": 5755.1, + "us": 5761.8, "level": "partial" }, "DOM + to_string": { - "us": 82978.4, + "us": 61059.3, "level": "full" }, "DOM (reused) + to_string": { - "us": 83305.5, + "us": 61143.8, "level": "full" } } @@ -10746,14 +11530,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 61985.2, + "us": 61235.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 61985.2, + "us": 61235.6, "level": "no UTF-8" } } @@ -10761,27 +11545,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 168662.2, + "us": 168854.8, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 40374.0, + "us": 39975.8, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 40374.0, + "us": 39975.8, "level": "partial" }, "generic": { - "us": 166416.5, + "us": 165922.9, "level": "partial" }, "generic (strict)": { - "us": 168662.2, + "us": 168854.8, "level": "full" } }, @@ -10793,87 +11577,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 155141.0, + "us": 154677.0, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 155141.0, + "us": 154677.0, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 154705.5, + "us": 153505.1, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 154705.5, + "us": 153505.1, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 154705.5, + "us": 153505.1, "level": "full" }, "parse + serialize": { - "us": 155141.0, + "us": 154677.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 180596.3, + "variant": "SAX to Writer (string stream)", + "us": 174558.2, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 167694.0, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 123119.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 241227.8, + "us": 239139.2, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 227442.0, + "us": 224809.3, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 123119.2, + "level": "no UTF-8" + }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 167694.0, + "us": 166787.6, "level": "no UTF-8" }, "SAX to Writer (no encoding check)": { - "us": 167843.2, + "us": 168330.2, "level": "no UTF-8" }, - "SAX to Writer": { - "us": 180596.3, + "SAX to Writer (string stream)": { + "us": 174558.2, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 180699.2, + "us": 180942.4, + "level": "full" + }, + "SAX to Writer": { + "us": 181643.3, "level": "full" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 227442.0, + "us": 224809.3, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 228983.7, + "us": 226786.8, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 241227.8, + "us": 239139.2, "level": "full" }, "Document + Writer": { - "us": 241884.4, + "us": 241392.5, "level": "full" } } @@ -10943,12 +11735,12 @@ "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": { @@ -10962,11 +11754,15 @@ "level": "full" }, "variants": { + "parse + dump": { + "us": 1.4, + "level": "full" + }, "read + dump (reused)": { "us": 1.4, "level": "full" }, - "parse + dump": { + "parse_copy + dump": { "us": 1.5, "level": "full" }, @@ -10979,19 +11775,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 8.7, + "us": 8.8, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 8.7, + "us": 8.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 8.7, + "us": 8.8, "level": "full" } } @@ -11030,6 +11826,10 @@ "us": 1.6, "level": "full" }, + "insitu (copy untimed) + write": { + "us": 1.6, + "level": "full" + }, "read (raw numbers) + write": { "us": 1.7, "level": "full" @@ -11039,7 +11839,7 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 3.6, + "us": 2.4, "level": "full" }, "best_any": { @@ -11049,12 +11849,12 @@ }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 3.4, + "us": 2.3, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 3.4, + "us": 2.3, "level": "full" }, "variants": { @@ -11063,11 +11863,11 @@ "level": "partial" }, "DOM (reused) + to_string": { - "us": 3.4, + "us": 2.3, "level": "full" }, "DOM + to_string": { - "us": 3.6, + "us": 2.4, "level": "full" } } @@ -11091,7 +11891,7 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 8.0, + "us": 8.1, "level": "full" }, "best_any": { @@ -11111,7 +11911,7 @@ "level": "partial" }, "generic (strict)": { - "us": 8.0, + "us": 8.1, "level": "full" } }, @@ -11123,31 +11923,31 @@ "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.5, + "us": 6.4, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 6.5, + "us": 6.4, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 6.5, + "us": 6.4, "level": "full" }, "parse + serialize": { - "us": 6.8, + "us": 6.7, "level": "full" } } @@ -11159,23 +11959,27 @@ "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 7.5, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 5.0, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 10.5, + "us": 10.2, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 9.6, + "us": 9.4, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 5.0, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 7.5, + "us": 7.4, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { @@ -11186,12 +11990,16 @@ "us": 8.1, "level": "full" }, + "SAX to Writer (string stream)": { + "us": 8.1, + "level": "full" + }, "SAX to Writer (raw numbers)": { - "us": 8.2, + "us": 8.1, "level": "full" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 9.6, + "us": 9.4, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { @@ -11199,11 +12007,11 @@ "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 10.5, + "us": 10.2, "level": "full" }, "Document + Writer": { - "us": 10.9, + "us": 10.7, "level": "full" } } @@ -11273,35 +12081,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 239.2, + "us": 233.0, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 239.2, + "us": 233.0, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 233.8, + "us": 227.8, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 233.8, + "us": 227.8, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 233.8, + "us": 227.8, "level": "full" }, "parse + dump (source numbers)": { - "us": 239.2, + "us": 233.0, "level": "full" }, "parse + dump": { - "us": 240.9, + "us": 235.4, + "level": "full" + }, + "parse_copy + dump": { + "us": 244.4, "level": "full" } } @@ -11309,59 +12121,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 1581.6, + "us": 1559.2, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 1581.6, + "us": 1559.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 1581.6, + "us": 1559.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 271.6, + "variant": "insitu (copy) + write", + "us": 269.9, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 271.6, + "variant": "insitu (copy) + write", + "us": 269.9, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 269.8, + "us": 269.4, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 269.8, + "us": 269.4, "level": "full" }, "variants": { - "read + write (reused allocator)": { - "us": 269.8, + "insitu (copy untimed) + write": { + "us": 267.0, "level": "full" }, - "read + write": { - "us": 271.6, + "read + write (reused allocator)": { + "us": 269.4, "level": "full" }, "insitu (copy) + write": { - "us": 275.5, + "us": 269.9, + "level": "full" + }, + "read + write": { + "us": 274.8, "level": "full" }, "read (raw numbers) + write": { - "us": 288.6, + "us": 283.8, "level": "full" } } @@ -11369,35 +12185,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 551.7, + "us": 397.3, "level": "full" }, "best_any": { "variant": "minify", - "us": 46.0, + "us": 45.2, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 538.1, + "us": 389.9, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 538.1, + "us": 389.9, "level": "full" }, "variants": { "minify": { - "us": 46.0, + "us": 45.2, "level": "partial" }, "DOM (reused) + to_string": { - "us": 538.1, + "us": 389.9, "level": "full" }, "DOM + to_string": { - "us": 551.7, + "us": 397.3, "level": "full" } } @@ -11406,14 +12222,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 378.4, + "us": 367.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 378.4, + "us": 367.2, "level": "no UTF-8" } } @@ -11421,27 +12237,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 1411.8, + "us": 1396.0, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 244.6, + "us": 241.9, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 244.6, + "us": 241.9, "level": "partial" }, "generic": { - "us": 1403.0, + "us": 1390.0, "level": "partial" }, "generic (strict)": { - "us": 1411.8, + "us": 1396.0, "level": "full" } }, @@ -11453,87 +12269,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1308.8, + "us": 1287.0, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1308.8, + "us": 1287.0, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1307.0, + "us": 1296.0, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1307.0, + "us": 1296.0, "level": "full" }, "variants": { - "parser (reused) + serialize": { - "us": 1307.0, + "parse + serialize": { + "us": 1287.0, "level": "full" }, - "parse + serialize": { - "us": 1308.8, + "parser (reused) + serialize": { + "us": 1296.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 1373.6, + "variant": "SAX to Writer (string stream)", + "us": 1340.0, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1254.1, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 839.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 1798.9, + "us": 1762.7, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 1653.2, + "us": 1618.5, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 839.7, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 1254.1, + "us": 1231.3, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1273.1, + "us": 1252.0, "level": "no UTF-8" }, + "SAX to Writer (string stream)": { + "us": 1340.0, + "level": "full" + }, "SAX to Writer": { - "us": 1373.6, + "us": 1353.2, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 1392.8, + "us": 1374.1, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 1639.5, + "us": 1609.3, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 1653.2, + "us": 1618.5, "level": "no UTF-8" }, - "Document + Writer (reused allocator)": { - "us": 1798.9, + "Document + Writer": { + "us": 1762.5, "level": "full" }, - "Document + Writer": { - "us": 1806.5, + "Document + Writer (reused allocator)": { + "us": 1762.7, "level": "full" } } @@ -11602,36 +12426,40 @@ "citm_catalog_min": { "nlohmann json_document": { "best": { - "variant": "parse + dump", - "us": 382.9, + "variant": "parse + dump (source numbers)", + "us": 376.9, "level": "full" }, "best_any": { - "variant": "parse + dump", - "us": 382.9, + "variant": "parse + dump (source numbers)", + "us": 376.9, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 382.3, + "us": 374.9, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 382.3, + "us": 374.9, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 382.3, - "level": "full" - }, - "parse + dump": { - "us": 382.9, + "us": 374.9, "level": "full" }, "parse + dump (source numbers)": { - "us": 383.9, + "us": 376.9, + "level": "full" + }, + "parse + dump": { + "us": 377.6, + "level": "full" + }, + "parse_copy + dump": { + "us": 385.4, "level": "full" } } @@ -11639,19 +12467,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 2598.2, + "us": 2564.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 2598.2, + "us": 2564.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 2598.2, + "us": 2564.5, "level": "full" } } @@ -11659,39 +12487,43 @@ "yyjson": { "best": { "variant": "read + write", - "us": 454.2, + "us": 448.9, "level": "full" }, "best_any": { "variant": "read + write", - "us": 454.2, + "us": 448.9, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 454.2, + "us": 450.9, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 454.2, + "us": 450.9, "level": "full" }, "variants": { - "read + write": { - "us": 454.2, + "insitu (copy untimed) + write": { + "us": 445.0, "level": "full" }, - "read + write (reused allocator)": { - "us": 454.2, + "read + write": { + "us": 448.9, "level": "full" }, "insitu (copy) + write": { - "us": 458.1, + "us": 449.2, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 450.9, "level": "full" }, "read (raw numbers) + write": { - "us": 522.2, + "us": 525.4, "level": "full" } } @@ -11699,35 +12531,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 800.4, + "us": 708.1, "level": "full" }, "best_any": { "variant": "minify", - "us": 49.3, + "us": 48.4, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 785.2, + "us": 740.5, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 785.2, + "us": 740.5, "level": "full" }, "variants": { "minify": { - "us": 49.3, + "us": 48.4, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 785.2, + "DOM + to_string": { + "us": 708.1, "level": "full" }, - "DOM + to_string": { - "us": 800.4, + "DOM (reused) + to_string": { + "us": 740.5, "level": "full" } } @@ -11736,14 +12568,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 788.9, + "us": 767.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 788.9, + "us": 767.0, "level": "no UTF-8" } } @@ -11751,28 +12583,28 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 2837.0, + "us": 2829.5, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 446.6, + "us": 438.7, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 446.6, + "us": 438.7, + "level": "partial" + }, + "generic": { + "us": 2825.5, "level": "partial" }, "generic (strict)": { - "us": 2837.0, + "us": 2829.5, "level": "full" - }, - "generic": { - "us": 2867.8, - "level": "partial" } }, "excluded": { @@ -11783,31 +12615,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1470.8, + "us": 1445.3, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1470.8, + "us": 1445.3, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1467.8, + "us": 1448.5, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1467.8, + "us": 1448.5, "level": "full" }, "variants": { - "parser (reused) + serialize": { - "us": 1467.8, + "parse + serialize": { + "us": 1445.3, "level": "full" }, - "parse + serialize": { - "us": 1470.8, + "parser (reused) + serialize": { + "us": 1448.5, "level": "full" } } @@ -11815,55 +12647,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 1472.7, + "us": 1457.4, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1414.0, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 1223.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2090.3, + "us": 2055.8, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2004.3, + "us": 1959.2, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 1223.2, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 1414.0, + "us": 1404.9, "level": "no UTF-8" }, "SAX to Writer": { - "us": 1472.7, + "us": 1457.4, + "level": "full" + }, + "SAX to Writer (string stream)": { + "us": 1476.6, "level": "full" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1729.2, + "us": 1694.9, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 1773.8, + "us": 1735.2, "level": "full" }, - "Document + Writer (no encoding check)": { - "us": 1992.8, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 1959.2, "level": "no UTF-8" }, - "Document + Writer (reused allocator) (no encoding check)": { - "us": 2004.3, + "Document + Writer (no encoding check)": { + "us": 1966.3, "level": "no UTF-8" }, "Document + Writer": { - "us": 2080.7, + "us": 2042.3, "level": "full" }, "Document + Writer (reused allocator)": { - "us": 2090.3, + "us": 2055.8, "level": "full" } } @@ -11935,23 +12775,23 @@ "nlohmann json_document": { "best": { "variant": "dump", - "us": 72.9, + "us": 74.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 72.9, + "us": 74.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 72.9, + "us": 74.3, "level": "n/a" }, "dump (source numbers)": { - "us": 73.8, + "us": 74.8, "level": "n/a" } } @@ -11959,19 +12799,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 215.7, + "us": 223.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 215.7, + "us": 223.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 215.7, + "us": 223.3, "level": "n/a" } } @@ -11979,19 +12819,19 @@ "yyjson": { "best": { "variant": "write", - "us": 103.4, + "us": 102.7, "level": "n/a" }, "best_any": { "variant": "write", - "us": 103.4, + "us": 102.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 103.4, + "us": 102.7, "level": "n/a" } } @@ -11999,19 +12839,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 341.6, + "us": 199.2, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 341.6, + "us": 199.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 341.6, + "us": 199.2, "level": "n/a" } } @@ -12019,19 +12859,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 597.5, + "us": 602.6, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 597.5, + "us": 602.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 597.5, + "us": 602.6, "level": "n/a" } } @@ -12039,19 +12879,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 113.2, + "us": 108.5, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 113.2, + "us": 108.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 113.2, + "us": 108.5, "level": "n/a" } } @@ -12059,23 +12899,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 213.4, + "us": 216.2, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 213.4, + "us": 216.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 213.4, + "us": 216.2, "level": "n/a" }, "generic (strict)": { - "us": 219.2, + "us": 226.0, "level": "n/a" } }, @@ -12087,19 +12927,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 499.3, + "us": 506.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 499.3, + "us": 506.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 499.3, + "us": 506.7, "level": "n/a" } } @@ -12169,23 +13009,23 @@ "nlohmann json_document": { "best": { "variant": "dump", - "us": 132.9, + "us": 133.8, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 132.9, + "us": 133.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 132.9, + "us": 133.8, "level": "n/a" }, "dump (source numbers)": { - "us": 133.9, + "us": 134.2, "level": "n/a" } } @@ -12193,19 +13033,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 285.6, + "us": 287.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 285.6, + "us": 287.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 285.6, + "us": 287.0, "level": "n/a" } } @@ -12213,19 +13053,19 @@ "yyjson": { "best": { "variant": "write", - "us": 164.7, + "us": 169.4, "level": "n/a" }, "best_any": { "variant": "write", - "us": 164.7, + "us": 169.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 164.7, + "us": 169.4, "level": "n/a" } } @@ -12233,19 +13073,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 448.5, + "us": 385.1, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 448.5, + "us": 385.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 448.5, + "us": 385.1, "level": "n/a" } } @@ -12253,19 +13093,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 822.4, + "us": 830.3, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 822.4, + "us": 830.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 822.4, + "us": 830.3, "level": "n/a" } } @@ -12273,19 +13113,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 235.8, + "us": 230.2, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 235.8, + "us": 230.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 235.8, + "us": 230.2, "level": "n/a" } } @@ -12293,23 +13133,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 469.6, + "us": 469.3, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 469.6, + "us": 469.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 469.6, + "us": 469.3, "level": "n/a" }, "generic (strict)": { - "us": 473.2, + "us": 473.3, "level": "n/a" } }, @@ -12321,19 +13161,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 503.7, + "us": 507.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 503.7, + "us": 507.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 503.7, + "us": 507.7, "level": "n/a" } } @@ -12403,23 +13243,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 399.7, + "us": 401.2, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 399.7, + "us": 401.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 399.7, + "us": 401.2, "level": "n/a" }, "dump": { - "us": 1622.2, + "us": 1621.2, "level": "n/a" } } @@ -12427,19 +13267,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 2250.0, + "us": 2275.8, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 2250.0, + "us": 2275.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 2250.0, + "us": 2275.8, "level": "n/a" } } @@ -12447,19 +13287,19 @@ "yyjson": { "best": { "variant": "write", - "us": 1718.9, + "us": 1731.3, "level": "n/a" }, "best_any": { "variant": "write", - "us": 1718.9, + "us": 1731.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 1718.9, + "us": 1731.3, "level": "n/a" } } @@ -12467,19 +13307,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 3195.5, + "us": 3241.4, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 3195.5, + "us": 3241.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 3195.5, + "us": 3241.4, "level": "n/a" } } @@ -12487,19 +13327,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 6889.4, + "us": 6995.1, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 6889.4, + "us": 6995.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 6889.4, + "us": 6995.1, "level": "n/a" } } @@ -12507,19 +13347,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 3045.7, + "us": 3093.4, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 3045.7, + "us": 3093.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 3045.7, + "us": 3093.4, "level": "n/a" } } @@ -12527,23 +13367,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 1704.9, + "us": 1720.0, "level": "n/a" }, "best_any": { "variant": "generic (strict)", - "us": 1704.9, + "us": 1720.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (strict)": { - "us": 1704.9, + "us": 1720.0, "level": "n/a" }, "generic": { - "us": 1707.6, + "us": 1720.5, "level": "n/a" } }, @@ -12555,19 +13395,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 2891.3, + "us": 2922.8, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 2891.3, + "us": 2922.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 2891.3, + "us": 2922.8, "level": "n/a" } } @@ -12636,24 +13476,24 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "dump (source numbers)", - "us": 14731.7, + "variant": "dump", + "us": 14757.0, "level": "n/a" }, "best_any": { - "variant": "dump (source numbers)", - "us": 14731.7, + "variant": "dump", + "us": 14757.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { - "dump (source numbers)": { - "us": 14731.7, + "dump": { + "us": 14757.0, "level": "n/a" }, - "dump": { - "us": 14734.8, + "dump (source numbers)": { + "us": 14803.2, "level": "n/a" } } @@ -12661,19 +13501,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 31183.3, + "us": 31825.4, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 31183.3, + "us": 31825.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 31183.3, + "us": 31825.4, "level": "n/a" } } @@ -12681,19 +13521,19 @@ "yyjson": { "best": { "variant": "write", - "us": 19992.9, + "us": 20087.0, "level": "n/a" }, "best_any": { "variant": "write", - "us": 19992.9, + "us": 20087.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 19992.9, + "us": 20087.0, "level": "n/a" } } @@ -12701,19 +13541,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 53775.8, + "us": 32208.3, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 53775.8, + "us": 32208.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 53775.8, + "us": 32208.3, "level": "n/a" } } @@ -12721,19 +13561,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 81405.8, + "us": 81149.7, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 81405.8, + "us": 81149.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 81405.8, + "us": 81149.7, "level": "n/a" } } @@ -12741,19 +13581,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 19953.2, + "us": 19651.3, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 19953.2, + "us": 19651.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 19953.2, + "us": 19651.3, "level": "n/a" } } @@ -12761,23 +13601,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 34047.4, + "us": 33933.8, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 34047.4, + "us": 33933.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 34047.4, + "us": 33933.8, "level": "n/a" }, "generic (strict)": { - "us": 36639.7, + "us": 36934.7, "level": "n/a" } }, @@ -12789,19 +13629,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 63231.0, + "us": 62583.4, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 63231.0, + "us": 62583.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 63231.0, + "us": 62583.4, "level": "n/a" } } @@ -12935,19 +13775,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 2.5, + "us": 1.3, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 2.5, + "us": 1.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 2.5, + "us": 1.3, "level": "n/a" } } @@ -12975,19 +13815,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" } } @@ -13104,24 +13944,24 @@ "twitter_min": { "nlohmann json_document": { "best": { - "variant": "dump", - "us": 74.0, + "variant": "dump (source numbers)", + "us": 73.2, "level": "n/a" }, "best_any": { - "variant": "dump", - "us": 74.0, + "variant": "dump (source numbers)", + "us": 73.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { - "dump": { - "us": 74.0, + "dump (source numbers)": { + "us": 73.2, "level": "n/a" }, - "dump (source numbers)": { - "us": 74.0, + "dump": { + "us": 73.3, "level": "n/a" } } @@ -13129,19 +13969,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 221.5, + "us": 219.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 221.5, + "us": 219.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 221.5, + "us": 219.0, "level": "n/a" } } @@ -13149,19 +13989,19 @@ "yyjson": { "best": { "variant": "write", - "us": 105.6, + "us": 100.8, "level": "n/a" }, "best_any": { "variant": "write", - "us": 105.6, + "us": 100.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 105.6, + "us": 100.8, "level": "n/a" } } @@ -13169,19 +14009,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 347.2, + "us": 198.0, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 347.2, + "us": 198.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 347.2, + "us": 198.0, "level": "n/a" } } @@ -13189,19 +14029,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 604.4, + "us": 592.9, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 604.4, + "us": 592.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 604.4, + "us": 592.9, "level": "n/a" } } @@ -13209,19 +14049,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 112.0, + "us": 104.6, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 112.0, + "us": 104.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 112.0, + "us": 104.6, "level": "n/a" } } @@ -13229,23 +14069,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 213.0, + "us": 210.8, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 213.0, + "us": 210.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 213.0, + "us": 210.8, "level": "n/a" }, "generic (strict)": { - "us": 222.0, + "us": 220.2, "level": "n/a" } }, @@ -13257,19 +14097,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 506.2, + "us": 498.6, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 506.2, + "us": 498.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 506.2, + "us": 498.6, "level": "n/a" } } @@ -13339,23 +14179,23 @@ "nlohmann json_document": { "best": { "variant": "dump", - "us": 135.6, + "us": 133.8, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 135.6, + "us": 133.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 135.6, + "us": 133.8, "level": "n/a" }, "dump (source numbers)": { - "us": 136.5, + "us": 134.4, "level": "n/a" } } @@ -13363,19 +14203,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 290.2, + "us": 287.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 290.2, + "us": 287.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 290.2, + "us": 287.3, "level": "n/a" } } @@ -13383,19 +14223,19 @@ "yyjson": { "best": { "variant": "write", - "us": 167.5, + "us": 172.0, "level": "n/a" }, "best_any": { "variant": "write", - "us": 167.5, + "us": 172.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 167.5, + "us": 172.0, "level": "n/a" } } @@ -13403,19 +14243,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 453.5, + "us": 386.2, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 453.5, + "us": 386.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 453.5, + "us": 386.2, "level": "n/a" } } @@ -13423,19 +14263,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 831.8, + "us": 826.2, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 831.8, + "us": 826.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 831.8, + "us": 826.2, "level": "n/a" } } @@ -13443,19 +14283,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 232.5, + "us": 225.2, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 232.5, + "us": 225.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 232.5, + "us": 225.2, "level": "n/a" } } @@ -13463,23 +14303,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 477.5, + "us": 474.5, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 477.5, + "us": 474.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 477.5, + "us": 474.5, "level": "n/a" }, "generic (strict)": { - "us": 479.8, + "us": 475.0, "level": "n/a" } }, @@ -13491,19 +14331,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 510.5, + "us": 512.1, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 510.5, + "us": 512.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 510.5, + "us": 512.1, "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 55eadc7da..fccea0a86 100644 --- a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-clang.json +++ b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-clang.json @@ -4,35 +4,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 253.5, + "us": 254.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 253.5, + "us": 254.6, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 295.2, + "us": 297.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 295.2, + "us": 297.6, "level": "full" }, "variants": { "accept": { - "us": 253.5, + "us": 254.6, "level": "full" }, "read (reused)": { - "us": 295.2, + "us": 297.6, "level": "full" }, "parse": { - "us": 300.5, + "us": 304.7, "level": "full" } } @@ -40,63 +40,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 654.5, + "us": 658.2, "level": "full" }, "best_any": { "variant": "accept", - "us": 654.5, + "us": 658.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 654.5, + "us": 658.2, "level": "full" }, "parse": { - "us": 3548.0, + "us": 3532.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 379.5, + "variant": "insitu (copy)", + "us": 380.3, "level": "full" }, "best_any": { - "variant": "read", - "us": 379.5, + "variant": "insitu (copy)", + "us": 380.3, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 384.3, + "us": 383.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 384.3, + "us": 383.8, "level": "full" }, "variants": { - "read": { - "us": 379.5, + "insitu (copy untimed)": { + "us": 334.0, "level": "full" }, "insitu (copy)": { - "us": 379.9, + "us": 380.3, "level": "full" }, "read (raw numbers)": { - "us": 380.4, + "us": 380.9, + "level": "full" + }, + "read": { + "us": 381.7, "level": "full" }, "read (reused allocator)": { - "us": 384.3, + "us": 383.8, "level": "full" } } @@ -104,31 +108,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 306.2, + "us": 305.5, "level": "full" }, "best_any": { "variant": "DOM", - "us": 306.2, + "us": 305.5, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 302.2, + "us": 305.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 302.2, + "us": 305.4, "level": "full" }, "variants": { "DOM (reused)": { - "us": 302.2, + "us": 305.4, "level": "full" }, "DOM": { - "us": 306.2, + "us": 305.5, "level": "full" } } @@ -137,14 +141,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 444.9, + "us": 447.9, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 444.9, + "us": 447.9, "level": "no UTF-8" } } @@ -152,35 +156,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 582.0, + "us": 587.9, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 582.0, + "us": 587.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 582.0, + "us": 587.9, + "level": "full" + }, + "generic (double, strict)": { + "us": 2348.7, "level": "full" }, "generic (double)": { - "us": 2317.6, + "us": 2364.0, "level": "partial" }, - "generic (double, strict)": { - "us": 2325.5, - "level": "full" - }, "generic (strict)": { - "us": 3342.4, + "us": 3393.6, "level": "full" }, "generic": { - "us": 3351.4, + "us": 3447.1, "level": "partial" } } @@ -188,47 +192,47 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 568.7, + "us": 570.7, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 568.7, + "us": 570.7, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 573.5, + "us": 575.6, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 573.5, + "us": 575.6, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 568.7, + "us": 570.7, "level": "full" }, "SAX": { - "us": 571.8, + "us": 573.8, "level": "full" }, "SAX (reused)": { - "us": 573.5, + "us": 575.6, "level": "full" }, "parse (numbers: none)": { - "us": 1206.7, + "us": 1193.7, "level": "full" }, "parser (reused)": { - "us": 1212.7, + "us": 1208.6, "level": "full" }, "parse": { - "us": 1217.9, + "us": 1209.1, "level": "full" } } @@ -236,63 +240,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1808.3, + "us": 1801.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1170.7, + "us": 1169.4, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2210.5, + "us": 2148.9, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1466.2, + "us": 1460.4, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1131.5, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1170.7, + "us": 1169.4, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1219.0, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1258.1, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 1282.0, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1314.2, + "us": 1296.3, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 1332.3, + "us": 1340.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1460.8, + "us": 1458.9, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1466.2, + "us": 1460.4, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1755.5, + "level": "full" + }, "insitu (copy)": { - "us": 1808.3, + "us": 1801.0, + "level": "full" + }, + "SAX (default precision)": { + "us": 1964.3, "level": "full" }, "SAX": { - "us": 2000.8, + "us": 2003.1, "level": "full" }, "SAX (raw numbers)": { - "us": 2028.5, + "us": 2032.9, "level": "full" }, - "Document": { - "us": 2163.3, + "SAX (string stream, default precision)": { + "us": 2103.7, + "level": "full" + }, + "SAX (string stream)": { + "us": 2115.6, "level": "full" }, "Document (reused allocator)": { - "us": 2210.5, + "us": 2148.9, + "level": "full" + }, + "Document": { + "us": 2212.2, "level": "full" } } @@ -390,35 +426,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 516.8, + "us": 511.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 516.8, + "us": 511.6, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 763.3, + "us": 770.3, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 763.3, + "us": 770.3, "level": "full" }, "variants": { "accept": { - "us": 516.8, - "level": "full" - }, - "read (reused)": { - "us": 763.3, + "us": 511.6, "level": "full" }, "parse": { - "us": 764.9, + "us": 746.0, + "level": "full" + }, + "read (reused)": { + "us": 770.3, "level": "full" } } @@ -426,63 +462,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 1283.4, + "us": 1389.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 1283.4, + "us": 1389.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 1283.4, + "us": 1389.6, "level": "full" }, "parse": { - "us": 5153.5, + "us": 5340.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 897.0, + "variant": "insitu (copy)", + "us": 897.1, "level": "full" }, "best_any": { - "variant": "read", - "us": 897.0, + "variant": "insitu (copy)", + "us": 897.1, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 908.8, + "us": 1037.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 908.8, + "us": 1037.1, "level": "full" }, "variants": { - "read": { - "us": 897.0, + "insitu (copy untimed)": { + "us": 811.2, "level": "full" }, "insitu (copy)": { - "us": 897.2, + "us": 897.1, "level": "full" }, "read (raw numbers)": { - "us": 903.7, + "us": 912.7, + "level": "full" + }, + "read": { + "us": 946.8, "level": "full" }, "read (reused allocator)": { - "us": 908.8, + "us": 1037.1, "level": "full" } } @@ -490,31 +530,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 721.9, + "us": 732.0, "level": "full" }, "best_any": { "variant": "DOM", - "us": 721.9, + "us": 732.0, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 720.5, + "us": 724.6, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 720.5, + "us": 724.6, "level": "full" }, "variants": { "DOM (reused)": { - "us": 720.5, + "us": 724.6, "level": "full" }, "DOM": { - "us": 721.9, + "us": 732.0, "level": "full" } } @@ -523,14 +563,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1000.5, + "us": 1032.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1000.5, + "us": 1032.1, "level": "no UTF-8" } } @@ -538,147 +578,179 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1229.4, + "us": 1430.8, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1229.4, + "us": 1430.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 1229.4, + "us": 1430.8, + "level": "full" + }, + "generic (double, strict)": { + "us": 3995.2, "level": "full" }, "generic (double)": { - "us": 3848.8, - "level": "partial" - }, - "generic (double, strict)": { - "us": 3882.5, - "level": "full" - }, - "generic": { - "us": 6502.8, + "us": 4123.3, "level": "partial" }, "generic (strict)": { - "us": 6507.5, + "us": 6920.5, "level": "full" + }, + "generic": { + "us": 7111.1, + "level": "partial" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 909.3, + "us": 909.8, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 909.3, + "us": 909.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 917.8, + "us": 925.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 917.8, + "us": 925.3, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 909.3, + "us": 909.8, "level": "full" }, "SAX (reused)": { - "us": 917.8, + "us": 925.3, "level": "full" }, "SAX": { - "us": 924.6, + "us": 937.7, "level": "full" }, "parse (numbers: none)": { - "us": 1557.2, - "level": "full" - }, - "parser (reused)": { - "us": 1634.2, + "us": 1612.0, "level": "full" }, "parse": { - "us": 1639.2, + "us": 1708.6, + "level": "full" + }, + "parser (reused)": { + "us": 1710.5, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 2104.7, + "variant": "SAX (default precision)", + "us": 1970.9, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1663.7, + "variant": "SAX (default precision) (no encoding check)", + "us": 1572.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2423.2, + "us": 2520.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1951.8, + "us": 2040.7, "level": "no UTF-8" }, "variants": { - "SAX (no encoding check)": { - "us": 1663.7, + "SAX (default precision) (no encoding check)": { + "us": 1572.1, "level": "no UTF-8" }, - "SAX (raw numbers) (no encoding check)": { - "us": 1895.7, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1698.0, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1704.9, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1838.7, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1914.3, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 1915.8, + "us": 1948.9, + "level": "no UTF-8" + }, + "SAX (default precision)": { + "us": 1970.9, + "level": "full" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1994.7, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1951.8, + "us": 2040.7, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1968.0, + "us": 2101.7, "level": "no UTF-8" }, + "SAX (string stream, default precision)": { + "us": 2202.8, + "level": "full" + }, "SAX": { - "us": 2104.7, + "us": 2224.7, + "level": "full" + }, + "SAX (string stream)": { + "us": 2251.2, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 2315.2, "level": "full" }, "insitu (copy)": { - "us": 2284.9, + "us": 2350.4, "level": "full" }, "SAX (raw numbers)": { - "us": 2343.0, + "us": 2494.1, "level": "full" }, "Document (reused allocator)": { - "us": 2423.2, + "us": 2520.2, "level": "full" }, "Document": { - "us": 2435.8, + "us": 2589.4, "level": "full" } } @@ -776,35 +848,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 994.6, + "us": 1055.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 994.6, + "us": 1055.0, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 1385.6, + "us": 1448.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1385.6, + "us": 1448.8, "level": "full" }, "variants": { "accept": { - "us": 994.6, + "us": 1055.0, "level": "full" }, "parse": { - "us": 1383.6, + "us": 1396.6, "level": "full" }, "read (reused)": { - "us": 1385.6, + "us": 1448.8, "level": "full" } } @@ -812,23 +884,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 4043.4, + "us": 4264.7, "level": "full" }, "best_any": { "variant": "accept", - "us": 4043.4, + "us": 4264.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 4043.4, + "us": 4264.7, "level": "full" }, "parse": { - "us": 11128.3, + "us": 11823.5, "level": "full" } } @@ -836,39 +908,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 2572.8, + "us": 2580.3, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 2572.8, + "us": 2580.3, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 2797.0, + "us": 2887.6, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 2797.0, + "us": 2887.6, "level": "full" }, "variants": { "read (raw numbers)": { - "us": 2572.8, + "us": 2580.3, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 2662.2, "level": "full" }, "insitu (copy)": { - "us": 2791.9, + "us": 2844.5, "level": "full" }, "read (reused allocator)": { - "us": 2797.0, + "us": 2887.6, "level": "full" }, "read": { - "us": 2798.2, + "us": 2966.7, "level": "full" } } @@ -876,31 +952,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3203.3, + "us": 3205.9, "level": "full" }, "best_any": { "variant": "DOM", - "us": 3203.3, + "us": 3205.9, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 3194.8, + "us": 3292.9, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 3194.8, + "us": 3292.9, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 3194.8, + "DOM": { + "us": 3205.9, "level": "full" }, - "DOM": { - "us": 3203.3, + "DOM (reused)": { + "us": 3292.9, "level": "full" } } @@ -909,14 +985,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3041.7, + "us": 3143.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3041.7, + "us": 3143.4, "level": "no UTF-8" } } @@ -924,147 +1000,179 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 2011.2, + "us": 1867.4, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 2011.2, + "us": 1867.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 2011.2, + "us": 1867.4, "level": "full" }, "generic (double, strict)": { - "us": 11282.9, + "us": 11751.4, "level": "full" }, "generic (double)": { - "us": 11737.0, - "level": "partial" - }, - "generic": { - "us": 22657.0, + "us": 11793.7, "level": "partial" }, "generic (strict)": { - "us": 23091.1, + "us": 22606.9, "level": "full" + }, + "generic": { + "us": 22721.5, + "level": "partial" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 1682.7, + "us": 1684.1, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 1682.7, + "us": 1684.1, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 5942.5, + "us": 5933.1, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 5942.5, + "us": 5933.1, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 1682.7, + "us": 1684.1, "level": "full" }, "parse (numbers: none)": { - "us": 2504.2, - "level": "full" - }, - "SAX": { - "us": 5898.6, + "us": 2459.5, "level": "full" }, "SAX (reused)": { - "us": 5942.5, + "us": 5933.1, "level": "full" }, - "parse": { - "us": 7023.4, + "SAX": { + "us": 5979.3, "level": "full" }, "parser (reused)": { - "us": 7042.5, + "us": 6972.4, + "level": "full" + }, + "parse": { + "us": 7150.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX (raw numbers)", - "us": 10540.5, + "variant": "SAX (string stream, default precision)", + "us": 4117.8, "level": "full" }, "best_any": { - "variant": "SAX (raw numbers)", - "us": 10540.5, - "level": "full" + "variant": "SAX (string stream, default precision) (no encoding check)", + "us": 4082.6, + "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 12288.6, + "us": 12334.6, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 12109.4, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 12334.6, + "level": "full" }, "variants": { + "SAX (string stream, default precision) (no encoding check)": { + "us": 4082.6, + "level": "no UTF-8" + }, + "SAX (string stream, default precision)": { + "us": 4117.8, + "level": "full" + }, + "SAX (default precision)": { + "us": 4594.0, + "level": "full" + }, + "SAX (default precision) (no encoding check)": { + "us": 5086.9, + "level": "no UTF-8" + }, "SAX (raw numbers)": { - "us": 10540.5, + "us": 10530.4, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 10837.2, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 10851.7, "level": "full" }, "SAX (raw numbers) (no encoding check)": { - "us": 10561.5, - "level": "no UTF-8" - }, - "SAX (no encoding check)": { - "us": 11185.7, + "us": 10964.8, "level": "no UTF-8" }, "SAX": { - "us": 11300.7, + "us": 11392.6, "level": "full" }, - "insitu (copy) (no encoding check)": { - "us": 11559.6, - "level": "no UTF-8" + "insitu (copy untimed)": { + "us": 11510.7, + "level": "full" }, "insitu (copy)": { - "us": 11581.6, + "us": 11686.9, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 11721.3, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 11785.8, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 11843.6, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 12334.6, "level": "full" }, "Document (no encoding check)": { - "us": 12070.3, + "us": 12422.8, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 12109.4, + "us": 12718.7, "level": "no UTF-8" }, "Document": { - "us": 12280.1, - "level": "full" - }, - "Document (reused allocator)": { - "us": 12288.6, + "us": 13030.0, "level": "full" } } @@ -1162,35 +1270,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 34154.0, + "us": 34729.3, "level": "full" }, "best_any": { "variant": "accept", - "us": 34154.0, + "us": 34729.3, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 41976.6, + "us": 42999.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 41976.6, + "us": 42999.2, "level": "full" }, "variants": { "accept": { - "us": 34154.0, + "us": 34729.3, "level": "full" }, "read (reused)": { - "us": 41976.6, + "us": 42999.2, "level": "full" }, "parse": { - "us": 78958.0, + "us": 76775.5, "level": "full" } } @@ -1198,63 +1306,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 70283.8, + "us": 71981.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 70283.8, + "us": 71981.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 70283.8, + "us": 71981.6, "level": "full" }, "parse": { - "us": 386103.5, + "us": 384444.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 125497.1, + "variant": "read (raw numbers)", + "us": 119584.8, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 125497.1, + "variant": "read (raw numbers)", + "us": 119584.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 55568.7, + "us": 55858.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 55568.7, + "us": 55858.2, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 55568.7, + "us": 55858.2, "level": "full" }, - "insitu (copy)": { - "us": 125497.1, + "insitu (copy untimed)": { + "us": 83152.6, "level": "full" }, "read (raw numbers)": { - "us": 127727.1, + "us": 119584.8, "level": "full" }, "read": { - "us": 128798.7, + "us": 121327.6, + "level": "full" + }, + "insitu (copy)": { + "us": 122616.5, "level": "full" } } @@ -1262,31 +1374,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 118181.7, + "us": 113452.3, "level": "full" }, "best_any": { "variant": "DOM", - "us": 118181.7, + "us": 113452.3, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 47301.1, + "us": 47118.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 47301.1, + "us": 47118.4, "level": "full" }, "variants": { "DOM (reused)": { - "us": 47301.1, + "us": 47118.4, "level": "full" }, "DOM": { - "us": 118181.7, + "us": 113452.3, "level": "full" } } @@ -1295,14 +1407,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 100683.8, + "us": 94884.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 100683.8, + "us": 94884.1, "level": "no UTF-8" } } @@ -1310,147 +1422,179 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 72734.1, + "us": 75570.8, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 72734.1, + "us": 75570.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 72734.1, + "us": 75570.8, + "level": "full" + }, + "generic (double, strict)": { + "us": 233320.9, "level": "full" }, "generic (double)": { - "us": 230242.4, - "level": "partial" - }, - "generic (double, strict)": { - "us": 230300.8, - "level": "full" - }, - "generic": { - "us": 372574.1, + "us": 234246.5, "level": "partial" }, "generic (strict)": { - "us": 376195.4, + "us": 368574.7, "level": "full" + }, + "generic": { + "us": 375564.1, + "level": "partial" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 54986.5, + "variant": "SAX (numbers: none)", + "us": 55497.5, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 54986.5, + "variant": "SAX (numbers: none)", + "us": 55497.5, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 54179.4, + "us": 55237.4, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 54179.4, + "us": 55237.4, "level": "full" }, "variants": { "SAX (reused)": { - "us": 54179.4, - "level": "full" - }, - "SAX": { - "us": 54986.5, + "us": 55237.4, "level": "full" }, "SAX (numbers: none)": { - "us": 55791.1, + "us": 55497.5, + "level": "full" + }, + "SAX": { + "us": 55950.4, "level": "full" }, "parser (reused)": { - "us": 127237.6, - "level": "full" - }, - "parse (numbers: none)": { - "us": 191366.1, + "us": 126349.5, "level": "full" }, "parse": { - "us": 192877.0, + "us": 182277.1, + "level": "full" + }, + "parse (numbers: none)": { + "us": 184971.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX (raw numbers)", - "us": 247331.0, + "variant": "insitu (copy)", + "us": 234135.6, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 158423.4, + "variant": "SAX (string stream, default precision) (no encoding check)", + "us": 132912.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 287947.0, + "us": 275235.6, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 191293.0, + "us": 182631.7, "level": "no UTF-8" }, "variants": { - "SAX (no encoding check)": { - "us": 158423.4, + "insitu (copy untimed) (no encoding check)": { + "us": 131204.4, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 132912.2, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 133946.0, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 159113.4, + "us": 155593.3, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 163058.5, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 165538.6, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 172257.7, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 189323.0, + "us": 167275.8, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 191293.0, + "us": 182631.7, "level": "no UTF-8" }, - "SAX (raw numbers)": { - "us": 247331.0, + "Document (no encoding check)": { + "us": 192707.7, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 198914.8, "level": "full" }, "insitu (copy)": { - "us": 250969.6, + "us": 234135.6, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 234723.4, + "level": "full" + }, + "SAX (string stream)": { + "us": 240913.1, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 242693.5, "level": "full" }, "SAX": { - "us": 257737.2, + "us": 247972.6, "level": "full" }, - "Document": { - "us": 282974.3, + "SAX (default precision)": { + "us": 248281.3, "level": "full" }, "Document (reused allocator)": { - "us": 287947.0, + "us": 275235.6, + "level": "full" + }, + "Document": { + "us": 295063.9, "level": "full" } } @@ -1548,12 +1692,12 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 1.2, + "us": 1.1, "level": "full" }, "best_any": { "variant": "accept", - "us": 1.2, + "us": 1.1, "level": "full" }, "best_reused": { @@ -1568,7 +1712,7 @@ }, "variants": { "accept": { - "us": 1.2, + "us": 1.1, "level": "full" }, "read (reused)": { @@ -1576,7 +1720,7 @@ "level": "full" }, "parse": { - "us": 1.5, + "us": 1.4, "level": "full" } } @@ -1584,23 +1728,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 3.3, + "us": 3.5, "level": "full" }, "best_any": { "variant": "accept", - "us": 3.3, + "us": 3.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 3.3, + "us": 3.5, "level": "full" }, "parse": { - "us": 20.4, + "us": 21.1, "level": "full" } } @@ -1627,6 +1771,10 @@ "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 1.5, + "level": "full" + }, "read (reused allocator)": { "us": 1.5, "level": "full" @@ -1696,36 +1844,36 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 2.5, + "us": 2.4, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 2.5, + "us": 2.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 2.5, + "us": 2.4, "level": "full" }, "generic (double, strict)": { - "us": 8.5, + "us": 9.0, "level": "full" }, "generic (double)": { - "us": 8.6, - "level": "partial" - }, - "generic": { - "us": 14.5, + "us": 9.4, "level": "partial" }, "generic (strict)": { - "us": 14.7, + "us": 14.6, "level": "full" + }, + "generic": { + "us": 15.5, + "level": "partial" } } }, @@ -1764,7 +1912,7 @@ "level": "full" }, "parser (reused)": { - "us": 5.6, + "us": 5.5, "level": "full" }, "parse (numbers: none)": { @@ -1772,7 +1920,7 @@ "level": "full" }, "parse": { - "us": 5.8, + "us": 5.9, "level": "full" } } @@ -1780,7 +1928,7 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 8.1, + "us": 8.3, "level": "full" }, "best_any": { @@ -1795,7 +1943,7 @@ }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 7.3, + "us": 7.4, "level": "no UTF-8" }, "variants": { @@ -1803,6 +1951,22 @@ "us": 4.1, "level": "no UTF-8" }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 4.1, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 4.2, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 4.2, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 6.4, + "level": "no UTF-8" + }, "SAX (no encoding check)": { "us": 6.6, "level": "no UTF-8" @@ -1812,23 +1976,39 @@ "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 7.3, + "us": 7.4, "level": "no UTF-8" }, "Document (no encoding check)": { "us": 7.8, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 8.1, + "insitu (copy untimed)": { + "us": 8.2, "level": "full" }, - "SAX": { - "us": 10.1, + "insitu (copy)": { + "us": 8.3, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 9.7, + "level": "full" + }, + "SAX (string stream)": { + "us": 9.9, "level": "full" }, "SAX (raw numbers)": { - "us": 10.3, + "us": 10.5, + "level": "full" + }, + "SAX": { + "us": 10.6, + "level": "full" + }, + "SAX (default precision)": { + "us": 10.6, "level": "full" }, "Document (reused allocator)": { @@ -1836,7 +2016,7 @@ "level": "full" }, "Document": { - "us": 11.4, + "us": 11.8, "level": "full" } } @@ -1934,35 +2114,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 214.1, + "us": 214.6, "level": "full" }, "best_any": { "variant": "accept", - "us": 214.1, + "us": 214.6, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 250.4, + "us": 252.4, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 250.4, + "us": 252.4, "level": "full" }, "variants": { "accept": { - "us": 214.1, + "us": 214.6, "level": "full" }, "read (reused)": { - "us": 250.4, + "us": 252.4, "level": "full" }, "parse": { - "us": 257.7, + "us": 256.8, "level": "full" } } @@ -1970,63 +2150,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 575.2, + "us": 580.2, "level": "full" }, "best_any": { "variant": "accept", - "us": 575.2, + "us": 580.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 575.2, + "us": 580.2, "level": "full" }, "parse": { - "us": 3591.8, + "us": 3430.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 317.7, + "variant": "read", + "us": 318.3, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 317.7, + "variant": "read", + "us": 318.3, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 321.6, + "us": 318.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 321.6, + "us": 318.1, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 317.7, - "level": "full" - }, - "read": { - "us": 317.9, + "insitu (copy untimed)": { + "us": 282.6, "level": "full" }, "read (reused allocator)": { - "us": 321.6, + "us": 318.1, + "level": "full" + }, + "read": { + "us": 318.3, + "level": "full" + }, + "insitu (copy)": { + "us": 319.5, "level": "full" }, "read (raw numbers)": { - "us": 325.0, + "us": 324.4, "level": "full" } } @@ -2034,31 +2218,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 287.4, + "us": 286.5, "level": "full" }, "best_any": { "variant": "DOM", - "us": 287.4, + "us": 286.5, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 287.1, + "us": 286.0, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 287.1, + "us": 286.0, "level": "full" }, "variants": { "DOM (reused)": { - "us": 287.1, + "us": 286.0, "level": "full" }, "DOM": { - "us": 287.4, + "us": 286.5, "level": "full" } } @@ -2067,14 +2251,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 335.7, + "us": 332.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 335.7, + "us": 332.0, "level": "no UTF-8" } } @@ -2082,83 +2266,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 490.6, + "us": 458.7, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 490.6, + "us": 458.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 490.6, + "us": 458.7, "level": "full" }, "generic (double, strict)": { - "us": 2222.0, + "us": 2147.0, "level": "full" }, "generic (double)": { - "us": 2287.8, - "level": "partial" - }, - "generic": { - "us": 3233.6, + "us": 2147.2, "level": "partial" }, "generic (strict)": { - "us": 3319.5, + "us": 3124.9, "level": "full" + }, + "generic": { + "us": 3213.5, + "level": "partial" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 422.6, + "us": 421.4, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 422.6, + "us": 421.4, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 432.8, + "us": 431.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 432.8, + "us": 431.3, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 422.6, - "level": "full" - }, - "SAX": { - "us": 432.5, + "us": 421.4, "level": "full" }, "SAX (reused)": { - "us": 432.8, + "us": 431.3, + "level": "full" + }, + "SAX": { + "us": 434.3, "level": "full" }, "parse (numbers: none)": { - "us": 1102.1, - "level": "full" - }, - "parse": { - "us": 1121.9, + "us": 1096.1, "level": "full" }, "parser (reused)": { - "us": 1141.6, + "us": 1108.5, + "level": "full" + }, + "parse": { + "us": 1110.6, "level": "full" } } @@ -2166,63 +2350,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1548.6, + "us": 1485.9, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 901.1, + "us": 907.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2182.6, + "us": 2057.8, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1418.3, + "us": 1372.7, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 865.1, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 901.1, + "us": 907.8, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 959.2, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 993.6, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 1185.0, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1220.7, + "us": 1203.2, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 1235.8, + "us": 1237.8, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1418.3, + "us": 1372.7, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1430.8, + "us": 1376.3, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1453.9, + "level": "full" + }, "insitu (copy)": { - "us": 1548.6, + "us": 1485.9, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 1791.1, + "level": "full" + }, + "SAX (string stream)": { + "us": 1796.1, + "level": "full" + }, + "SAX (default precision)": { + "us": 1863.4, "level": "full" }, "SAX (raw numbers)": { - "us": 1918.3, + "us": 1893.2, "level": "full" }, "SAX": { - "us": 1942.1, - "level": "full" - }, - "Document": { - "us": 2157.8, + "us": 1964.3, "level": "full" }, "Document (reused allocator)": { - "us": 2182.6, + "us": 2057.8, + "level": "full" + }, + "Document": { + "us": 2129.2, "level": "full" } } @@ -2320,35 +2536,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 309.5, + "us": 315.2, "level": "full" }, "best_any": { "variant": "accept", - "us": 309.5, + "us": 315.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 481.8, + "us": 493.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 481.8, + "us": 493.8, "level": "full" }, "variants": { "accept": { - "us": 309.5, + "us": 315.2, "level": "full" }, "read (reused)": { - "us": 481.8, + "us": 493.8, "level": "full" }, "parse": { - "us": 483.7, + "us": 495.0, "level": "full" } } @@ -2356,63 +2572,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 1068.7, + "us": 1089.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 1068.7, + "us": 1089.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 1068.7, + "us": 1089.0, "level": "full" }, "parse": { - "us": 5093.1, + "us": 4805.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 484.5, + "variant": "insitu (copy)", + "us": 483.6, "level": "full" }, "best_any": { - "variant": "read", - "us": 484.5, + "variant": "insitu (copy)", + "us": 483.6, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 485.2, + "us": 483.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 485.2, + "us": 483.1, "level": "full" }, "variants": { - "read": { - "us": 484.5, + "insitu (copy untimed)": { + "us": 448.5, "level": "full" }, "read (reused allocator)": { - "us": 485.2, + "us": 483.1, "level": "full" }, "insitu (copy)": { - "us": 485.6, + "us": 483.6, + "level": "full" + }, + "read": { + "us": 484.6, "level": "full" }, "read (raw numbers)": { - "us": 514.8, + "us": 516.0, "level": "full" } } @@ -2420,31 +2640,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 565.1, + "us": 564.9, "level": "full" }, "best_any": { "variant": "DOM", - "us": 565.1, + "us": 564.9, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 566.9, + "us": 565.0, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 566.9, + "us": 565.0, "level": "full" }, "variants": { "DOM": { - "us": 565.1, + "us": 564.9, "level": "full" }, "DOM (reused)": { - "us": 566.9, + "us": 565.0, "level": "full" } } @@ -2453,14 +2673,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 679.8, + "us": 678.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 679.8, + "us": 678.2, "level": "no UTF-8" } } @@ -2468,35 +2688,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 663.9, + "us": 651.9, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 663.9, + "us": 651.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 663.9, + "us": 651.9, "level": "full" }, "generic (double, strict)": { - "us": 3268.1, + "us": 3245.6, "level": "full" }, "generic (double)": { - "us": 3397.1, + "us": 3335.2, "level": "partial" }, "generic (strict)": { - "us": 6080.5, + "us": 5945.8, "level": "full" }, "generic": { - "us": 6090.0, + "us": 5996.0, "level": "partial" } } @@ -2504,111 +2724,143 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 526.6, + "us": 526.2, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 526.6, + "us": 526.2, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 587.6, + "us": 579.6, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 587.6, + "us": 579.6, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 526.6, + "us": 526.2, "level": "full" }, "SAX": { - "us": 587.2, + "us": 578.9, "level": "full" }, "SAX (reused)": { - "us": 587.6, + "us": 579.6, "level": "full" }, "parse (numbers: none)": { - "us": 1375.5, + "us": 1309.6, "level": "full" }, "parser (reused)": { - "us": 1413.7, + "us": 1384.3, "level": "full" }, "parse": { - "us": 1415.3, + "us": 1385.1, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 1742.9, + "variant": "SAX (string stream, default precision)", + "us": 1624.3, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1387.9, + "variant": "SAX (default precision) (no encoding check)", + "us": 1192.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2203.6, + "us": 2161.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1704.9, + "us": 1679.9, "level": "no UTF-8" }, "variants": { + "SAX (default precision) (no encoding check)": { + "us": 1192.3, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1200.0, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1307.1, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 1387.9, + "us": 1366.1, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1409.5, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 1455.8, + "us": 1439.7, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 1643.9, + "us": 1595.7, "level": "no UTF-8" }, - "Document (reused allocator) (no encoding check)": { - "us": 1704.9, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 1714.7, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 1742.9, + "SAX (string stream, default precision)": { + "us": 1624.3, "level": "full" }, + "SAX (default precision)": { + "us": 1631.5, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1679.9, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1707.7, + "level": "full" + }, + "SAX (string stream)": { + "us": 1734.2, + "level": "full" + }, + "insitu (copy)": { + "us": 1739.4, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1756.1, + "level": "no UTF-8" + }, "SAX": { - "us": 1787.8, + "us": 1877.9, "level": "full" }, "SAX (raw numbers)": { - "us": 2086.5, + "us": 2023.9, "level": "full" }, "Document (reused allocator)": { - "us": 2203.6, + "us": 2161.2, "level": "full" }, "Document": { - "us": 2230.5, + "us": 2253.5, "level": "full" } } @@ -2708,31 +2960,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 372.0, + "us": 373.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 372.0, + "us": 373.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 363.8, + "us": 362.5, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 363.8, + "us": 362.5, "level": "full" }, "variants": { "read (reused)": { - "us": 363.8, + "us": 362.5, "level": "full" }, "parse": { - "us": 372.0, + "us": 373.8, + "level": "full" + }, + "parse_copy": { + "us": 411.2, "level": "full" } } @@ -2740,59 +2996,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 719.9, + "us": 728.1, "level": "full" }, "best_any": { "variant": "sax", - "us": 719.9, + "us": 728.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 719.9, + "us": 728.1, "level": "full" }, "parse": { - "us": 3725.8, + "us": 3789.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 435.4, + "variant": "read", + "us": 436.8, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 435.4, + "variant": "read", + "us": 436.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 440.1, + "us": 442.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 440.1, + "us": 442.1, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 435.4, + "insitu (copy untimed)": { + "us": 399.0, "level": "full" }, "read": { - "us": 439.2, + "us": 436.8, + "level": "full" + }, + "insitu (copy)": { + "us": 437.2, "level": "full" }, "read (reused allocator)": { - "us": 440.1, + "us": 442.1, "level": "full" } } @@ -2800,39 +3060,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 398.1, + "us": 393.6, "level": "full" }, "best_any": { "variant": "DOM", - "us": 398.1, + "us": 393.6, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 396.0, + "us": 393.3, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 396.0, + "us": 393.3, "level": "full" }, "variants": { "DOM (reused)": { - "us": 396.0, + "us": 393.3, "level": "full" }, "DOM": { - "us": 398.1, + "us": 393.6, "level": "full" }, "On-Demand": { - "us": 566.9, + "us": 570.3, "level": "full" }, "On-Demand (reused)": { - "us": 566.9, + "us": 576.4, "level": "full" } } @@ -2841,14 +3101,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 508.5, + "us": 501.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 508.5, + "us": 501.7, "level": "no UTF-8" } } @@ -2856,36 +3116,36 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 2392.1, + "us": 2427.0, "level": "full" }, "best_any": { - "variant": "generic (double)", - "us": 2382.9, - "level": "partial" + "variant": "generic (double, strict)", + "us": 2427.0, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double)": { - "us": 2382.9, - "level": "partial" - }, "generic (double, strict)": { - "us": 2392.1, + "us": 2427.0, "level": "full" }, - "lazy_json": { - "us": 2570.8, + "generic (double)": { + "us": 2434.3, "level": "partial" }, - "generic": { - "us": 3396.8, + "lazy_json": { + "us": 2612.7, "level": "partial" }, "generic (strict)": { - "us": 3399.0, + "us": 3441.4, "level": "full" + }, + "generic": { + "us": 3466.7, + "level": "partial" } }, "excluded": { @@ -2895,39 +3155,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 580.4, + "us": 579.5, "level": "full" }, "best_any": { "variant": "SAX", - "us": 580.4, + "us": 579.5, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 585.2, + "us": 580.1, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 585.2, + "us": 580.1, "level": "full" }, "variants": { "SAX": { - "us": 580.4, + "us": 579.5, "level": "full" }, "SAX (reused)": { - "us": 585.2, + "us": 580.1, "level": "full" }, "parser (reused)": { - "us": 1281.8, + "us": 1270.0, "level": "full" }, "parse": { - "us": 1286.3, + "us": 1278.1, "level": "full" } } @@ -2935,55 +3195,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1865.2, + "us": 1856.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1231.6, + "us": 1228.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2276.9, + "us": 2217.8, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1533.1, + "us": 1519.6, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1186.9, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1231.6, + "us": 1228.2, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1264.6, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1355.4, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 1531.9, + "us": 1351.4, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1533.1, + "us": 1519.6, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 1522.2, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1816.0, + "level": "full" + }, "insitu (copy)": { - "us": 1865.2, + "us": 1856.0, "level": "full" }, "SAX": { - "us": 2041.9, + "us": 2118.4, "level": "full" }, - "Document": { - "us": 2237.7, + "SAX (string stream)": { + "us": 2144.0, "level": "full" }, "Document (reused allocator)": { - "us": 2276.9, + "us": 2217.8, + "level": "full" + }, + "Document": { + "us": 2282.9, "level": "full" } } @@ -3077,31 +3353,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 947.8, + "us": 923.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 947.8, + "us": 923.4, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 946.9, + "us": 922.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 946.9, + "us": 922.6, "level": "full" }, "variants": { "read (reused)": { - "us": 946.9, + "us": 922.6, "level": "full" }, "parse": { - "us": 947.8, + "us": 923.4, + "level": "full" + }, + "parse_copy": { + "us": 1039.8, "level": "full" } } @@ -3109,23 +3389,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 1381.8, + "us": 1393.4, "level": "full" }, "best_any": { "variant": "sax", - "us": 1381.8, + "us": 1393.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 1381.8, + "us": 1393.4, "level": "full" }, "parse": { - "us": 5431.3, + "us": 5481.8, "level": "full" } } @@ -3133,35 +3413,39 @@ "yyjson": { "best": { "variant": "read", - "us": 1054.3, + "us": 1064.0, "level": "full" }, "best_any": { "variant": "read", - "us": 1054.3, + "us": 1064.0, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 1061.7, + "us": 1100.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 1061.7, + "us": 1100.8, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 945.5, + "level": "full" + }, "read": { - "us": 1054.3, + "us": 1064.0, "level": "full" }, "insitu (copy)": { - "us": 1055.3, + "us": 1064.9, "level": "full" }, "read (reused allocator)": { - "us": 1061.7, + "us": 1100.8, "level": "full" } } @@ -3169,39 +3453,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 981.3, + "us": 977.4, "level": "full" }, "best_any": { "variant": "DOM", - "us": 981.3, + "us": 977.4, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 978.2, + "us": 993.2, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 978.2, + "us": 993.2, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 978.2, + "DOM": { + "us": 977.4, "level": "full" }, - "DOM": { - "us": 981.3, + "DOM (reused)": { + "us": 993.2, "level": "full" }, "On-Demand (reused)": { - "us": 1347.7, + "us": 1353.7, "level": "full" }, "On-Demand": { - "us": 1350.5, + "us": 1379.7, "level": "full" } } @@ -3210,14 +3494,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1171.3, + "us": 1175.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1171.3, + "us": 1175.4, "level": "no UTF-8" } } @@ -3225,35 +3509,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 4048.0, + "us": 3972.0, "level": "full" }, "best_any": { - "variant": "generic (double)", - "us": 4010.5, - "level": "partial" + "variant": "generic (double, strict)", + "us": 3972.0, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double)": { - "us": 4010.5, - "level": "partial" - }, "generic (double, strict)": { - "us": 4048.0, + "us": 3972.0, "level": "full" }, - "generic": { - "us": 6676.2, + "generic (double)": { + "us": 4088.2, "level": "partial" }, "generic (strict)": { - "us": 6741.0, + "us": 6710.1, "level": "full" }, + "generic": { + "us": 6937.1, + "level": "partial" + }, "lazy_json": { - "us": 10826.8, + "us": 11160.5, "level": "partial" } }, @@ -3264,39 +3548,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 924.0, + "us": 928.1, "level": "full" }, "best_any": { "variant": "SAX", - "us": 924.0, + "us": 928.1, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 924.1, + "us": 927.6, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 924.1, + "us": 927.6, "level": "full" }, "variants": { - "SAX": { - "us": 924.0, + "SAX (reused)": { + "us": 927.6, "level": "full" }, - "SAX (reused)": { - "us": 924.1, + "SAX": { + "us": 928.1, "level": "full" }, "parser (reused)": { - "us": 1808.0, + "us": 1828.4, "level": "full" }, "parse": { - "us": 1820.4, + "us": 1834.9, "level": "full" } } @@ -3304,55 +3588,71 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 2173.2, + "us": 2223.6, "level": "full" }, "best_any": { "variant": "SAX (no encoding check)", - "us": 1756.8, + "us": 1765.4, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2599.0, + "us": 2557.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 2115.9, + "us": 2109.9, "level": "no UTF-8" }, "variants": { "SAX (no encoding check)": { - "us": 1756.8, + "us": 1765.4, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1809.8, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1980.0, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 2087.6, + "us": 2101.3, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 2115.9, + "us": 2109.9, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2139.8, + "us": 2170.8, "level": "no UTF-8" }, "SAX": { - "us": 2173.2, + "us": 2223.6, + "level": "full" + }, + "SAX (string stream)": { + "us": 2274.4, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 2353.5, "level": "full" }, "insitu (copy)": { - "us": 2455.0, + "us": 2464.8, "level": "full" }, "Document (reused allocator)": { - "us": 2599.0, + "us": 2557.4, "level": "full" }, "Document": { - "us": 2615.6, + "us": 2661.3, "level": "full" } } @@ -3446,31 +3746,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 3719.7, + "us": 3845.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 3719.7, + "us": 3845.5, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 3721.0, + "us": 3733.9, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 3721.0, + "us": 3733.9, "level": "full" }, "variants": { - "parse": { - "us": 3719.7, + "read (reused)": { + "us": 3733.9, "level": "full" }, - "read (reused)": { - "us": 3721.0, + "parse": { + "us": 3845.5, + "level": "full" + }, + "parse_copy": { + "us": 3883.8, "level": "full" } } @@ -3478,59 +3782,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 5162.3, + "us": 5428.5, "level": "full" }, "best_any": { "variant": "sax", - "us": 5162.3, + "us": 5428.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 5162.3, + "us": 5428.5, "level": "full" }, "parse": { - "us": 11600.8, + "us": 12869.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 3455.6, + "variant": "insitu (copy)", + "us": 3581.5, "level": "full" }, "best_any": { - "variant": "read", - "us": 3455.6, + "variant": "insitu (copy)", + "us": 3581.5, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 3526.9, + "us": 3646.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 3526.9, + "us": 3646.2, "level": "full" }, "variants": { - "read": { - "us": 3455.6, + "insitu (copy untimed)": { + "us": 3444.8, "level": "full" }, "insitu (copy)": { - "us": 3456.5, + "us": 3581.5, + "level": "full" + }, + "read": { + "us": 3630.5, "level": "full" }, "read (reused allocator)": { - "us": 3526.9, + "us": 3646.2, "level": "full" } } @@ -3538,39 +3846,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 4130.6, + "us": 4117.0, "level": "full" }, "best_any": { "variant": "DOM", - "us": 4130.6, + "us": 4117.0, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 4139.0, + "us": 4295.7, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 4139.0, + "us": 4295.7, "level": "full" }, "variants": { "DOM": { - "us": 4130.6, + "us": 4117.0, "level": "full" }, "DOM (reused)": { - "us": 4139.0, - "level": "full" - }, - "On-Demand (reused)": { - "us": 5627.1, + "us": 4295.7, "level": "full" }, "On-Demand": { - "us": 5735.9, + "us": 5515.9, + "level": "full" + }, + "On-Demand (reused)": { + "us": 5686.6, "level": "full" } } @@ -3579,14 +3887,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3660.7, + "us": 3753.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3660.7, + "us": 3753.5, "level": "no UTF-8" } } @@ -3594,36 +3902,36 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 11814.1, + "us": 12165.0, "level": "full" }, "best_any": { "variant": "generic (double, strict)", - "us": 11814.1, + "us": 12165.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (double, strict)": { - "us": 11814.1, + "us": 12165.0, "level": "full" }, "generic (double)": { - "us": 12213.8, + "us": 12375.6, "level": "partial" }, "lazy_json": { - "us": 17324.1, - "level": "partial" - }, - "generic": { - "us": 23177.0, + "us": 17851.2, "level": "partial" }, "generic (strict)": { - "us": 23748.2, + "us": 23299.6, "level": "full" + }, + "generic": { + "us": 23438.5, + "level": "partial" } }, "excluded": { @@ -3633,96 +3941,112 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 5914.7, + "us": 5809.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 5914.7, + "us": 5809.0, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 5906.2, + "us": 5919.6, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 5906.2, + "us": 5919.6, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 5906.2, + "SAX": { + "us": 5809.0, "level": "full" }, - "SAX": { - "us": 5914.7, + "SAX (reused)": { + "us": 5919.6, "level": "full" }, "parser (reused)": { - "us": 7502.7, + "us": 7635.2, "level": "full" }, "parse": { - "us": 7544.5, + "us": 7713.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 11995.0, + "variant": "SAX (string stream)", + "us": 10718.9, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 11995.0, + "variant": "SAX (string stream)", + "us": 10718.9, "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 12777.0, + "us": 13161.2, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 12578.1, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 13161.2, + "level": "full" }, "variants": { - "SAX": { - "us": 11995.0, + "SAX (string stream)": { + "us": 10718.9, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 11003.7, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 12044.9, + "level": "full" + }, + "insitu (copy)": { + "us": 12119.8, "level": "full" }, "SAX (no encoding check)": { - "us": 12123.0, + "us": 12357.3, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 12161.9, + "us": 12392.9, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 12193.6, + "insitu (copy untimed) (no encoding check)": { + "us": 12530.2, + "level": "no UTF-8" + }, + "SAX": { + "us": 12678.3, "level": "full" }, - "Document (reused allocator) (no encoding check)": { - "us": 12578.1, - "level": "no UTF-8" - }, "Document (no encoding check)": { - "us": 12646.8, + "us": 12865.6, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 12777.0, + "us": 13161.2, "level": "full" }, "Document": { - "us": 12890.7, + "us": 13275.5, "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 13352.6, + "level": "no UTF-8" } } }, @@ -3815,31 +4139,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 86351.3, + "us": 85286.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 86351.3, + "us": 85286.5, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 54182.6, + "us": 51480.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 54182.6, + "us": 51480.2, "level": "full" }, "variants": { "read (reused)": { - "us": 54182.6, + "us": 51480.2, "level": "full" }, "parse": { - "us": 86351.3, + "us": 85286.5, + "level": "full" + }, + "parse_copy": { + "us": 124656.8, "level": "full" } } @@ -3847,23 +4175,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 87316.0, + "us": 89480.6, "level": "full" }, "best_any": { "variant": "sax", - "us": 87316.0, + "us": 89480.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 87316.0, + "us": 89480.6, "level": "full" }, "parse": { - "us": 424984.3, + "us": 420541.7, "level": "full" } } @@ -3871,35 +4199,39 @@ "yyjson": { "best": { "variant": "read", - "us": 131400.5, + "us": 126975.3, "level": "full" }, "best_any": { "variant": "read", - "us": 131400.5, + "us": 126975.3, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 67174.7, + "us": 64457.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 67174.7, + "us": 64457.4, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 67174.7, + "us": 64457.4, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 88446.7, "level": "full" }, "read": { - "us": 131400.5, + "us": 126975.3, "level": "full" }, "insitu (copy)": { - "us": 134258.6, + "us": 129469.4, "level": "full" } } @@ -3907,39 +4239,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 116924.0, + "us": 114602.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 116924.0, + "us": 114602.0, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 61476.9, + "us": 61224.9, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 61476.9, + "us": 61224.9, "level": "full" }, "variants": { "DOM (reused)": { - "us": 61476.9, + "us": 61224.9, "level": "full" }, "On-Demand (reused)": { - "us": 73021.5, + "us": 75561.0, "level": "full" }, "On-Demand": { - "us": 116924.0, + "us": 114602.0, "level": "full" }, "DOM": { - "us": 126789.3, + "us": 124594.3, "level": "full" } } @@ -3948,14 +4280,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 110606.7, + "us": 104583.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 110606.7, + "us": 104583.2, "level": "no UTF-8" } } @@ -3963,36 +4295,36 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 264674.9, + "us": 253385.3, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 198417.5, + "us": 196582.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 198417.5, + "us": 196582.3, "level": "partial" }, "generic (double)": { - "us": 261586.8, + "us": 249603.8, "level": "partial" }, "generic (double, strict)": { - "us": 264674.9, + "us": 253385.3, + "level": "full" + }, + "generic (strict)": { + "us": 378838.3, "level": "full" }, "generic": { - "us": 401730.7, + "us": 387793.9, "level": "partial" - }, - "generic (strict)": { - "us": 418700.1, - "level": "full" } }, "excluded": { @@ -4002,95 +4334,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 60350.8, + "us": 56773.6, "level": "full" }, "best_any": { "variant": "SAX", - "us": 60350.8, + "us": 56773.6, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 58391.4, + "us": 56745.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 58391.4, + "us": 56745.3, "level": "full" }, "variants": { "SAX (reused)": { - "us": 58391.4, + "us": 56745.3, "level": "full" }, "SAX": { - "us": 60350.8, + "us": 56773.6, "level": "full" }, "parser (reused)": { - "us": 148478.1, + "us": 141833.0, "level": "full" }, "parse": { - "us": 216900.8, + "us": 198163.8, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 258526.5, + "variant": "SAX (string stream)", + "us": 232713.0, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 166047.2, + "variant": "SAX (string stream) (no encoding check)", + "us": 135944.9, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 289995.2, + "us": 284279.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 209384.5, + "us": 194569.9, "level": "no UTF-8" }, "variants": { + "SAX (string stream) (no encoding check)": { + "us": 135944.9, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 136902.3, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 166047.2, + "us": 165525.2, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 186769.2, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 203077.9, + "us": 174160.1, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 209384.5, + "us": 194569.9, "level": "no UTF-8" }, - "SAX": { - "us": 258526.5, + "Document (no encoding check)": { + "us": 200917.9, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 206810.9, + "level": "full" + }, + "SAX (string stream)": { + "us": 232713.0, "level": "full" }, "insitu (copy)": { - "us": 259229.5, + "us": 250121.8, + "level": "full" + }, + "SAX": { + "us": 262578.3, "level": "full" }, "Document (reused allocator)": { - "us": 289995.2, + "us": 284279.1, "level": "full" }, "Document": { - "us": 297763.7, + "us": 303888.8, "level": "full" } } @@ -4184,30 +4532,34 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 1.9, + "us": 1.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 1.9, + "us": 1.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 1.8, + "us": 1.7, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1.8, + "us": 1.7, "level": "full" }, "variants": { "read (reused)": { - "us": 1.8, + "us": 1.7, "level": "full" }, "parse": { + "us": 1.8, + "level": "full" + }, + "parse_copy": { "us": 1.9, "level": "full" } @@ -4232,7 +4584,7 @@ "level": "full" }, "parse": { - "us": 19.3, + "us": 20.8, "level": "full" } } @@ -4270,18 +4622,22 @@ "insitu (copy)": { "us": 1.9, "level": "full" + }, + "insitu (copy untimed)": { + "us": 1.9, + "level": "full" } } }, "simdjson": { "best": { "variant": "DOM", - "us": 2.3, + "us": 2.2, "level": "full" }, "best_any": { "variant": "DOM", - "us": 2.3, + "us": 2.2, "level": "full" }, "best_reused": { @@ -4300,7 +4656,7 @@ "level": "full" }, "DOM": { - "us": 2.3, + "us": 2.2, "level": "full" }, "On-Demand (reused)": { @@ -4308,7 +4664,7 @@ "level": "full" }, "On-Demand": { - "us": 3.0, + "us": 3.1, "level": "full" } } @@ -4317,14 +4673,14 @@ "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" } } @@ -4332,36 +4688,36 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 8.9, + "us": 9.2, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 5.7, + "us": 5.6, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 5.7, + "us": 5.6, "level": "partial" }, "generic (double)": { - "us": 8.9, + "us": 9.1, "level": "partial" }, "generic (double, strict)": { - "us": 8.9, + "us": 9.2, + "level": "full" + }, + "generic (strict)": { + "us": 14.8, "level": "full" }, "generic": { "us": 14.9, "level": "partial" - }, - "generic (strict)": { - "us": 15.0, - "level": "full" } }, "excluded": { @@ -4371,39 +4727,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 2.3, + "us": 2.4, "level": "full" }, "best_any": { "variant": "SAX", - "us": 2.3, + "us": 2.4, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 2.3, + "us": 2.4, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 2.3, + "us": 2.4, "level": "full" }, "variants": { "SAX": { - "us": 2.3, + "us": 2.4, "level": "full" }, "SAX (reused)": { - "us": 2.3, + "us": 2.4, "level": "full" }, "parser (reused)": { - "us": 5.9, + "us": 5.7, "level": "full" }, "parse": { - "us": 6.2, + "us": 6.0, "level": "full" } } @@ -4415,13 +4771,13 @@ "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 4.4, + "variant": "SAX (string stream) (no encoding check)", + "us": 4.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 11.7, + "us": 11.5, "level": "full" }, "best_reused_any": { @@ -4430,12 +4786,20 @@ "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 4.3, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 4.3, + "level": "no UTF-8" + }, "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)": { @@ -4443,23 +4807,31 @@ "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 8.1, + "us": 8.2, "level": "no UTF-8" }, "insitu (copy)": { "us": 8.5, "level": "full" }, + "insitu (copy untimed)": { + "us": 8.5, + "level": "full" + }, + "SAX (string stream)": { + "us": 9.9, + "level": "full" + }, "SAX": { - "us": 10.5, + "us": 11.0, "level": "full" }, "Document (reused allocator)": { - "us": 11.7, + "us": 11.5, "level": "full" }, "Document": { - "us": 11.8, + "us": 12.4, "level": "full" } } @@ -4553,31 +4925,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 323.2, + "us": 327.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 323.2, + "us": 327.7, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 318.4, + "us": 319.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 318.4, + "us": 319.6, "level": "full" }, "variants": { "read (reused)": { - "us": 318.4, + "us": 319.6, "level": "full" }, "parse": { - "us": 323.2, + "us": 327.7, + "level": "full" + }, + "parse_copy": { + "us": 352.4, "level": "full" } } @@ -4585,23 +4961,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 673.5, + "us": 707.5, "level": "full" }, "best_any": { "variant": "sax", - "us": 673.5, + "us": 707.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 673.5, + "us": 707.5, "level": "full" }, "parse": { - "us": 3801.1, + "us": 3767.1, "level": "full" } } @@ -4609,35 +4985,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 375.0, + "us": 375.4, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 375.0, + "us": 375.4, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 386.5, + "us": 376.6, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 386.5, + "us": 376.6, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 375.0, + "insitu (copy untimed)": { + "us": 348.6, "level": "full" }, - "read": { - "us": 377.2, + "insitu (copy)": { + "us": 375.4, "level": "full" }, "read (reused allocator)": { - "us": 386.5, + "us": 376.6, + "level": "full" + }, + "read": { + "us": 379.3, "level": "full" } } @@ -4645,39 +5025,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 379.2, + "us": 377.6, "level": "full" }, "best_any": { "variant": "DOM", - "us": 379.2, + "us": 377.6, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 375.8, + "us": 399.6, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 375.8, + "us": 399.6, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 375.8, + "DOM": { + "us": 377.6, "level": "full" }, - "DOM": { - "us": 379.2, + "DOM (reused)": { + "us": 399.6, "level": "full" }, "On-Demand": { - "us": 543.5, + "us": 549.4, "level": "full" }, "On-Demand (reused)": { - "us": 546.3, + "us": 552.8, "level": "full" } } @@ -4686,14 +5066,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 387.4, + "us": 387.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 387.4, + "us": 387.2, "level": "no UTF-8" } } @@ -4701,35 +5081,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 2285.6, + "us": 2232.9, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 1752.1, + "us": 1685.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 1752.1, - "level": "partial" - }, - "generic (double)": { - "us": 2230.9, + "us": 1685.1, "level": "partial" }, "generic (double, strict)": { - "us": 2285.6, + "us": 2232.9, "level": "full" }, + "generic (double)": { + "us": 2344.0, + "level": "partial" + }, "generic": { - "us": 3393.6, + "us": 3361.2, "level": "partial" }, "generic (strict)": { - "us": 3409.5, + "us": 3365.5, "level": "full" } }, @@ -4740,39 +5120,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 463.2, + "us": 453.3, "level": "full" }, "best_any": { "variant": "SAX", - "us": 463.2, + "us": 453.3, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 448.6, + "us": 445.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 448.6, + "us": 445.3, "level": "full" }, "variants": { "SAX (reused)": { - "us": 448.6, + "us": 445.3, "level": "full" }, "SAX": { - "us": 463.2, + "us": 453.3, "level": "full" }, "parse": { - "us": 1204.6, + "us": 1206.1, "level": "full" }, "parser (reused)": { - "us": 1228.4, + "us": 1211.2, "level": "full" } } @@ -4780,55 +5160,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1545.5, + "us": 1547.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 984.4, + "us": 1004.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2302.6, + "us": 2123.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1499.4, + "us": 1443.3, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 972.1, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 984.4, + "us": 1004.7, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1019.8, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1239.9, + "us": 1267.8, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1499.4, + "us": 1443.3, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1524.6, + "us": 1497.0, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1514.1, + "level": "full" + }, "insitu (copy)": { - "us": 1545.5, + "us": 1547.7, + "level": "full" + }, + "SAX (string stream)": { + "us": 1835.9, "level": "full" }, "SAX": { - "us": 1975.9, - "level": "full" - }, - "Document": { - "us": 2238.7, + "us": 2089.5, "level": "full" }, "Document (reused allocator)": { - "us": 2302.6, + "us": 2123.4, + "level": "full" + }, + "Document": { + "us": 2279.6, "level": "full" } } @@ -4922,31 +5318,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 659.8, + "us": 706.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 659.8, + "us": 706.0, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 659.0, + "us": 673.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 659.0, + "us": 673.8, "level": "full" }, "variants": { "read (reused)": { - "us": 659.0, + "us": 673.8, "level": "full" }, "parse": { - "us": 659.8, + "us": 706.0, + "level": "full" + }, + "parse_copy": { + "us": 706.2, "level": "full" } } @@ -4954,59 +5354,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 1159.3, + "us": 1223.1, "level": "full" }, "best_any": { "variant": "sax", - "us": 1159.3, + "us": 1223.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 1159.3, + "us": 1223.1, "level": "full" }, "parse": { - "us": 5265.9, + "us": 5621.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 640.5, + "variant": "insitu (copy)", + "us": 656.3, "level": "full" }, "best_any": { - "variant": "read", - "us": 640.5, + "variant": "insitu (copy)", + "us": 656.3, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 641.8, + "us": 651.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 641.8, + "us": 651.0, "level": "full" }, "variants": { - "read": { - "us": 640.5, + "insitu (copy untimed)": { + "us": 626.0, "level": "full" }, "read (reused allocator)": { - "us": 641.8, + "us": 651.0, "level": "full" }, "insitu (copy)": { - "us": 647.9, + "us": 656.3, + "level": "full" + }, + "read": { + "us": 656.5, "level": "full" } } @@ -5014,39 +5418,39 @@ "simdjson": { "best": { "variant": "DOM", - "us": 824.8, + "us": 837.8, "level": "full" }, "best_any": { "variant": "DOM", - "us": 824.8, + "us": 837.8, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 817.8, + "us": 822.5, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 817.8, + "us": 822.5, "level": "full" }, "variants": { "DOM (reused)": { - "us": 817.8, + "us": 822.5, "level": "full" }, "DOM": { - "us": 824.8, + "us": 837.8, "level": "full" }, "On-Demand (reused)": { - "us": 1199.1, + "us": 1223.7, "level": "full" }, "On-Demand": { - "us": 1200.3, + "us": 1326.5, "level": "full" } } @@ -5055,14 +5459,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 853.3, + "us": 884.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 853.3, + "us": 884.6, "level": "no UTF-8" } } @@ -5070,35 +5474,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 3594.8, + "us": 3626.3, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 3328.6, + "us": 3589.2, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 3328.6, - "level": "partial" - }, - "generic (double)": { - "us": 3460.0, + "us": 3589.2, "level": "partial" }, "generic (double, strict)": { - "us": 3594.8, + "us": 3626.3, "level": "full" }, + "generic (double)": { + "us": 3886.0, + "level": "partial" + }, "generic (strict)": { - "us": 6165.9, + "us": 6570.8, "level": "full" }, "generic": { - "us": 6397.9, + "us": 6730.6, "level": "partial" } }, @@ -5109,95 +5513,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 607.3, + "us": 644.7, "level": "full" }, "best_any": { "variant": "SAX", - "us": 607.3, + "us": 644.7, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 609.1, + "us": 617.2, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 609.1, + "us": 617.2, "level": "full" }, "variants": { - "SAX": { - "us": 607.3, + "SAX (reused)": { + "us": 617.2, "level": "full" }, - "SAX (reused)": { - "us": 609.1, + "SAX": { + "us": 644.7, "level": "full" }, "parse": { - "us": 1589.9, + "us": 1637.3, "level": "full" }, "parser (reused)": { - "us": 1599.8, + "us": 1664.1, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 1865.8, + "variant": "SAX (string stream)", + "us": 1926.7, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1480.6, + "variant": "SAX (string stream) (no encoding check)", + "us": 1460.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2445.5, + "us": 2584.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1913.7, + "us": 2008.5, "level": "no UTF-8" }, "variants": { + "SAX (string stream) (no encoding check)": { + "us": 1460.8, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 1480.6, + "us": 1535.3, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1645.3, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 1621.8, + "us": 1707.3, "level": "no UTF-8" }, - "SAX": { - "us": 1865.8, + "insitu (copy untimed)": { + "us": 1896.2, "level": "full" }, - "Document (no encoding check)": { - "us": 1898.1, - "level": "no UTF-8" + "SAX (string stream)": { + "us": 1926.7, + "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1913.7, + "us": 2008.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1920.7, + "us": 2047.0, + "level": "full" + }, + "Document (no encoding check)": { + "us": 2051.3, + "level": "no UTF-8" + }, + "SAX": { + "us": 2063.8, "level": "full" }, "Document (reused allocator)": { - "us": 2445.5, + "us": 2584.1, "level": "full" }, "Document": { - "us": 2474.5, + "us": 2605.6, "level": "full" } } @@ -5293,59 +5713,63 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 314.4, + "us": 320.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 314.4, + "us": 320.1, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 310.1, + "us": 315.5, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 310.1, + "us": 315.5, "level": "full" }, "variants": { "read (reused)": { - "us": 310.1, + "us": 315.5, "level": "full" }, "parse": { - "us": 314.4, + "us": 320.1, "level": "full" }, "structs (from_json)": { - "us": 321.5, + "us": 325.3, + "level": "full" + }, + "parse_copy": { + "us": 357.5, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 3520.8, + "variant": "structs (from_json)", + "us": 3601.5, "level": "full" }, "best_any": { - "variant": "parse", - "us": 3520.8, + "variant": "structs (from_json)", + "us": 3601.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 3520.8, + "structs (from_json)": { + "us": 3601.5, "level": "full" }, - "structs (from_json)": { - "us": 3542.8, + "parse": { + "us": 3660.0, "level": "full" } } @@ -5353,39 +5777,43 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 389.3, + "us": 386.1, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 389.3, + "us": 386.1, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 390.0, + "us": 390.7, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 390.0, + "us": 390.7, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 389.3, + "insitu (copy untimed)": { + "us": 351.1, "level": "full" }, - "read": { - "us": 389.6, + "insitu (copy)": { + "us": 386.1, "level": "full" }, "read (reused allocator)": { - "us": 390.0, + "us": 390.7, + "level": "full" + }, + "read": { + "us": 391.9, "level": "full" }, "read (raw numbers)": { - "us": 393.6, + "us": 394.2, "level": "full" } } @@ -5393,17 +5821,17 @@ "simdjson": { "best": { "variant": "DOM", - "us": 315.9, + "us": 316.4, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 181.5, + "variant": "On-Demand structs", + "us": 181.2, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 318.5, + "us": 316.4, "level": "full" }, "best_reused_any": { @@ -5416,24 +5844,24 @@ "us": 179.5, "level": "partial" }, - "On-Demand": { - "us": 181.5, + "On-Demand structs": { + "us": 181.2, "level": "partial" }, - "On-Demand structs": { - "us": 182.3, + "On-Demand": { + "us": 181.9, "level": "partial" }, "On-Demand (key selectors)": { - "us": 183.3, + "us": 184.7, "level": "partial" }, "DOM": { - "us": 315.9, + "us": 316.4, "level": "full" }, "DOM (reused)": { - "us": 318.5, + "us": 316.4, "level": "full" } } @@ -5442,14 +5870,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 456.2, + "us": 460.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 456.2, + "us": 460.1, "level": "no UTF-8" } } @@ -5457,44 +5885,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 542.5, + "us": 544.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 337.3, + "us": 345.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 337.3, + "us": 345.3, "level": "partial" }, "structs (validate_skipped)": { - "us": 542.5, + "us": 544.5, "level": "full" }, "lazy_json": { - "us": 759.6, - "level": "partial" - }, - "generic (double)": { - "us": 2447.7, + "us": 759.2, "level": "partial" }, "generic (double, strict)": { - "us": 2469.8, + "us": 2447.2, "level": "full" }, - "generic": { - "us": 3474.6, + "generic (double)": { + "us": 2509.0, "level": "partial" }, "generic (strict)": { - "us": 3478.7, + "us": 3518.9, "level": "full" + }, + "generic": { + "us": 3575.9, + "level": "partial" } }, "excluded": { @@ -5504,35 +5932,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 767.0, + "us": 775.6, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 767.0, + "us": 775.6, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1242.1, + "us": 1249.0, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1242.1, + "us": 1249.0, "level": "full" }, "variants": { "parse_into structs": { - "us": 767.0, - "level": "full" - }, - "parser (reused)": { - "us": 1242.1, + "us": 775.6, "level": "full" }, "parse": { - "us": 1249.2, + "us": 1240.9, + "level": "full" + }, + "parser (reused)": { + "us": 1249.0, "level": "full" } }, @@ -5543,55 +5971,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1812.7, + "us": 1811.8, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1180.8, + "us": 1179.9, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2224.6, + "us": 2256.3, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1476.2, + "us": 1470.8, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1180.8, + "insitu (copy untimed) (no encoding check)": { + "us": 1143.7, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 1474.7, + "insitu (copy) (no encoding check)": { + "us": 1179.9, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1415.7, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1476.2, + "us": 1470.8, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 1471.1, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 1510.3, + "us": 1551.6, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1762.5, + "level": "full" + }, "insitu (copy)": { - "us": 1812.7, + "us": 1811.8, "level": "full" }, "Document": { - "us": 2175.0, - "level": "full" - }, - "Document (raw numbers)": { - "us": 2202.7, + "us": 2217.3, "level": "full" }, "Document (reused allocator)": { - "us": 2224.6, + "us": 2256.3, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2277.9, + "level": "full" + }, + "Document (string stream)": { + "us": 2350.6, "level": "full" } } @@ -5677,147 +6121,155 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 778.5, + "us": 759.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 778.5, + "us": 759.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 777.9, + "us": 757.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 777.9, + "us": 757.6, "level": "full" }, "variants": { "read (reused)": { - "us": 777.9, + "us": 757.6, "level": "full" }, "parse": { - "us": 778.5, + "us": 759.2, "level": "full" }, "structs (from_json)": { - "us": 832.7, + "us": 805.3, + "level": "full" + }, + "parse_copy": { + "us": 875.4, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 5192.3, + "variant": "parse", + "us": 5124.4, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 5192.3, + "variant": "parse", + "us": 5124.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 5192.3, + "parse": { + "us": 5124.4, "level": "full" }, - "parse": { - "us": 5204.7, + "structs (from_json)": { + "us": 5196.7, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 899.9, + "variant": "insitu (copy)", + "us": 897.9, "level": "full" }, "best_any": { - "variant": "read", - "us": 899.9, + "variant": "insitu (copy)", + "us": 897.9, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 914.7, + "us": 939.6, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 914.7, + "us": 939.6, "level": "full" }, "variants": { - "read": { - "us": 899.9, + "insitu (copy untimed)": { + "us": 787.8, "level": "full" }, "insitu (copy)": { - "us": 902.2, + "us": 897.9, "level": "full" }, - "read (reused allocator)": { - "us": 914.7, + "read": { + "us": 900.4, "level": "full" }, "read (raw numbers)": { "us": 924.4, "level": "full" + }, + "read (reused allocator)": { + "us": 939.6, + "level": "full" } } }, "simdjson": { "best": { "variant": "DOM", - "us": 735.8, + "us": 730.9, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 494.6, + "us": 495.0, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 730.2, + "us": 736.0, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 496.1, + "us": 495.1, "level": "partial" }, "variants": { "On-Demand": { - "us": 494.6, + "us": 495.0, "level": "partial" }, "On-Demand (reused)": { - "us": 496.1, + "us": 495.1, "level": "partial" }, "On-Demand (key selectors)": { - "us": 507.3, + "us": 506.5, "level": "partial" }, "On-Demand structs": { - "us": 550.0, + "us": 547.5, "level": "partial" }, - "DOM (reused)": { - "us": 730.2, + "DOM": { + "us": 730.9, "level": "full" }, - "DOM": { - "us": 735.8, + "DOM (reused)": { + "us": 736.0, "level": "full" } } @@ -5826,14 +6278,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1013.0, + "us": 1011.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1013.0, + "us": 1011.3, "level": "no UTF-8" } } @@ -5841,43 +6293,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1370.5, + "us": 1368.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 417.5, + "us": 418.6, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 417.5, + "us": 418.6, "level": "partial" }, "structs (validate_skipped)": { - "us": 1370.5, + "us": 1368.2, + "level": "full" + }, + "generic (double, strict)": { + "us": 3883.8, "level": "full" }, "generic (double)": { - "us": 3889.8, + "us": 4072.2, "level": "partial" }, - "generic (double, strict)": { - "us": 3918.6, - "level": "full" - }, "lazy_json": { - "us": 6592.8, + "us": 6484.7, "level": "partial" }, "generic (strict)": { - "us": 6607.8, + "us": 6649.8, "level": "full" }, "generic": { - "us": 6648.2, + "us": 6662.2, "level": "partial" } }, @@ -5888,35 +6340,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 1389.1, + "us": 1388.9, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 1389.1, + "us": 1388.9, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1654.5, + "us": 1664.3, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1654.5, + "us": 1664.3, "level": "full" }, "variants": { "parse_into structs": { - "us": 1389.1, - "level": "full" - }, - "parse": { - "us": 1654.4, + "us": 1388.9, "level": "full" }, "parser (reused)": { - "us": 1654.5, + "us": 1664.3, + "level": "full" + }, + "parse": { + "us": 1670.4, "level": "full" } }, @@ -5927,55 +6379,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2305.7, + "us": 2346.6, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1931.8, + "us": 1929.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2440.1, + "us": 2396.9, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1956.4, + "us": 1946.7, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1817.2, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1931.8, + "us": 1929.7, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1956.4, + "us": 1946.7, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1980.3, + "us": 2012.4, "level": "no UTF-8" }, + "Document (string stream) (no encoding check)": { + "us": 2072.7, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 2197.7, + "level": "full" + }, "Document (raw numbers) (no encoding check)": { - "us": 2219.3, + "us": 2224.6, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2305.7, + "us": 2346.6, "level": "full" }, "Document (reused allocator)": { - "us": 2440.1, + "us": 2396.9, "level": "full" }, "Document": { - "us": 2482.1, + "us": 2500.5, + "level": "full" + }, + "Document (string stream)": { + "us": 2576.9, "level": "full" }, "Document (raw numbers)": { - "us": 2707.5, + "us": 2668.0, "level": "full" } } @@ -6061,59 +6529,63 @@ "nlohmann json_document": { "best": { "variant": "structs (from_json)", - "us": 1387.1, + "us": 1390.2, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 1387.1, + "us": 1390.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 1389.7, + "us": 1401.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1389.7, + "us": 1401.6, "level": "full" }, "variants": { "structs (from_json)": { - "us": 1387.1, - "level": "full" - }, - "read (reused)": { - "us": 1389.7, + "us": 1390.2, "level": "full" }, "parse": { - "us": 1409.8, + "us": 1392.0, + "level": "full" + }, + "read (reused)": { + "us": 1401.6, + "level": "full" + }, + "parse_copy": { + "us": 1581.9, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 11196.3, + "variant": "parse", + "us": 11831.4, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 11196.3, + "variant": "parse", + "us": 11831.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 11196.3, + "parse": { + "us": 11831.4, "level": "full" }, - "parse": { - "us": 11301.0, + "structs (from_json)": { + "us": 11838.9, "level": "full" } } @@ -6121,39 +6593,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 2627.2, + "us": 2632.1, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 2627.2, + "us": 2632.1, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 2854.8, + "us": 2867.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 2854.8, + "us": 2867.8, "level": "full" }, "variants": { "read (raw numbers)": { - "us": 2627.2, + "us": 2632.1, "level": "full" }, - "read": { - "us": 2816.3, - "level": "full" - }, - "read (reused allocator)": { - "us": 2854.8, + "insitu (copy untimed)": { + "us": 2696.2, "level": "full" }, "insitu (copy)": { - "us": 2875.3, + "us": 2822.4, + "level": "full" + }, + "read (reused allocator)": { + "us": 2867.8, + "level": "full" + }, + "read": { + "us": 2896.9, "level": "full" } } @@ -6161,47 +6637,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3272.5, + "us": 3262.1, "level": "full" }, "best_any": { - "variant": "On-Demand (key selectors)", - "us": 698.3, + "variant": "On-Demand", + "us": 701.6, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 3255.2, + "us": 3285.8, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 693.2, + "us": 697.1, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 693.2, - "level": "partial" - }, - "On-Demand (key selectors)": { - "us": 698.3, + "us": 697.1, "level": "partial" }, "On-Demand": { - "us": 703.0, + "us": 701.6, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 706.8, "level": "partial" }, "On-Demand structs": { - "us": 923.4, + "us": 922.0, "level": "partial" }, - "DOM (reused)": { - "us": 3255.2, + "DOM": { + "us": 3262.1, "level": "full" }, - "DOM": { - "us": 3272.5, + "DOM (reused)": { + "us": 3285.8, "level": "full" } } @@ -6210,14 +6686,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3104.0, + "us": 3204.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3104.0, + "us": 3204.4, "level": "no UTF-8" } } @@ -6225,43 +6701,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1870.1, + "us": 1924.3, "level": "full" }, "best_any": { "variant": "structs", - "us": 445.6, + "us": 444.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 445.6, + "us": 444.3, "level": "partial" }, "structs (validate_skipped)": { - "us": 1870.1, + "us": 1924.3, "level": "full" }, "lazy_json": { - "us": 2761.2, + "us": 3153.5, + "level": "partial" + }, + "generic (double)": { + "us": 11439.2, "level": "partial" }, "generic (double, strict)": { - "us": 11820.1, + "us": 11612.6, "level": "full" }, - "generic (double)": { - "us": 12164.4, - "level": "partial" - }, "generic": { - "us": 23111.5, + "us": 22534.9, "level": "partial" }, "generic (strict)": { - "us": 24204.0, + "us": 23212.8, "level": "full" } }, @@ -6272,35 +6748,35 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 7309.8, + "us": 7120.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 7309.8, + "us": 7120.7, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 6999.7, + "us": 7135.6, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 6999.7, + "us": 7135.6, "level": "full" }, "variants": { - "parser (reused)": { - "us": 6999.7, + "parse": { + "us": 7120.7, "level": "full" }, - "parse": { - "us": 7309.8, + "parser (reused)": { + "us": 7135.6, "level": "full" }, "parse_into structs": { - "us": 8373.8, + "us": 8436.7, "level": "full" } }, @@ -6311,56 +6787,72 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 11749.9, + "us": 11742.5, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 11749.9, + "us": 11742.5, "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 12705.3, + "us": 12468.0, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 12368.8, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 12468.0, + "level": "full" }, "variants": { - "insitu (copy)": { - "us": 11749.9, + "insitu (copy untimed)": { + "us": 11464.4, "level": "full" }, + "insitu (copy)": { + "us": 11742.5, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 11829.8, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 11889.3, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 11911.6, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 11914.2, - "level": "no UTF-8" - }, - "Document": { - "us": 12324.9, - "level": "full" - }, - "Document (reused allocator) (no encoding check)": { - "us": 12368.8, - "level": "no UTF-8" - }, - "Document (reused allocator)": { - "us": 12705.3, - "level": "full" - }, - "Document (no encoding check)": { - "us": 12707.4, + "us": 12131.9, "level": "no UTF-8" }, "Document (raw numbers)": { - "us": 12872.3, + "us": 12257.6, "level": "full" }, - "Document (raw numbers) (no encoding check)": { - "us": 12950.5, + "Document (reused allocator)": { + "us": 12468.0, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 12626.5, "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 12671.5, + "level": "no UTF-8" + }, + "Document (raw numbers) (no encoding check)": { + "us": 12686.6, + "level": "no UTF-8" + }, + "Document": { + "us": 13442.9, + "level": "full" } } }, @@ -6445,59 +6937,63 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 87988.2, + "us": 88082.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 87988.2, + "us": 88082.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 57099.8, + "us": 51072.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 57099.8, + "us": 51072.8, "level": "full" }, "variants": { "read (reused)": { - "us": 57099.8, + "us": 51072.8, "level": "full" }, "parse": { - "us": 87988.2, + "us": 88082.8, "level": "full" }, "structs (from_json)": { - "us": 107207.2, + "us": 107710.0, + "level": "full" + }, + "parse_copy": { + "us": 129542.0, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 453587.2, + "variant": "parse", + "us": 444210.1, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 453587.2, + "variant": "parse", + "us": 444210.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 453587.2, + "parse": { + "us": 444210.1, "level": "full" }, - "parse": { - "us": 458701.6, + "structs (from_json)": { + "us": 450085.9, "level": "full" } } @@ -6505,39 +7001,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 134300.6, + "us": 131454.5, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 134300.6, + "us": 131454.5, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 67881.0, + "us": 67645.6, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 67881.0, + "us": 67645.6, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 67881.0, + "us": 67645.6, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 92550.7, "level": "full" }, "read (raw numbers)": { - "us": 134300.6, - "level": "full" - }, - "insitu (copy)": { - "us": 139920.2, + "us": 131454.5, "level": "full" }, "read": { - "us": 140022.9, + "us": 132061.4, + "level": "full" + }, + "insitu (copy)": { + "us": 132476.1, "level": "full" } } @@ -6545,47 +7045,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 121563.3, + "us": 120808.3, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 47588.3, + "us": 48823.0, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 56438.9, + "us": 57830.4, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 28646.2, + "us": 29167.2, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 28646.2, + "us": 29167.2, "level": "partial" }, "On-Demand": { - "us": 47588.3, + "us": 48823.0, "level": "partial" }, "On-Demand (key selectors)": { - "us": 54625.1, + "us": 50711.7, "level": "partial" }, "DOM (reused)": { - "us": 56438.9, + "us": 57830.4, "level": "full" }, "On-Demand structs": { - "us": 68830.1, + "us": 72459.0, "level": "partial" }, "DOM": { - "us": 121563.3, + "us": 120808.3, "level": "full" } } @@ -6594,14 +7094,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 113400.2, + "us": 108244.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 113400.2, + "us": 108244.8, "level": "no UTF-8" } } @@ -6609,43 +7109,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 82551.3, + "us": 85744.7, "level": "full" }, "best_any": { "variant": "structs", - "us": 67046.6, + "us": 66442.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 67046.6, + "us": 66442.3, "level": "partial" }, "structs (validate_skipped)": { - "us": 82551.3, + "us": 85744.7, "level": "full" }, "lazy_json": { - "us": 99953.0, + "us": 103198.3, + "level": "partial" + }, + "generic (double)": { + "us": 253056.8, "level": "partial" }, "generic (double, strict)": { - "us": 251645.2, + "us": 253538.1, "level": "full" }, - "generic (double)": { - "us": 252002.9, - "level": "partial" - }, "generic (strict)": { - "us": 408702.6, + "us": 395135.3, "level": "full" }, "generic": { - "us": 408859.7, + "us": 400960.2, "level": "partial" } }, @@ -6656,35 +7156,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 95891.1, + "us": 97680.7, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 95891.1, + "us": 97680.7, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 147318.6, + "us": 140679.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 147318.6, + "us": 140679.2, "level": "full" }, "variants": { "parse_into structs": { - "us": 95891.1, + "us": 97680.7, "level": "full" }, "parser (reused)": { - "us": 147318.6, + "us": 140679.2, "level": "full" }, "parse": { - "us": 195684.9, + "us": 199764.5, "level": "full" } }, @@ -6695,55 +7195,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 253906.8, + "us": 246084.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 182669.1, + "variant": "Document (string stream) (no encoding check)", + "us": 173298.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 301324.1, + "us": 287964.9, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 199391.0, + "us": 198838.2, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 182669.1, + "insitu (copy untimed) (no encoding check)": { + "us": 142851.9, "level": "no UTF-8" }, - "Document (reused allocator) (no encoding check)": { - "us": 199391.0, + "Document (string stream) (no encoding check)": { + "us": 173298.8, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 185761.4, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 199781.8, + "us": 198545.7, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 198838.2, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 204984.1, + "us": 203308.5, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 253906.8, + "insitu (copy untimed)": { + "us": 209290.0, "level": "full" }, - "Document (raw numbers)": { - "us": 291681.3, + "insitu (copy)": { + "us": 246084.7, + "level": "full" + }, + "Document (string stream)": { + "us": 267647.7, "level": "full" }, "Document (reused allocator)": { - "us": 301324.1, + "us": 287964.9, + "level": "full" + }, + "Document (raw numbers)": { + "us": 290589.9, "level": "full" }, "Document": { - "us": 301639.6, + "us": 302957.4, "level": "full" } } @@ -6859,29 +7375,33 @@ "structs (from_json)": { "us": 1.6, "level": "full" + }, + "parse_copy": { + "us": 1.7, + "level": "full" } } }, "nlohmann json": { "best": { "variant": "parse", - "us": 20.0, + "us": 20.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 20.0, + "us": 20.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 20.0, + "us": 20.2, "level": "full" }, "structs (from_json)": { - "us": 20.1, + "us": 20.2, "level": "full" } } @@ -6908,6 +7428,10 @@ "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 1.6, + "level": "full" + }, "read (reused allocator)": { "us": 1.6, "level": "full" @@ -6939,7 +7463,7 @@ }, "best_reused": { "variant": "DOM (reused)", - "us": 1.8, + "us": 1.6, "level": "full" }, "best_reused_any": { @@ -6956,16 +7480,16 @@ "us": 1.1, "level": "partial" }, + "On-Demand": { + "us": 1.2, + "level": "partial" + }, "On-Demand structs": { "us": 1.2, "level": "partial" }, - "On-Demand": { - "us": 1.3, - "level": "partial" - }, "DOM (reused)": { - "us": 1.8, + "us": 1.6, "level": "full" }, "DOM": { @@ -7016,21 +7540,21 @@ "us": 2.2, "level": "full" }, - "generic (double, strict)": { - "us": 9.7, - "level": "full" - }, "generic (double)": { - "us": 9.8, + "us": 9.9, "level": "partial" }, - "generic": { - "us": 15.8, - "level": "partial" + "generic (double, strict)": { + "us": 10.0, + "level": "full" }, "generic (strict)": { - "us": 15.9, + "us": 15.6, "level": "full" + }, + "generic": { + "us": 15.7, + "level": "partial" } }, "excluded": { @@ -7050,12 +7574,12 @@ }, "best_reused": { "variant": "parser (reused)", - "us": 5.7, + "us": 5.6, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 5.7, + "us": 5.6, "level": "full" }, "variants": { @@ -7064,11 +7588,11 @@ "level": "full" }, "parser (reused)": { - "us": 5.7, + "us": 5.6, "level": "full" }, "parse": { - "us": 5.9, + "us": 5.8, "level": "full" } }, @@ -7084,42 +7608,58 @@ }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 4.1, + "us": 4.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 11.5, + "us": 11.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 7.4, + "us": 7.5, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { + "insitu (copy untimed) (no encoding check)": { "us": 4.1, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 4.2, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 5.2, + "level": "no UTF-8" + }, "Document (reused allocator) (no encoding check)": { - "us": 7.4, + "us": 7.5, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 7.9, + "us": 7.8, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 8.1, + "us": 8.0, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 8.2, + "level": "full" + }, "insitu (copy)": { "us": 8.3, "level": "full" }, + "Document (string stream)": { + "us": 10.7, + "level": "full" + }, "Document (reused allocator)": { - "us": 11.5, + "us": 11.4, "level": "full" }, "Document": { @@ -7127,7 +7667,7 @@ "level": "full" }, "Document (raw numbers)": { - "us": 11.8, + "us": 11.7, "level": "full" } } @@ -7213,35 +7753,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 271.8, + "us": 273.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 271.8, + "us": 273.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 265.8, + "us": 267.0, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 265.8, + "us": 267.0, "level": "full" }, "variants": { "read (reused)": { - "us": 265.8, + "us": 267.0, "level": "full" }, "parse": { - "us": 271.8, + "us": 273.2, "level": "full" }, "structs (from_json)": { - "us": 275.3, + "us": 275.8, + "level": "full" + }, + "parse_copy": { + "us": 302.1, "level": "full" } } @@ -7249,63 +7793,67 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 3409.4, + "us": 3454.7, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 3409.4, + "us": 3454.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 3409.4, + "us": 3454.7, "level": "full" }, "parse": { - "us": 3415.3, + "us": 3460.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 329.6, + "variant": "insitu (copy)", + "us": 326.0, "level": "full" }, "best_any": { - "variant": "read", - "us": 329.6, + "variant": "insitu (copy)", + "us": 326.0, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 327.4, + "us": 328.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 327.4, + "us": 328.4, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 327.4, - "level": "full" - }, - "read": { - "us": 329.6, + "insitu (copy untimed)": { + "us": 297.0, "level": "full" }, "insitu (copy)": { - "us": 330.9, + "us": 326.0, + "level": "full" + }, + "read": { + "us": 326.6, + "level": "full" + }, + "read (reused allocator)": { + "us": 328.4, "level": "full" }, "read (raw numbers)": { - "us": 337.5, + "us": 335.7, "level": "full" } } @@ -7313,7 +7861,7 @@ "simdjson": { "best": { "variant": "DOM", - "us": 299.3, + "us": 298.2, "level": "full" }, "best_any": { @@ -7323,17 +7871,17 @@ }, "best_reused": { "variant": "DOM (reused)", - "us": 300.3, + "us": 297.4, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 158.6, + "us": 158.3, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 158.6, + "us": 158.3, "level": "partial" }, "On-Demand structs": { @@ -7341,19 +7889,19 @@ "level": "partial" }, "On-Demand": { - "us": 163.4, + "us": 161.6, "level": "partial" }, "On-Demand (key selectors)": { - "us": 164.8, + "us": 163.8, "level": "partial" }, - "DOM": { - "us": 299.3, + "DOM (reused)": { + "us": 297.4, "level": "full" }, - "DOM (reused)": { - "us": 300.3, + "DOM": { + "us": 298.2, "level": "full" } } @@ -7362,14 +7910,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 345.5, + "us": 344.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 345.5, + "us": 344.7, "level": "no UTF-8" } } @@ -7377,43 +7925,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 439.7, + "us": 439.8, "level": "full" }, "best_any": { "variant": "structs", - "us": 294.5, + "us": 295.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 294.5, + "us": 295.1, "level": "partial" }, "lazy_json": { - "us": 421.2, + "us": 416.1, "level": "partial" }, "structs (validate_skipped)": { - "us": 439.7, + "us": 439.8, "level": "full" }, "generic (double, strict)": { - "us": 2270.0, + "us": 2279.6, "level": "full" }, "generic (double)": { - "us": 2280.6, + "us": 2285.3, "level": "partial" }, "generic (strict)": { - "us": 3281.9, + "us": 3278.9, "level": "full" }, "generic": { - "us": 3299.1, + "us": 3326.3, "level": "partial" } }, @@ -7424,35 +7972,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 657.5, + "us": 661.7, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 657.5, + "us": 661.7, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1142.2, + "us": 1136.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1142.2, + "us": 1136.2, "level": "full" }, "variants": { "parse_into structs": { - "us": 657.5, + "us": 661.7, "level": "full" }, "parser (reused)": { - "us": 1142.2, + "us": 1136.2, "level": "full" }, "parse": { - "us": 1146.8, + "us": 1137.0, "level": "full" } }, @@ -7463,55 +8011,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1495.9, + "us": 1496.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 905.9, + "us": 914.6, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2132.7, + "us": 2068.6, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1380.8, + "us": 1382.9, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 885.5, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 905.9, + "us": 914.6, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1176.6, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1380.8, + "us": 1382.9, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1388.9, + "us": 1386.4, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 1410.8, + "us": 1410.1, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1466.8, + "level": "full" + }, "insitu (copy)": { - "us": 1495.9, + "us": 1496.0, "level": "full" }, - "Document": { - "us": 2069.6, - "level": "full" - }, - "Document (raw numbers)": { - "us": 2101.7, + "Document (string stream)": { + "us": 1950.3, "level": "full" }, "Document (reused allocator)": { - "us": 2132.7, + "us": 2068.6, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2095.3, + "level": "full" + }, + "Document": { + "us": 2147.9, "level": "full" } } @@ -7597,59 +8161,63 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 501.0, + "us": 535.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 501.0, + "us": 535.4, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 500.8, + "us": 509.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 500.8, + "us": 509.8, "level": "full" }, "variants": { "read (reused)": { - "us": 500.8, + "us": 509.8, "level": "full" }, "parse": { - "us": 501.0, + "us": 535.4, "level": "full" }, "structs (from_json)": { - "us": 545.9, + "us": 560.2, + "level": "full" + }, + "parse_copy": { + "us": 568.3, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 5003.0, + "variant": "structs (from_json)", + "us": 5307.8, "level": "full" }, "best_any": { - "variant": "parse", - "us": 5003.0, + "variant": "structs (from_json)", + "us": 5307.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 5003.0, + "structs (from_json)": { + "us": 5307.8, "level": "full" }, - "structs (from_json)": { - "us": 5042.3, + "parse": { + "us": 5338.5, "level": "full" } } @@ -7657,39 +8225,43 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 490.5, + "us": 490.7, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 490.5, + "us": 490.7, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 491.9, + "us": 503.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 491.9, + "us": 503.2, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 457.9, + "level": "full" + }, "insitu (copy)": { - "us": 490.5, + "us": 490.7, "level": "full" }, "read": { - "us": 490.8, + "us": 500.9, "level": "full" }, "read (reused allocator)": { - "us": 491.9, + "us": 503.2, "level": "full" }, "read (raw numbers)": { - "us": 529.9, + "us": 538.7, "level": "full" } } @@ -7697,47 +8269,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 575.9, + "us": 577.7, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 323.6, + "us": 323.1, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 575.7, + "us": 603.0, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 322.3, + "us": 322.7, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 322.3, + "us": 322.7, "level": "partial" }, "On-Demand": { - "us": 323.6, + "us": 323.1, "level": "partial" }, "On-Demand (key selectors)": { - "us": 335.9, + "us": 346.5, "level": "partial" }, "On-Demand structs": { - "us": 378.8, + "us": 376.1, "level": "partial" }, - "DOM (reused)": { - "us": 575.7, + "DOM": { + "us": 577.7, "level": "full" }, - "DOM": { - "us": 575.9, + "DOM (reused)": { + "us": 603.0, "level": "full" } } @@ -7746,14 +8318,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 691.1, + "us": 719.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 691.1, + "us": 719.5, "level": "no UTF-8" } } @@ -7761,44 +8333,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 698.9, + "us": 731.3, "level": "full" }, "best_any": { "variant": "structs", - "us": 212.8, + "us": 211.7, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 212.8, + "us": 211.7, "level": "partial" }, "structs (validate_skipped)": { - "us": 698.9, + "us": 731.3, "level": "full" }, "lazy_json": { - "us": 1417.4, - "level": "partial" - }, - "generic (double)": { - "us": 3385.4, + "us": 1509.2, "level": "partial" }, "generic (double, strict)": { - "us": 3449.1, + "us": 3714.3, "level": "full" }, - "generic (strict)": { - "us": 6090.3, - "level": "full" + "generic (double)": { + "us": 3756.2, + "level": "partial" }, "generic": { - "us": 6260.9, + "us": 6712.3, "level": "partial" + }, + "generic (strict)": { + "us": 6747.3, + "level": "full" } }, "excluded": { @@ -7808,35 +8380,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 1144.1, + "us": 1225.7, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 1144.1, + "us": 1225.7, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1426.8, + "us": 1449.9, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1426.8, + "us": 1449.9, "level": "full" }, "variants": { "parse_into structs": { - "us": 1144.1, + "us": 1225.7, "level": "full" }, "parser (reused)": { - "us": 1426.8, + "us": 1449.9, "level": "full" }, "parse": { - "us": 1445.5, + "us": 1487.9, "level": "full" } }, @@ -7847,55 +8419,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1761.5, + "us": 1899.4, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1457.0, + "us": 1555.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2265.5, + "us": 2422.6, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1716.7, + "us": 1792.5, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1506.2, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1457.0, + "us": 1555.3, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1766.8, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1716.7, + "us": 1792.5, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 1752.2, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 1761.5, + "insitu (copy untimed)": { + "us": 1868.0, "level": "full" }, - "Document (raw numbers) (no encoding check)": { - "us": 1970.8, + "insitu (copy)": { + "us": 1899.4, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1920.0, "level": "no UTF-8" }, - "Document": { - "us": 2232.0, + "Document (raw numbers) (no encoding check)": { + "us": 2206.0, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 2212.9, "level": "full" }, "Document (reused allocator)": { - "us": 2265.5, + "us": 2422.6, + "level": "full" + }, + "Document": { + "us": 2468.0, "level": "full" }, "Document (raw numbers)": { - "us": 2548.8, + "us": 2693.0, "level": "full" } } @@ -7982,24 +8570,24 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 519.1, + "variant": "editable", + "us": 526.0, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 519.1, + "variant": "editable", + "us": 526.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 519.1, + "editable": { + "us": 526.0, "level": "full" }, - "editable": { - "us": 523.6, + "editable (source numbers)": { + "us": 565.7, "level": "full" } } @@ -8007,47 +8595,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2784.4, + "us": 3069.2, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2784.4, + "us": 3069.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 2784.4, + "us": 3069.2, "level": "full" }, "parse": { - "us": 3961.0, + "us": 4420.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 869.0, + "variant": "insitu (copy) + mut copy", + "us": 917.8, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 869.0, + "variant": "insitu (copy) + mut copy", + "us": 917.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "mut copy": { - "us": 869.0, + "insitu (copy) + mut copy": { + "us": 917.8, "level": "full" }, - "insitu (copy) + mut copy": { - "us": 890.4, + "insitu (copy untimed) + mut copy": { + "us": 932.4, + "level": "full" + }, + "mut copy": { + "us": 940.7, "level": "full" } } @@ -8056,14 +8648,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 634.2, + "us": 711.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 634.2, + "us": 711.4, "level": "no UTF-8" } } @@ -8071,23 +8663,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3866.4, + "us": 4340.8, "level": "full" }, "best_any": { "variant": "generic", - "us": 3863.7, + "us": 4301.2, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 3863.7, + "us": 4301.2, "level": "partial" }, "generic (strict)": { - "us": 3866.4, + "us": 4340.8, "level": "full" } }, @@ -8099,19 +8691,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1722.9, + "us": 1854.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 1722.9, + "us": 1854.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1722.9, + "us": 1854.7, "level": "full" } } @@ -8119,31 +8711,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2470.5, + "us": 2634.9, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1839.0, + "us": 2029.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1951.7, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1839.0, + "us": 2029.7, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2039.2, + "us": 2052.9, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 2248.2, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2470.5, + "us": 2634.9, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 2686.7, "level": "full" }, "Document": { - "us": 2740.8, + "us": 3020.8, + "level": "full" + }, + "Document (string stream)": { + "us": 3126.8, "level": "full" } } @@ -8217,23 +8825,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 1142.6, + "us": 1126.7, "level": "full" }, "best_any": { "variant": "editable", - "us": 1142.6, + "us": 1126.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable": { - "us": 1142.6, + "us": 1126.7, "level": "full" }, "editable (source numbers)": { - "us": 1144.3, + "us": 1126.8, "level": "full" } } @@ -8241,23 +8849,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 4911.2, + "us": 4905.2, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 4911.2, + "us": 4905.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 4911.2, + "us": 4905.2, "level": "full" }, "parse": { - "us": 5742.2, + "us": 5726.3, "level": "full" } } @@ -8265,23 +8873,27 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 1674.0, + "us": 1659.2, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 1674.0, + "us": 1659.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 1547.7, + "level": "full" + }, "insitu (copy) + mut copy": { - "us": 1674.0, + "us": 1659.2, "level": "full" }, "mut copy": { - "us": 1679.8, + "us": 1661.0, "level": "full" } } @@ -8290,14 +8902,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1458.3, + "us": 1472.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1458.3, + "us": 1472.1, "level": "no UTF-8" } } @@ -8305,23 +8917,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 7304.8, + "us": 7321.5, "level": "full" }, "best_any": { "variant": "generic (strict)", - "us": 7304.8, + "us": 7321.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (strict)": { - "us": 7304.8, + "us": 7321.5, "level": "full" }, "generic": { - "us": 7354.8, + "us": 7435.9, "level": "partial" } }, @@ -8333,19 +8945,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 2574.2, + "us": 2596.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 2574.2, + "us": 2596.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 2574.2, + "us": 2596.2, "level": "full" } } @@ -8353,31 +8965,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 3194.4, + "us": 3225.3, "level": "full" }, "best_any": { - "variant": "Document (no encoding check)", - "us": 2862.1, + "variant": "insitu (copy) (no encoding check)", + "us": 2838.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "Document (no encoding check)": { - "us": 2862.1, + "insitu (copy untimed) (no encoding check)": { + "us": 2728.1, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 2868.2, + "us": 2838.7, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 2897.4, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 2972.2, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 3103.2, + "level": "full" + }, "insitu (copy)": { - "us": 3194.4, + "us": 3225.3, "level": "full" }, "Document": { - "us": 3345.2, + "us": 3401.8, + "level": "full" + }, + "Document (string stream)": { + "us": 3507.7, "level": "full" } } @@ -8467,7 +9095,7 @@ "level": "full" }, "editable": { - "us": 5462.0, + "us": 5674.4, "level": "full" } } @@ -8475,23 +9103,23 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 15563.3, + "us": 16701.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 15563.3, + "us": 16701.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 15563.3, + "us": 16701.8, "level": "full" }, "ordered_json": { - "us": 16389.6, + "us": 16785.9, "level": "full" } } @@ -8499,23 +9127,27 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 7099.1, + "us": 7232.6, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 7099.1, + "us": 7232.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 7155.1, + "level": "full" + }, "mut copy": { - "us": 7099.1, + "us": 7232.6, "level": "full" }, "insitu (copy) + mut copy": { - "us": 7126.6, + "us": 7340.8, "level": "full" } } @@ -8524,14 +9156,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 7851.5, + "us": 7995.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 7851.5, + "us": 7995.7, "level": "no UTF-8" } } @@ -8539,24 +9171,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 27388.1, + "us": 26786.5, "level": "full" }, "best_any": { - "variant": "generic", - "us": 26776.2, - "level": "partial" + "variant": "generic (strict)", + "us": 26786.5, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic": { - "us": 26776.2, - "level": "partial" - }, "generic (strict)": { - "us": 27388.1, + "us": 26786.5, "level": "full" + }, + "generic": { + "us": 26840.5, + "level": "partial" } }, "excluded": { @@ -8567,51 +9199,67 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 12679.1, + "us": 12765.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 12679.1, + "us": 12765.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 12679.1, + "us": 12765.2, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 21015.8, + "variant": "Document (string stream)", + "us": 21307.0, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 21015.8, - "level": "full" + "variant": "Document (string stream) (no encoding check)", + "us": 21154.4, + "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy)": { - "us": 21015.8, + "insitu (copy untimed)": { + "us": 21138.8, "level": "full" }, - "insitu (copy) (no encoding check)": { - "us": 21059.8, + "Document (string stream) (no encoding check)": { + "us": 21154.4, "level": "no UTF-8" }, + "insitu (copy untimed) (no encoding check)": { + "us": 21195.3, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 21200.9, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 21307.0, + "level": "full" + }, + "insitu (copy)": { + "us": 21413.9, + "level": "full" + }, "Document (no encoding check)": { - "us": 21609.4, + "us": 21695.3, "level": "no UTF-8" }, "Document": { - "us": 21805.3, + "us": 22289.4, "level": "full" } } @@ -8685,23 +9333,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 202684.1, + "us": 196369.6, "level": "full" }, "best_any": { "variant": "editable", - "us": 202684.1, + "us": 196369.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable": { - "us": 202684.1, + "us": 196369.6, "level": "full" }, "editable (source numbers)": { - "us": 202876.0, + "us": 200396.1, "level": "full" } } @@ -8709,47 +9357,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 659023.4, + "us": 666261.1, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 659023.4, + "us": 666261.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 659023.4, + "us": 666261.1, "level": "full" }, "parse": { - "us": 889544.3, + "us": 901257.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 309767.3, + "variant": "insitu (copy) + mut copy", + "us": 316649.7, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 309767.3, + "variant": "insitu (copy) + mut copy", + "us": 316649.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "mut copy": { - "us": 309767.3, + "insitu (copy untimed) + mut copy": { + "us": 270654.0, "level": "full" }, "insitu (copy) + mut copy": { - "us": 318132.6, + "us": 316649.7, + "level": "full" + }, + "mut copy": { + "us": 328034.7, "level": "full" } } @@ -8758,14 +9410,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 183531.6, + "us": 183852.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 183531.6, + "us": 183852.2, "level": "no UTF-8" } } @@ -8773,23 +9425,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 744825.8, + "us": 725880.6, "level": "full" }, "best_any": { "variant": "generic (strict)", - "us": 744825.8, + "us": 725880.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (strict)": { - "us": 744825.8, + "us": 725880.6, "level": "full" }, "generic": { - "us": 751647.7, + "us": 783351.6, "level": "partial" } }, @@ -8801,19 +9453,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 358087.7, + "us": 350286.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 358087.7, + "us": 350286.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 358087.7, + "us": 350286.2, "level": "full" } } @@ -8821,31 +9473,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 380502.8, + "us": 386367.0, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 311506.0, + "variant": "Document (string stream) (no encoding check)", + "us": 299765.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 267080.6, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 299765.3, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 311506.0, + "us": 310314.1, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 320950.2, + "us": 324206.5, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 333912.8, + "level": "full" + }, "insitu (copy)": { - "us": 380502.8, + "us": 386367.0, + "level": "full" + }, + "Document (string stream)": { + "us": 389205.3, "level": "full" }, "Document": { - "us": 408469.6, + "us": 422735.6, "level": "full" } } @@ -8935,7 +9603,7 @@ "level": "full" }, "editable (source numbers)": { - "us": 3.0, + "us": 2.9, "level": "full" } } @@ -8959,7 +9627,7 @@ "level": "full" }, "parse": { - "us": 21.7, + "us": 22.2, "level": "full" } } @@ -8985,6 +9653,10 @@ "insitu (copy) + mut copy": { "us": 3.9, "level": "full" + }, + "insitu (copy untimed) + mut copy": { + "us": 3.9, + "level": "full" } } }, @@ -8992,14 +9664,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3.3, + "us": 3.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3.3, + "us": 3.2, "level": "no UTF-8" } } @@ -9007,23 +9679,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 18.5, + "us": 18.3, "level": "full" }, "best_any": { "variant": "generic", - "us": 18.2, + "us": 17.7, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 18.2, + "us": 17.7, "level": "partial" }, "generic (strict)": { - "us": 18.5, + "us": 18.3, "level": "full" } }, @@ -9035,19 +9707,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 8.4, + "us": 8.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 8.4, + "us": 8.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 8.4, + "us": 8.3, "level": "full" } } @@ -9055,19 +9727,27 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 12.1, + "us": 11.8, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 7.8, + "us": 7.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 7.8, + "us": 7.7, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 7.7, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 8.8, "level": "no UTF-8" }, "Document (no encoding check)": { @@ -9075,11 +9755,19 @@ "level": "no UTF-8" }, "insitu (copy)": { - "us": 12.1, + "us": 11.8, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 12.0, + "level": "full" + }, + "Document (string stream)": { + "us": 14.3, "level": "full" }, "Document": { - "us": 15.1, + "us": 15.5, "level": "full" } } @@ -9152,24 +9840,24 @@ "twitter_min": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 466.0, + "variant": "editable", + "us": 468.1, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 466.0, + "variant": "editable", + "us": 468.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 466.0, + "editable": { + "us": 468.1, "level": "full" }, - "editable": { - "us": 467.2, + "editable (source numbers)": { + "us": 468.7, "level": "full" } } @@ -9177,23 +9865,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2688.7, + "us": 2652.4, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2688.7, + "us": 2652.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 2688.7, + "us": 2652.4, "level": "full" }, "parse": { - "us": 3939.1, + "us": 3903.7, "level": "full" } } @@ -9201,23 +9889,27 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 801.7, + "us": 810.2, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 801.7, + "us": 810.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 732.8, + "level": "full" + }, "mut copy": { - "us": 801.7, + "us": 810.2, "level": "full" }, "insitu (copy) + mut copy": { - "us": 809.5, + "us": 812.3, "level": "full" } } @@ -9226,14 +9918,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 518.7, + "us": 522.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 518.7, + "us": 522.8, "level": "no UTF-8" } } @@ -9241,24 +9933,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3942.8, + "us": 3683.7, "level": "full" }, "best_any": { - "variant": "generic", - "us": 3813.5, - "level": "partial" + "variant": "generic (strict)", + "us": 3683.7, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic": { - "us": 3813.5, - "level": "partial" - }, "generic (strict)": { - "us": 3942.8, + "us": 3683.7, "level": "full" + }, + "generic": { + "us": 3705.9, + "level": "partial" } }, "excluded": { @@ -9269,19 +9961,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1629.6, + "us": 1602.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 1629.6, + "us": 1602.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1629.6, + "us": 1602.9, "level": "full" } } @@ -9289,31 +9981,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2194.8, + "us": 2142.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1615.3, + "us": 1573.9, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1543.9, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1615.3, + "us": 1573.9, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1745.4, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1964.5, + "us": 1947.8, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 2110.1, + "level": "full" + }, "insitu (copy)": { - "us": 2194.8, + "us": 2142.7, + "level": "full" + }, + "Document (string stream)": { + "us": 2507.6, "level": "full" }, "Document": { - "us": 2681.0, + "us": 2690.7, "level": "full" } } @@ -9386,24 +10094,24 @@ "citm_catalog_min": { "nlohmann json_document": { "best": { - "variant": "editable", - "us": 853.6, + "variant": "editable (source numbers)", + "us": 855.1, "level": "full" }, "best_any": { - "variant": "editable", - "us": 853.6, + "variant": "editable (source numbers)", + "us": 855.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "editable": { - "us": 853.6, + "editable (source numbers)": { + "us": 855.1, "level": "full" }, - "editable (source numbers)": { - "us": 856.9, + "editable": { + "us": 855.4, "level": "full" } } @@ -9411,47 +10119,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 4947.2, + "us": 4606.2, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 4947.2, + "us": 4606.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 4947.2, + "us": 4606.2, "level": "full" }, "parse": { - "us": 5853.2, + "us": 5425.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 1295.3, + "variant": "mut copy", + "us": 1245.4, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 1295.3, + "variant": "mut copy", + "us": 1245.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 1295.3, + "insitu (copy untimed) + mut copy": { + "us": 1213.2, "level": "full" }, "mut copy": { - "us": 1310.8, + "us": 1245.4, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 1247.5, "level": "full" } } @@ -9460,14 +10172,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1139.9, + "us": 1139.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1139.9, + "us": 1139.7, "level": "no UTF-8" } } @@ -9475,24 +10187,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 7107.4, + "us": 6647.5, "level": "full" }, "best_any": { - "variant": "generic", - "us": 7078.3, - "level": "partial" + "variant": "generic (strict)", + "us": 6647.5, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic": { - "us": 7078.3, - "level": "partial" - }, "generic (strict)": { - "us": 7107.4, + "us": 6647.5, "level": "full" + }, + "generic": { + "us": 6744.4, + "level": "partial" } }, "excluded": { @@ -9503,19 +10215,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 2345.2, + "us": 2320.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 2345.2, + "us": 2320.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 2345.2, + "us": 2320.5, "level": "full" } } @@ -9523,31 +10235,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2780.5, + "us": 2668.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 2451.2, + "us": 2360.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 2451.2, + "insitu (copy untimed) (no encoding check)": { + "us": 2342.4, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 2360.8, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 2516.6, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 2633.6, + "level": "full" + }, "Document (no encoding check)": { - "us": 2721.7, + "us": 2658.0, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2780.5, + "us": 2668.7, + "level": "full" + }, + "Document (string stream)": { + "us": 2953.8, "level": "full" }, "Document": { - "us": 3274.0, + "us": 3151.8, "level": "full" } } @@ -9622,36 +10350,40 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 466.4, + "variant": "parse + dump", + "us": 517.7, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 466.4, + "variant": "parse + dump", + "us": 517.7, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 469.3, + "us": 497.6, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 469.3, + "us": 497.6, "level": "full" }, "variants": { - "parse + dump (source numbers)": { - "us": 466.4, - "level": "full" - }, "read + dump (reused)": { - "us": 469.3, + "us": 497.6, "level": "full" }, "parse + dump": { - "us": 474.2, + "us": 517.7, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 521.2, + "level": "full" + }, + "parse_copy + dump": { + "us": 556.1, "level": "full" } } @@ -9659,59 +10391,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 3990.5, + "us": 4444.8, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 3990.5, + "us": 4444.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 3990.5, + "us": 4444.8, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 630.7, + "variant": "insitu (copy) + write", + "us": 678.4, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 630.7, + "variant": "insitu (copy) + write", + "us": 678.4, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 634.6, + "us": 727.7, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 634.6, + "us": 727.7, "level": "full" }, "variants": { - "read + write": { - "us": 630.7, + "insitu (copy untimed) + write": { + "us": 619.8, "level": "full" }, "insitu (copy) + write": { - "us": 630.9, + "us": 678.4, "level": "full" }, "read (raw numbers) + write": { - "us": 631.8, + "us": 678.6, + "level": "full" + }, + "read + write": { + "us": 688.3, "level": "full" }, "read + write (reused allocator)": { - "us": 634.6, + "us": 727.7, "level": "full" } } @@ -9719,35 +10455,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 842.5, + "us": 783.1, "level": "full" }, "best_any": { "variant": "minify", - "us": 98.8, + "us": 105.4, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 836.2, + "us": 788.0, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 836.2, + "us": 788.0, "level": "full" }, "variants": { "minify": { - "us": 98.8, + "us": 105.4, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 836.2, + "DOM + to_string": { + "us": 783.1, "level": "full" }, - "DOM + to_string": { - "us": 842.5, + "DOM (reused) + to_string": { + "us": 788.0, "level": "full" } } @@ -9756,14 +10492,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 646.3, + "us": 710.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 646.3, + "us": 710.1, "level": "no UTF-8" } } @@ -9771,28 +10507,28 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3833.7, + "us": 4131.9, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 422.3, + "us": 443.5, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 422.3, - "level": "partial" - }, - "generic": { - "us": 3766.3, + "us": 443.5, "level": "partial" }, "generic (strict)": { - "us": 3833.7, + "us": 4131.9, "level": "full" + }, + "generic": { + "us": 4305.0, + "level": "partial" } }, "excluded": { @@ -9803,31 +10539,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1753.4, + "us": 1924.5, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1753.4, + "us": 1924.5, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1732.4, + "us": 1806.3, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1732.4, + "us": 1806.3, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 1732.4, + "us": 1806.3, "level": "full" }, "parse + serialize": { - "us": 1753.4, + "us": 1924.5, "level": "full" } } @@ -9835,55 +10571,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 2415.8, + "us": 2808.0, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1751.2, + "variant": "SAX to Writer (raw numbers) (no encoding check)", + "us": 2022.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2820.2, + "us": 3112.6, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2080.0, + "us": 2367.0, "level": "no UTF-8" }, "variants": { - "SAX to Writer (no encoding check)": { - "us": 1751.2, - "level": "no UTF-8" - }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1795.8, + "us": 2022.3, "level": "no UTF-8" }, - "Document + Writer (reused allocator) (no encoding check)": { - "us": 2080.0, + "SAX to Writer (no encoding check)": { + "us": 2029.7, + "level": "no UTF-8" + }, + "SAX to Writer (string stream) (no encoding check)": { + "us": 2074.6, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2090.5, + "us": 2362.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2367.0, "level": "no UTF-8" }, "SAX to Writer": { - "us": 2415.8, + "us": 2808.0, + "level": "full" + }, + "SAX to Writer (string stream)": { + "us": 2863.8, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 2462.3, - "level": "full" - }, - "Document + Writer": { - "us": 2790.1, + "us": 2887.1, "level": "full" }, "Document + Writer (reused allocator)": { - "us": 2820.2, + "us": 3112.6, + "level": "full" + }, + "Document + Writer": { + "us": 3194.8, "level": "full" } } @@ -9953,35 +10697,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 1047.8, + "us": 1030.2, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 1047.8, + "us": 1030.2, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 1053.4, + "us": 1034.0, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 1053.4, + "us": 1034.0, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 1047.8, - "level": "full" - }, - "parse + dump": { - "us": 1050.5, + "us": 1030.2, "level": "full" }, "read + dump (reused)": { - "us": 1053.4, + "us": 1034.0, + "level": "full" + }, + "parse + dump": { + "us": 1040.1, + "level": "full" + }, + "parse_copy + dump": { + "us": 1164.2, "level": "full" } } @@ -9989,19 +10737,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 5718.6, + "us": 5713.0, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 5718.6, + "us": 5713.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 5718.6, + "us": 5713.0, "level": "full" } } @@ -10009,39 +10757,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 1246.1, + "us": 1234.6, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 1246.1, + "us": 1234.6, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 1325.4, + "us": 1340.3, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 1325.4, + "us": 1340.3, "level": "full" }, "variants": { - "read (raw numbers) + write": { - "us": 1246.1, + "insitu (copy untimed) + write": { + "us": 1189.1, "level": "full" }, - "insitu (copy) + write": { - "us": 1262.0, + "read (raw numbers) + write": { + "us": 1234.6, "level": "full" }, "read + write": { - "us": 1263.6, + "us": 1257.6, + "level": "full" + }, + "insitu (copy) + write": { + "us": 1278.1, "level": "full" }, "read + write (reused allocator)": { - "us": 1325.4, + "us": 1340.3, "level": "full" } } @@ -10049,35 +10801,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1430.4, + "us": 1395.0, "level": "full" }, "best_any": { "variant": "minify", - "us": 269.4, + "us": 269.0, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 1418.0, + "us": 1388.0, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 1418.0, + "us": 1388.0, "level": "full" }, "variants": { "minify": { - "us": 269.4, + "us": 269.0, "level": "partial" }, "DOM (reused) + to_string": { - "us": 1418.0, + "us": 1388.0, "level": "full" }, "DOM + to_string": { - "us": 1430.4, + "us": 1395.0, "level": "full" } } @@ -10086,14 +10838,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1482.5, + "us": 1485.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1482.5, + "us": 1485.4, "level": "no UTF-8" } } @@ -10101,27 +10853,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 7268.6, + "us": 7465.4, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 1058.0, + "us": 1059.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 1058.0, + "us": 1059.1, "level": "partial" }, "generic (strict)": { - "us": 7268.6, + "us": 7465.4, "level": "full" }, "generic": { - "us": 7369.2, + "us": 7838.0, "level": "partial" } }, @@ -10133,31 +10885,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2590.6, + "us": 2568.7, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2590.6, + "us": 2568.7, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 2559.3, + "us": 2734.1, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 2559.3, + "us": 2734.1, "level": "full" }, "variants": { - "parser (reused) + serialize": { - "us": 2559.3, + "parse + serialize": { + "us": 2568.7, "level": "full" }, - "parse + serialize": { - "us": 2590.6, + "parser (reused) + serialize": { + "us": 2734.1, "level": "full" } } @@ -10165,55 +10917,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 2869.6, + "us": 2975.2, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 2380.4, + "us": 2480.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 3414.9, + "us": 3396.9, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2892.0, + "us": 2979.8, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 2380.4, + "us": 2480.1, + "level": "no UTF-8" + }, + "SAX to Writer (string stream) (no encoding check)": { + "us": 2559.3, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2741.8, + "us": 2855.7, "level": "no UTF-8" }, "SAX to Writer": { - "us": 2869.6, + "us": 2975.2, "level": "full" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 2892.0, + "us": 2979.8, "level": "no UTF-8" }, + "SAX to Writer (string stream)": { + "us": 3031.7, + "level": "full" + }, "Document + Writer (no encoding check)": { - "us": 2950.5, + "us": 3045.5, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 3179.9, - "level": "full" - }, - "Document + Writer": { - "us": 3405.2, + "us": 3243.4, "level": "full" }, "Document + Writer (reused allocator)": { - "us": 3414.9, + "us": 3396.9, + "level": "full" + }, + "Document + Writer": { + "us": 3521.8, "level": "full" } } @@ -10283,35 +11043,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 2402.5, + "us": 2456.1, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 2402.5, + "us": 2456.1, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 5075.6, + "us": 5286.7, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 5075.6, + "us": 5286.7, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 2402.5, - "level": "full" - }, - "read + dump (reused)": { - "us": 5075.6, + "us": 2456.1, "level": "full" }, "parse + dump": { - "us": 5332.8, + "us": 5042.6, + "level": "full" + }, + "read + dump (reused)": { + "us": 5286.7, + "level": "full" + }, + "parse_copy + dump": { + "us": 5371.7, "level": "full" } } @@ -10319,19 +11083,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 16153.3, + "us": 16710.6, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 16153.3, + "us": 16710.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 16153.3, + "us": 16710.6, "level": "full" } } @@ -10339,39 +11103,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 3613.8, + "us": 3472.2, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 3613.8, + "us": 3472.2, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 6512.5, + "us": 6374.7, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 6512.5, + "us": 6374.7, "level": "full" }, "variants": { "read (raw numbers) + write": { - "us": 3613.8, + "us": 3472.2, "level": "full" }, - "insitu (copy) + write": { - "us": 6304.4, - "level": "full" - }, - "read + write": { - "us": 6459.2, + "insitu (copy untimed) + write": { + "us": 6282.8, "level": "full" }, "read + write (reused allocator)": { - "us": 6512.5, + "us": 6374.7, + "level": "full" + }, + "insitu (copy) + write": { + "us": 6376.0, + "level": "full" + }, + "read + write": { + "us": 6420.4, "level": "full" } } @@ -10379,35 +11147,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 8104.9, + "us": 8303.2, "level": "full" }, "best_any": { "variant": "minify", - "us": 332.1, + "us": 337.1, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 8218.6, + "us": 8712.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 8218.6, + "us": 8712.4, "level": "full" }, "variants": { "minify": { - "us": 332.1, + "us": 337.1, "level": "partial" }, "DOM + to_string": { - "us": 8104.9, + "us": 8303.2, "level": "full" }, "DOM (reused) + to_string": { - "us": 8218.6, + "us": 8712.4, "level": "full" } } @@ -10416,14 +11184,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 8135.4, + "us": 8121.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 8135.4, + "us": 8121.5, "level": "no UTF-8" } } @@ -10431,28 +11199,28 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 27453.5, + "us": 26961.6, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 2149.8, + "us": 2221.9, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 2149.8, + "us": 2221.9, + "level": "partial" + }, + "generic": { + "us": 26550.0, "level": "partial" }, "generic (strict)": { - "us": 27453.5, + "us": 26961.6, "level": "full" - }, - "generic": { - "us": 27781.3, - "level": "partial" } }, "excluded": { @@ -10463,31 +11231,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 13210.4, + "us": 12622.5, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 13210.4, + "us": 12622.5, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 12926.5, + "us": 12883.9, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 12926.5, + "us": 12883.9, "level": "full" }, "variants": { - "parser (reused) + serialize": { - "us": 12926.5, + "parse + serialize": { + "us": 12622.5, "level": "full" }, - "parse + serialize": { - "us": 13210.4, + "parser (reused) + serialize": { + "us": 12883.9, "level": "full" } } @@ -10495,55 +11263,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 15836.3, + "us": 14986.3, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 14655.3, - "level": "no UTF-8" + "variant": "SAX to Writer (raw numbers)", + "us": 14986.3, + "level": "full" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 22954.9, + "us": 21630.1, "level": "full" }, "best_reused_any": { - "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 21967.0, - "level": "no UTF-8" + "variant": "Document + Writer (reused allocator)", + "us": 21630.1, + "level": "full" }, "variants": { - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 14655.3, - "level": "no UTF-8" - }, "SAX to Writer (raw numbers)": { - "us": 15836.3, + "us": 14986.3, "level": "full" }, - "Document + Writer (reused allocator) (no encoding check)": { - "us": 21967.0, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 15205.7, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator)": { + "us": 21630.1, + "level": "full" + }, + "SAX to Writer (string stream) (no encoding check)": { + "us": 21691.3, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 22055.0, + "us": 22060.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 22298.3, "level": "no UTF-8" }, "Document + Writer": { - "us": 22073.2, + "us": 22589.2, "level": "full" }, - "Document + Writer (reused allocator)": { - "us": 22954.9, + "SAX to Writer (string stream)": { + "us": 22811.9, "level": "full" }, "SAX to Writer (no encoding check)": { - "us": 23982.0, + "us": 23647.5, "level": "no UTF-8" }, "SAX to Writer": { - "us": 24500.5, + "us": 24346.5, "level": "full" } } @@ -10612,36 +11388,40 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 147778.8, + "variant": "parse + dump", + "us": 146125.4, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 147778.8, + "variant": "parse + dump", + "us": 146125.4, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 111466.5, + "us": 113317.7, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 111466.5, + "us": 113317.7, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 111466.5, - "level": "full" - }, - "parse + dump (source numbers)": { - "us": 147778.8, + "us": 113317.7, "level": "full" }, "parse + dump": { - "us": 156633.8, + "us": 146125.4, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 151284.6, + "level": "full" + }, + "parse_copy + dump": { + "us": 187850.7, "level": "full" } } @@ -10649,59 +11429,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 536911.1, + "us": 543033.4, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 536911.1, + "us": 543033.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 536911.1, + "us": 543033.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 196788.9, + "variant": "read (raw numbers) + write", + "us": 193235.3, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 196788.9, + "variant": "read (raw numbers) + write", + "us": 193235.3, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 99342.1, + "us": 99883.3, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 99342.1, + "us": 99883.3, "level": "full" }, "variants": { "read + write (reused allocator)": { - "us": 99342.1, + "us": 99883.3, "level": "full" }, - "read + write": { - "us": 196788.9, - "level": "full" - }, - "insitu (copy) + write": { - "us": 202873.7, + "insitu (copy untimed) + write": { + "us": 154016.2, "level": "full" }, "read (raw numbers) + write": { - "us": 204688.7, + "us": 193235.3, + "level": "full" + }, + "read + write": { + "us": 193451.6, + "level": "full" + }, + "insitu (copy) + write": { + "us": 198565.4, "level": "full" } } @@ -10709,35 +11493,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 297945.8, + "us": 275006.6, "level": "full" }, "best_any": { "variant": "minify", - "us": 44830.0, + "us": 45087.0, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 227274.1, + "us": 216862.5, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 227274.1, + "us": 216862.5, "level": "full" }, "variants": { "minify": { - "us": 44830.0, + "us": 45087.0, "level": "partial" }, "DOM (reused) + to_string": { - "us": 227274.1, + "us": 216862.5, "level": "full" }, "DOM + to_string": { - "us": 297945.8, + "us": 275006.6, "level": "full" } } @@ -10746,14 +11530,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 167844.1, + "us": 166935.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 167844.1, + "us": 166935.3, "level": "no UTF-8" } } @@ -10761,28 +11545,28 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 521118.9, + "us": 528810.7, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 88952.0, + "us": 91152.7, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 88952.0, + "us": 91152.7, + "level": "partial" + }, + "generic": { + "us": 515973.2, "level": "partial" }, "generic (strict)": { - "us": 521118.9, + "us": 528810.7, "level": "full" - }, - "generic": { - "us": 524393.5, - "level": "partial" } }, "excluded": { @@ -10793,87 +11577,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 339359.7, + "us": 329090.3, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 339359.7, + "us": 329090.3, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 277423.2, + "us": 277756.5, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 277423.2, + "us": 277756.5, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 277423.2, + "us": 277756.5, "level": "full" }, "parse + serialize": { - "us": 339359.7, + "us": 329090.3, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 354207.7, + "variant": "SAX to Writer (string stream)", + "us": 358806.9, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 261920.5, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 261526.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 407736.6, + "us": 398389.8, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 310360.0, + "us": 310770.1, "level": "no UTF-8" }, "variants": { - "SAX to Writer (raw numbers) (no encoding check)": { - "us": 261920.5, + "SAX to Writer (string stream) (no encoding check)": { + "us": 261526.8, "level": "no UTF-8" }, "SAX to Writer (no encoding check)": { - "us": 265424.8, + "us": 279575.6, + "level": "no UTF-8" + }, + "SAX to Writer (raw numbers) (no encoding check)": { + "us": 280239.1, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 310360.0, + "us": 310770.1, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 315883.9, + "us": 326476.3, "level": "no UTF-8" }, + "SAX to Writer (string stream)": { + "us": 358806.9, + "level": "full" + }, "SAX to Writer": { - "us": 354207.7, + "us": 370482.2, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 362622.6, - "level": "full" - }, - "Document + Writer": { - "us": 398733.9, + "us": 371569.7, "level": "full" }, "Document + Writer (reused allocator)": { - "us": 407736.6, + "us": 398389.8, + "level": "full" + }, + "Document + Writer": { + "us": 425669.0, "level": "full" } } @@ -10973,25 +11765,29 @@ "parse + dump (source numbers)": { "us": 2.4, "level": "full" + }, + "parse_copy + dump": { + "us": 2.6, + "level": "full" } } }, "nlohmann json": { "best": { "variant": "parse + dump", - "us": 20.8, + "us": 21.4, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 20.8, + "us": 21.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 20.8, + "us": 21.4, "level": "full" } } @@ -11022,6 +11818,10 @@ "us": 2.8, "level": "full" }, + "insitu (copy untimed) + write": { + "us": 3.0, + "level": "full" + }, "read + write": { "us": 3.1, "level": "full" @@ -11039,7 +11839,7 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 4.9, + "us": 4.0, "level": "full" }, "best_any": { @@ -11049,12 +11849,12 @@ }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 4.4, + "us": 3.6, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 4.4, + "us": 3.6, "level": "full" }, "variants": { @@ -11063,11 +11863,11 @@ "level": "partial" }, "DOM (reused) + to_string": { - "us": 4.4, + "us": 3.6, "level": "full" }, "DOM + to_string": { - "us": 4.9, + "us": 4.0, "level": "full" } } @@ -11076,14 +11876,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 3.2, + "us": 3.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 3.2, + "us": 3.1, "level": "no UTF-8" } } @@ -11091,27 +11891,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 17.3, + "us": 17.2, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 2.0, + "us": 1.9, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 2.0, + "us": 1.9, "level": "partial" }, "generic": { - "us": 16.9, + "us": 17.0, "level": "partial" }, "generic (strict)": { - "us": 17.3, + "us": 17.2, "level": "full" } }, @@ -11123,49 +11923,49 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 8.5, + "us": 8.4, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 8.5, + "us": 8.4, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 8.3, + "us": 8.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 8.3, + "us": 8.2, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 8.3, + "us": 8.2, "level": "full" }, "parse + serialize": { - "us": 8.5, + "us": 8.4, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 13.2, + "variant": "SAX to Writer (string stream)", + "us": 12.7, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 9.5, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 7.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 15.2, + "us": 15.0, "level": "full" }, "best_reused_any": { @@ -11174,12 +11974,16 @@ "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 7.2, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 9.5, + "us": 9.6, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 9.7, + "us": 9.8, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { @@ -11187,23 +11991,27 @@ "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 11.5, + "us": 11.6, "level": "no UTF-8" }, + "SAX to Writer (string stream)": { + "us": 12.7, + "level": "full" + }, "SAX to Writer": { - "us": 13.2, + "us": 13.5, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 13.4, + "us": 13.5, "level": "full" }, "Document + Writer (reused allocator)": { - "us": 15.2, + "us": 15.0, "level": "full" }, "Document + Writer": { - "us": 15.3, + "us": 15.6, "level": "full" } } @@ -11273,35 +12081,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 413.8, + "us": 416.0, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 413.8, + "us": 416.0, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 416.8, + "us": 414.1, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 416.8, + "us": 414.1, "level": "full" }, "variants": { - "parse + dump (source numbers)": { - "us": 413.8, + "read + dump (reused)": { + "us": 414.1, "level": "full" }, - "read + dump (reused)": { - "us": 416.8, + "parse + dump (source numbers)": { + "us": 416.0, "level": "full" }, "parse + dump": { - "us": 423.2, + "us": 423.4, + "level": "full" + }, + "parse_copy + dump": { + "us": 453.0, "level": "full" } } @@ -11309,59 +12121,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 3786.8, + "us": 3850.0, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 3786.8, + "us": 3850.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 3786.8, + "us": 3850.0, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 566.6, + "variant": "insitu (copy) + write", + "us": 566.5, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 566.6, + "variant": "insitu (copy) + write", + "us": 566.5, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 561.5, + "us": 563.5, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 561.5, + "us": 563.5, "level": "full" }, "variants": { - "read + write (reused allocator)": { - "us": 561.5, + "insitu (copy untimed) + write": { + "us": 536.4, "level": "full" }, - "read + write": { - "us": 566.6, + "read + write (reused allocator)": { + "us": 563.5, "level": "full" }, "insitu (copy) + write": { - "us": 569.4, + "us": 566.5, + "level": "full" + }, + "read + write": { + "us": 568.9, "level": "full" }, "read (raw numbers) + write": { - "us": 573.5, + "us": 576.8, "level": "full" } } @@ -11369,35 +12185,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 815.3, + "us": 692.6, "level": "full" }, "best_any": { "variant": "minify", - "us": 73.4, + "us": 72.8, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 822.0, + "us": 693.0, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 822.0, + "us": 693.0, "level": "full" }, "variants": { "minify": { - "us": 73.4, + "us": 72.8, "level": "partial" }, "DOM + to_string": { - "us": 815.3, + "us": 692.6, "level": "full" }, "DOM (reused) + to_string": { - "us": 822.0, + "us": 693.0, "level": "full" } } @@ -11406,14 +12222,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 536.4, + "us": 537.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 536.4, + "us": 537.1, "level": "no UTF-8" } } @@ -11421,27 +12237,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3634.8, + "us": 3584.2, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 351.7, + "us": 343.7, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 351.7, + "us": 343.7, "level": "partial" }, "generic (strict)": { - "us": 3634.8, + "us": 3584.2, "level": "full" }, "generic": { - "us": 3689.9, + "us": 3610.6, "level": "partial" } }, @@ -11453,87 +12269,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1654.6, + "us": 1613.1, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1654.6, + "us": 1613.1, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1637.3, + "us": 1621.1, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1637.3, + "us": 1621.1, "level": "full" }, "variants": { - "parser (reused) + serialize": { - "us": 1637.3, + "parse + serialize": { + "us": 1613.1, "level": "full" }, - "parse + serialize": { - "us": 1654.6, + "parser (reused) + serialize": { + "us": 1621.1, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 2355.0, + "variant": "SAX to Writer (string stream)", + "us": 2268.6, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1677.9, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 1588.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2776.2, + "us": 2686.4, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2007.9, + "us": 2005.6, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 1588.1, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 1677.9, + "us": 1677.3, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1718.6, - "level": "no UTF-8" - }, - "Document + Writer (reused allocator) (no encoding check)": { - "us": 2007.9, + "us": 1720.5, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2008.9, + "us": 2003.4, "level": "no UTF-8" }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2005.6, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 2268.6, + "level": "full" + }, "SAX to Writer": { - "us": 2355.0, + "us": 2394.2, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 2384.2, - "level": "full" - }, - "Document + Writer": { - "us": 2676.9, + "us": 2418.4, "level": "full" }, "Document + Writer (reused allocator)": { - "us": 2776.2, + "us": 2686.4, + "level": "full" + }, + "Document + Writer": { + "us": 2746.0, "level": "full" } } @@ -11603,35 +12427,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 753.6, + "us": 773.5, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 753.6, + "us": 773.5, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 750.7, + "us": 816.0, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 750.7, + "us": 816.0, "level": "full" }, "variants": { - "read + dump (reused)": { - "us": 750.7, - "level": "full" - }, "parse + dump (source numbers)": { - "us": 753.6, + "us": 773.5, "level": "full" }, "parse + dump": { - "us": 756.0, + "us": 774.0, + "level": "full" + }, + "read + dump (reused)": { + "us": 816.0, + "level": "full" + }, + "parse_copy + dump": { + "us": 851.0, "level": "full" } } @@ -11639,59 +12467,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 5405.2, + "us": 5778.1, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 5405.2, + "us": 5778.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 5405.2, + "us": 5778.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "read (raw numbers) + write", - "us": 847.2, + "variant": "insitu (copy) + write", + "us": 891.6, "level": "full" }, "best_any": { - "variant": "read (raw numbers) + write", - "us": 847.2, + "variant": "insitu (copy) + write", + "us": 891.6, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 852.9, + "us": 890.9, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 852.9, + "us": 890.9, "level": "full" }, "variants": { - "read (raw numbers) + write": { - "us": 847.2, - "level": "full" - }, - "read + write": { - "us": 848.2, - "level": "full" - }, - "insitu (copy) + write": { - "us": 849.7, + "insitu (copy untimed) + write": { + "us": 823.6, "level": "full" }, "read + write (reused allocator)": { - "us": 852.9, + "us": 890.9, + "level": "full" + }, + "insitu (copy) + write": { + "us": 891.6, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 898.1, + "level": "full" + }, + "read + write": { + "us": 908.2, "level": "full" } } @@ -11699,35 +12531,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1258.8, + "us": 1329.9, "level": "full" }, "best_any": { "variant": "minify", - "us": 73.1, + "us": 72.9, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 1254.7, + "us": 1265.6, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 1254.7, + "us": 1265.6, "level": "full" }, "variants": { "minify": { - "us": 73.1, + "us": 72.9, "level": "partial" }, "DOM (reused) + to_string": { - "us": 1254.7, + "us": 1265.6, "level": "full" }, "DOM + to_string": { - "us": 1258.8, + "us": 1329.9, "level": "full" } } @@ -11736,14 +12568,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1128.5, + "us": 1236.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1128.5, + "us": 1236.7, "level": "no UTF-8" } } @@ -11751,27 +12583,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 6568.4, + "us": 7126.2, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 597.5, + "us": 634.8, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 597.5, + "us": 634.8, "level": "partial" }, "generic (strict)": { - "us": 6568.4, + "us": 7126.2, "level": "full" }, "generic": { - "us": 6612.4, + "us": 7268.4, "level": "partial" } }, @@ -11783,87 +12615,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2339.7, + "us": 2476.7, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2339.7, + "us": 2476.7, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 2321.0, + "us": 2411.1, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 2321.0, + "us": 2411.1, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 2321.0, + "us": 2411.1, "level": "full" }, "parse + serialize": { - "us": 2339.7, + "us": 2476.7, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 2594.0, + "variant": "SAX to Writer (string stream)", + "us": 2696.0, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 2120.7, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 2209.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 3088.8, + "us": 3286.6, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2596.9, + "us": 2816.6, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 2209.3, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 2120.7, + "us": 2368.2, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2428.3, + "us": 2656.7, "level": "no UTF-8" }, - "SAX to Writer": { - "us": 2594.0, + "SAX to Writer (string stream)": { + "us": 2696.0, "level": "full" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 2596.9, + "us": 2816.6, "level": "no UTF-8" }, + "SAX to Writer": { + "us": 2885.7, + "level": "full" + }, "Document + Writer (no encoding check)": { - "us": 2598.8, + "us": 2906.1, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 2878.1, + "us": 3223.5, "level": "full" }, "Document + Writer (reused allocator)": { - "us": 3088.8, + "us": 3286.6, "level": "full" }, "Document + Writer": { - "us": 3131.1, + "us": 3470.2, "level": "full" } } @@ -11935,23 +12775,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 152.2, + "us": 153.8, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 152.2, + "us": 153.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 152.2, + "us": 153.8, "level": "n/a" }, "dump": { - "us": 158.8, + "us": 159.7, "level": "n/a" } } @@ -11959,19 +12799,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 440.8, + "us": 450.9, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 440.8, + "us": 450.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 440.8, + "us": 450.9, "level": "n/a" } } @@ -11979,19 +12819,19 @@ "yyjson": { "best": { "variant": "write", - "us": 215.9, + "us": 217.8, "level": "n/a" }, "best_any": { "variant": "write", - "us": 215.9, + "us": 217.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 215.9, + "us": 217.8, "level": "n/a" } } @@ -11999,19 +12839,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 502.6, + "us": 388.9, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 502.6, + "us": 388.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 502.6, + "us": 388.9, "level": "n/a" } } @@ -12019,19 +12859,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 626.6, + "us": 627.2, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 626.6, + "us": 627.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 626.6, + "us": 627.2, "level": "n/a" } } @@ -12039,19 +12879,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 218.6, + "us": 223.8, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 218.6, + "us": 223.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 218.6, + "us": 223.8, "level": "n/a" } } @@ -12059,23 +12899,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 399.7, + "us": 399.1, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 399.7, + "us": 399.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 399.7, + "us": 399.1, "level": "n/a" }, "generic (strict)": { - "us": 406.0, + "us": 417.1, "level": "n/a" } }, @@ -12087,19 +12927,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 486.8, + "us": 478.5, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 486.8, + "us": 478.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 486.8, + "us": 478.5, "level": "n/a" } } @@ -12169,23 +13009,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 274.8, + "us": 278.6, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 274.8, + "us": 278.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 274.8, + "us": 278.6, "level": "n/a" }, "dump": { - "us": 277.4, + "us": 310.7, "level": "n/a" } } @@ -12193,19 +13033,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 605.5, + "us": 628.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 605.5, + "us": 628.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 605.5, + "us": 628.3, "level": "n/a" } } @@ -12213,19 +13053,19 @@ "yyjson": { "best": { "variant": "write", - "us": 359.0, + "us": 386.0, "level": "n/a" }, "best_any": { "variant": "write", - "us": 359.0, + "us": 386.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 359.0, + "us": 386.0, "level": "n/a" } } @@ -12233,19 +13073,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 672.0, + "us": 655.5, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 672.0, + "us": 655.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 672.0, + "us": 655.5, "level": "n/a" } } @@ -12253,19 +13093,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 952.3, + "us": 1008.0, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 952.3, + "us": 1008.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 952.3, + "us": 1008.0, "level": "n/a" } } @@ -12273,43 +13113,43 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 473.2, + "us": 474.9, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 473.2, + "us": 474.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 473.2, + "us": 474.9, "level": "n/a" } } }, "Glaze": { "best": { - "variant": "generic (strict)", - "us": 722.0, + "variant": "generic", + "us": 748.2, "level": "n/a" }, "best_any": { - "variant": "generic (strict)", - "us": 722.0, + "variant": "generic", + "us": 748.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (strict)": { - "us": 722.0, + "generic": { + "us": 748.2, "level": "n/a" }, - "generic": { - "us": 740.9, + "generic (strict)": { + "us": 786.5, "level": "n/a" } }, @@ -12321,19 +13161,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 900.1, + "us": 916.0, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 900.1, + "us": 916.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 900.1, + "us": 916.0, "level": "n/a" } } @@ -12403,23 +13243,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 986.3, + "us": 989.1, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 986.3, + "us": 989.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 986.3, + "us": 989.1, "level": "n/a" }, "dump": { - "us": 3797.9, + "us": 3714.5, "level": "n/a" } } @@ -12427,19 +13267,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 4485.1, + "us": 4506.5, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 4485.1, + "us": 4506.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 4485.1, + "us": 4506.5, "level": "n/a" } } @@ -12447,19 +13287,19 @@ "yyjson": { "best": { "variant": "write", - "us": 3514.0, + "us": 3476.1, "level": "n/a" }, "best_any": { "variant": "write", - "us": 3514.0, + "us": 3476.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 3514.0, + "us": 3476.1, "level": "n/a" } } @@ -12467,19 +13307,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 5039.4, + "us": 4895.9, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 5039.4, + "us": 4895.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 5039.4, + "us": 4895.9, "level": "n/a" } } @@ -12487,19 +13327,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 9850.9, + "us": 9596.0, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 9850.9, + "us": 9596.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 9850.9, + "us": 9596.0, "level": "n/a" } } @@ -12507,43 +13347,43 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 4853.0, + "us": 4850.4, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 4853.0, + "us": 4850.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 4853.0, + "us": 4850.4, "level": "n/a" } } }, "Glaze": { "best": { - "variant": "generic (strict)", - "us": 4228.6, + "variant": "generic", + "us": 4220.3, "level": "n/a" }, "best_any": { - "variant": "generic (strict)", - "us": 4228.6, + "variant": "generic", + "us": 4220.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (strict)": { - "us": 4228.6, + "generic": { + "us": 4220.3, "level": "n/a" }, - "generic": { - "us": 4299.9, + "generic (strict)": { + "us": 4254.8, "level": "n/a" } }, @@ -12555,19 +13395,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 5690.8, + "us": 5614.9, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 5690.8, + "us": 5614.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 5690.8, + "us": 5614.9, "level": "n/a" } } @@ -12637,23 +13477,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 67141.2, + "us": 64301.4, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 67141.2, + "us": 64301.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 67141.2, + "us": 64301.4, "level": "n/a" }, "dump": { - "us": 67700.2, + "us": 67038.5, "level": "n/a" } } @@ -12661,19 +13501,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 113461.6, + "us": 116528.8, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 113461.6, + "us": 116528.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 113461.6, + "us": 116528.8, "level": "n/a" } } @@ -12681,19 +13521,19 @@ "yyjson": { "best": { "variant": "write", - "us": 73409.9, + "us": 71247.3, "level": "n/a" }, "best_any": { "variant": "write", - "us": 73409.9, + "us": 71247.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 73409.9, + "us": 71247.3, "level": "n/a" } } @@ -12701,19 +13541,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 173989.6, + "us": 157616.0, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 173989.6, + "us": 157616.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 173989.6, + "us": 157616.0, "level": "n/a" } } @@ -12721,19 +13561,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 126032.3, + "us": 123763.6, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 126032.3, + "us": 123763.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 126032.3, + "us": 123763.6, "level": "n/a" } } @@ -12741,19 +13581,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 67189.2, + "us": 65131.2, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 67189.2, + "us": 65131.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 67189.2, + "us": 65131.2, "level": "n/a" } } @@ -12761,23 +13601,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 134914.1, + "us": 128019.6, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 134914.1, + "us": 128019.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 134914.1, + "us": 128019.6, "level": "n/a" }, "generic (strict)": { - "us": 141786.7, + "us": 140059.9, "level": "n/a" } }, @@ -12789,19 +13629,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 142547.0, + "us": 141845.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 142547.0, + "us": 141845.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 142547.0, + "us": 141845.7, "level": "n/a" } } @@ -12895,19 +13735,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" } } @@ -12935,19 +13775,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 2.9, + "us": 2.1, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 2.9, + "us": 2.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 2.9, + "us": 2.1, "level": "n/a" } } @@ -12955,19 +13795,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 3.8, + "us": 3.7, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 3.8, + "us": 3.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 3.8, + "us": 3.7, "level": "n/a" } } @@ -12995,23 +13835,23 @@ "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, + "us": 2.3, "level": "n/a" } }, @@ -13105,23 +13945,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 147.6, + "us": 148.8, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 147.6, + "us": 148.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 147.6, + "us": 148.8, "level": "n/a" }, "dump": { - "us": 154.4, + "us": 155.7, "level": "n/a" } } @@ -13129,19 +13969,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 438.7, + "us": 444.8, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 438.7, + "us": 444.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 438.7, + "us": 444.8, "level": "n/a" } } @@ -13149,19 +13989,19 @@ "yyjson": { "best": { "variant": "write", - "us": 217.9, + "us": 217.3, "level": "n/a" }, "best_any": { "variant": "write", - "us": 217.9, + "us": 217.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 217.9, + "us": 217.3, "level": "n/a" } } @@ -13169,19 +14009,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 503.4, + "us": 384.4, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 503.4, + "us": 384.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 503.4, + "us": 384.4, "level": "n/a" } } @@ -13189,19 +14029,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 615.9, + "us": 613.8, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 615.9, + "us": 613.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 615.9, + "us": 613.8, "level": "n/a" } } @@ -13209,19 +14049,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 202.2, + "us": 202.4, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 202.2, + "us": 202.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 202.2, + "us": 202.4, "level": "n/a" } } @@ -13229,23 +14069,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 405.7, + "us": 393.9, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 405.7, + "us": 393.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 405.7, + "us": 393.9, "level": "n/a" }, "generic (strict)": { - "us": 409.1, + "us": 413.9, "level": "n/a" } }, @@ -13257,19 +14097,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 487.9, + "us": 474.8, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 487.9, + "us": 474.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 487.9, + "us": 474.8, "level": "n/a" } } @@ -13339,23 +14179,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 265.7, + "us": 266.1, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 265.7, + "us": 266.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 265.7, + "us": 266.1, "level": "n/a" }, "dump": { - "us": 267.5, + "us": 272.1, "level": "n/a" } } @@ -13363,19 +14203,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 598.6, + "us": 635.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 598.6, + "us": 635.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 598.6, + "us": 635.3, "level": "n/a" } } @@ -13383,19 +14223,19 @@ "yyjson": { "best": { "variant": "write", - "us": 356.6, + "us": 363.4, "level": "n/a" }, "best_any": { "variant": "write", - "us": 356.6, + "us": 363.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 356.6, + "us": 363.4, "level": "n/a" } } @@ -13403,19 +14243,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 678.4, + "us": 670.2, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 678.4, + "us": 670.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 678.4, + "us": 670.2, "level": "n/a" } } @@ -13423,19 +14263,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 955.9, + "us": 967.6, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 955.9, + "us": 967.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 955.9, + "us": 967.6, "level": "n/a" } } @@ -13443,19 +14283,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 462.8, + "us": 478.8, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 462.8, + "us": 478.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 462.8, + "us": 478.8, "level": "n/a" } } @@ -13463,23 +14303,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 717.7, + "us": 753.3, "level": "n/a" }, "best_any": { "variant": "generic (strict)", - "us": 717.7, + "us": 753.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (strict)": { - "us": 717.7, + "us": 753.3, "level": "n/a" }, "generic": { - "us": 718.9, + "us": 785.5, "level": "n/a" } }, @@ -13491,19 +14331,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 890.2, + "us": 918.1, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 890.2, + "us": 918.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 890.2, + "us": 918.1, "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 ba6eec3a5..cbcb94d83 100644 --- a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc.json +++ b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc.json @@ -4,35 +4,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 254.0, + "us": 258.1, "level": "full" }, "best_any": { "variant": "accept", - "us": 254.0, + "us": 258.1, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 309.6, + "us": 313.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 309.6, + "us": 313.6, "level": "full" }, "variants": { "accept": { - "us": 254.0, + "us": 258.1, "level": "full" }, "read (reused)": { - "us": 309.6, + "us": 313.6, "level": "full" }, "parse": { - "us": 317.0, + "us": 324.2, "level": "full" } } @@ -40,63 +40,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 667.1, + "us": 682.7, "level": "full" }, "best_any": { "variant": "accept", - "us": 667.1, + "us": 682.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 667.1, + "us": 682.7, "level": "full" }, "parse": { - "us": 3392.2, + "us": 3479.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "read (raw numbers)", - "us": 388.7, + "variant": "read", + "us": 395.9, "level": "full" }, "best_any": { - "variant": "read (raw numbers)", - "us": 388.7, + "variant": "read", + "us": 395.9, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 391.7, + "us": 396.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 391.7, + "us": 396.8, "level": "full" }, "variants": { - "read (raw numbers)": { - "us": 388.7, - "level": "full" - }, - "insitu (copy)": { - "us": 390.6, + "insitu (copy untimed)": { + "us": 352.5, "level": "full" }, "read": { - "us": 390.8, + "us": 395.9, "level": "full" }, "read (reused allocator)": { - "us": 391.7, + "us": 396.8, + "level": "full" + }, + "insitu (copy)": { + "us": 398.8, + "level": "full" + }, + "read (raw numbers)": { + "us": 404.3, "level": "full" } } @@ -104,31 +108,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 298.5, + "us": 301.2, "level": "full" }, "best_any": { "variant": "DOM", - "us": 298.5, + "us": 301.2, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 295.8, + "us": 301.1, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 295.8, + "us": 301.1, "level": "full" }, "variants": { "DOM (reused)": { - "us": 295.8, + "us": 301.1, "level": "full" }, "DOM": { - "us": 298.5, + "us": 301.2, "level": "full" } } @@ -137,14 +141,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 402.9, + "us": 402.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 402.9, + "us": 402.8, "level": "no UTF-8" } } @@ -152,83 +156,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 714.4, + "us": 712.4, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 714.4, + "us": 712.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 714.4, + "us": 712.4, "level": "full" }, "generic (double, strict)": { - "us": 2262.6, + "us": 2356.2, "level": "full" }, "generic (double)": { - "us": 2267.8, + "us": 2363.7, "level": "partial" }, "generic": { - "us": 2804.0, + "us": 2849.1, "level": "partial" }, "generic (strict)": { - "us": 2811.3, + "us": 2915.2, "level": "full" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 687.3, + "variant": "SAX (numbers: none)", + "us": 690.5, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 687.3, + "variant": "SAX (numbers: none)", + "us": 690.5, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 684.7, + "us": 697.5, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 684.7, + "us": 697.5, "level": "full" }, "variants": { + "SAX (numbers: none)": { + "us": 690.5, + "level": "full" + }, "SAX (reused)": { - "us": 684.7, + "us": 697.5, "level": "full" }, "SAX": { - "us": 687.3, - "level": "full" - }, - "SAX (numbers: none)": { - "us": 693.0, - "level": "full" - }, - "parse (numbers: none)": { - "us": 1265.8, - "level": "full" - }, - "parser (reused)": { - "us": 1276.5, + "us": 734.3, "level": "full" }, "parse": { - "us": 1286.1, + "us": 1282.5, + "level": "full" + }, + "parse (numbers: none)": { + "us": 1339.2, + "level": "full" + }, + "parser (reused)": { + "us": 1363.9, "level": "full" } } @@ -236,63 +240,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1249.5, + "us": 1230.1, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1089.1, + "us": 1051.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1516.2, + "us": 1516.9, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1389.4, + "us": 1401.1, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1011.8, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1089.1, + "us": 1051.7, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1120.8, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1132.9, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1166.4, + "level": "full" + }, + "insitu (copy)": { + "us": 1230.1, + "level": "full" + }, + "SAX (default precision) (no encoding check)": { + "us": 1247.9, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1248.6, + "us": 1252.0, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 1249.5, + "SAX (string stream, default precision)": { + "us": 1318.7, + "level": "full" + }, + "SAX (string stream)": { + "us": 1324.7, "level": "full" }, "SAX (raw numbers) (no encoding check)": { - "us": 1310.3, - "level": "no UTF-8" - }, - "Document (reused allocator) (no encoding check)": { - "us": 1389.4, + "us": 1324.9, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1410.6, + "us": 1393.2, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1401.1, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1516.2, + "us": 1516.9, "level": "full" }, - "SAX": { - "us": 1950.0, + "SAX (default precision)": { + "us": 1943.2, "level": "full" }, "SAX (raw numbers)": { - "us": 2000.4, + "us": 2008.5, + "level": "full" + }, + "SAX": { + "us": 2039.8, "level": "full" }, "Document": { - "us": 2118.8, + "us": 2195.1, "level": "full" } } @@ -390,35 +426,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 510.2, + "us": 512.8, "level": "full" }, "best_any": { "variant": "accept", - "us": 510.2, + "us": 512.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 776.9, + "us": 827.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 776.9, + "us": 827.6, "level": "full" }, "variants": { "accept": { - "us": 510.2, + "us": 512.8, "level": "full" }, "parse": { - "us": 775.7, + "us": 821.9, "level": "full" }, "read (reused)": { - "us": 776.9, + "us": 827.6, "level": "full" } } @@ -426,63 +462,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 1426.4, + "us": 1418.7, "level": "full" }, "best_any": { "variant": "accept", - "us": 1426.4, + "us": 1418.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 1426.4, + "us": 1418.7, "level": "full" }, "parse": { - "us": 5235.3, + "us": 5293.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 946.0, + "variant": "read (raw numbers)", + "us": 940.0, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 946.0, + "variant": "read (raw numbers)", + "us": 940.0, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 965.2, + "us": 1001.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 965.2, + "us": 1001.1, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 946.0, - "level": "full" - }, - "read": { - "us": 950.7, + "insitu (copy untimed)": { + "us": 837.2, "level": "full" }, "read (raw numbers)": { - "us": 955.0, + "us": 940.0, + "level": "full" + }, + "insitu (copy)": { + "us": 947.5, + "level": "full" + }, + "read": { + "us": 956.5, "level": "full" }, "read (reused allocator)": { - "us": 965.2, + "us": 1001.1, "level": "full" } } @@ -490,31 +530,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 689.8, + "us": 694.8, "level": "full" }, "best_any": { "variant": "DOM", - "us": 689.8, + "us": 694.8, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 692.7, + "us": 687.8, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 692.7, + "us": 687.8, "level": "full" }, "variants": { - "DOM": { - "us": 689.8, + "DOM (reused)": { + "us": 687.8, "level": "full" }, - "DOM (reused)": { - "us": 692.7, + "DOM": { + "us": 694.8, "level": "full" } } @@ -523,14 +563,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 930.6, + "us": 932.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 930.6, + "us": 932.1, "level": "no UTF-8" } } @@ -538,147 +578,179 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1973.8, + "us": 1982.9, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1973.8, + "us": 1982.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 1973.8, + "us": 1982.9, "level": "full" }, "generic (double)": { - "us": 3935.3, + "us": 3997.4, "level": "partial" }, "generic (double, strict)": { - "us": 3949.4, + "us": 4043.9, + "level": "full" + }, + "generic (strict)": { + "us": 5297.4, "level": "full" }, "generic": { - "us": 5180.1, + "us": 5360.0, "level": "partial" - }, - "generic (strict)": { - "us": 5322.7, - "level": "full" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 912.2, + "us": 917.3, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 912.2, + "us": 917.3, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 949.2, + "us": 951.1, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 949.2, + "us": 951.1, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 912.2, - "level": "full" - }, - "SAX": { - "us": 942.5, + "us": 917.3, "level": "full" }, "SAX (reused)": { - "us": 949.2, + "us": 951.1, + "level": "full" + }, + "SAX": { + "us": 971.1, "level": "full" }, "parse (numbers: none)": { - "us": 1587.3, - "level": "full" - }, - "parser (reused)": { - "us": 1633.8, + "us": 1610.3, "level": "full" }, "parse": { - "us": 1649.4, + "us": 1636.0, + "level": "full" + }, + "parser (reused)": { + "us": 1637.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 1892.6, + "variant": "SAX (string stream, default precision)", + "us": 1552.9, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1589.9, + "variant": "SAX (default precision) (no encoding check)", + "us": 1433.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1885.8, + "us": 1993.2, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator)", - "us": 1885.8, - "level": "full" + "variant": "Document (reused allocator) (no encoding check)", + "us": 1911.7, + "level": "no UTF-8" }, "variants": { + "SAX (default precision) (no encoding check)": { + "us": 1433.7, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1471.0, + "level": "no UTF-8" + }, + "SAX (string stream, default precision)": { + "us": 1552.9, + "level": "full" + }, + "SAX (string stream)": { + "us": 1605.2, + "level": "full" + }, "SAX (no encoding check)": { - "us": 1589.9, + "us": 1609.4, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1616.2, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1695.4, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 1823.4, + "us": 1766.6, "level": "no UTF-8" }, - "SAX (raw numbers) (no encoding check)": { - "us": 1855.3, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 1859.8, - "level": "no UTF-8" - }, - "Document (reused allocator)": { - "us": 1885.8, + "insitu (copy untimed)": { + "us": 1790.7, "level": "full" }, + "SAX (default precision)": { + "us": 1861.2, + "level": "full" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1865.6, + "level": "no UTF-8" + }, "insitu (copy)": { - "us": 1892.6, + "us": 1895.8, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1925.8, + "us": 1911.7, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 1913.1, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 1993.2, + "level": "full" + }, "SAX": { - "us": 2019.6, + "us": 2082.3, "level": "full" }, "Document": { - "us": 2315.2, + "us": 2302.9, "level": "full" }, "SAX (raw numbers)": { - "us": 2363.2, + "us": 2335.0, "level": "full" } } @@ -776,35 +848,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 861.7, + "us": 934.3, "level": "full" }, "best_any": { "variant": "accept", - "us": 861.7, + "us": 934.3, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 1303.3, + "us": 1367.1, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1303.3, + "us": 1367.1, "level": "full" }, "variants": { "accept": { - "us": 861.7, + "us": 934.3, "level": "full" }, "parse": { - "us": 1302.2, + "us": 1354.7, "level": "full" }, "read (reused)": { - "us": 1303.3, + "us": 1367.1, "level": "full" } } @@ -812,23 +884,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 4398.5, + "us": 4558.8, "level": "full" }, "best_any": { "variant": "accept", - "us": 4398.5, + "us": 4558.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 4398.5, + "us": 4558.8, "level": "full" }, "parse": { - "us": 10938.2, + "us": 11796.5, "level": "full" } } @@ -836,39 +908,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 2132.8, + "us": 2199.0, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 2132.8, + "us": 2199.0, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 3276.7, + "us": 3531.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 3276.7, + "us": 3531.0, "level": "full" }, "variants": { "read (raw numbers)": { - "us": 2132.8, + "us": 2199.0, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 3238.7, "level": "full" }, "insitu (copy)": { - "us": 3264.7, + "us": 3282.1, "level": "full" }, "read": { - "us": 3272.5, + "us": 3439.1, "level": "full" }, "read (reused allocator)": { - "us": 3276.7, + "us": 3531.0, "level": "full" } } @@ -876,31 +952,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3166.0, + "us": 3336.7, "level": "full" }, "best_any": { "variant": "DOM", - "us": 3166.0, + "us": 3336.7, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 3139.9, + "us": 3354.2, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 3139.9, + "us": 3354.2, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 3139.9, + "DOM": { + "us": 3336.7, "level": "full" }, - "DOM": { - "us": 3166.0, + "DOM (reused)": { + "us": 3354.2, "level": "full" } } @@ -909,14 +985,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3170.0, + "us": 3349.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3170.0, + "us": 3349.0, "level": "no UTF-8" } } @@ -924,35 +1000,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 2521.3, + "us": 2625.2, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 2521.3, + "us": 2625.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 2521.3, + "us": 2625.2, "level": "full" }, "generic (double)": { - "us": 9693.7, + "us": 10379.7, "level": "partial" }, "generic (double, strict)": { - "us": 10863.0, + "us": 10379.9, "level": "full" }, "generic": { - "us": 16608.9, + "us": 17925.1, "level": "partial" }, "generic (strict)": { - "us": 16718.8, + "us": 18350.8, "level": "full" } } @@ -960,112 +1036,144 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 1636.9, + "us": 1676.0, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 1636.9, + "us": 1676.0, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 5357.1, + "us": 5755.4, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 5357.1, + "us": 5755.4, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 1636.9, + "us": 1676.0, "level": "full" }, "parse (numbers: none)": { - "us": 2860.5, + "us": 3045.3, "level": "full" }, "SAX": { - "us": 5347.8, + "us": 5674.9, "level": "full" }, "SAX (reused)": { - "us": 5357.1, + "us": 5755.4, "level": "full" }, "parser (reused)": { - "us": 6538.8, + "us": 7024.6, "level": "full" }, "parse": { - "us": 6584.2, + "us": 7050.3, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX (raw numbers)", - "us": 10132.9, + "variant": "SAX (string stream, default precision)", + "us": 3875.2, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 10051.4, - "level": "no UTF-8" + "variant": "SAX (string stream, default precision)", + "us": 3875.2, + "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 11367.2, + "us": 11932.5, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator)", - "us": 11367.2, + "us": 11932.5, "level": "full" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 10051.4, - "level": "no UTF-8" - }, - "SAX (raw numbers)": { - "us": 10132.9, + "SAX (string stream, default precision)": { + "us": 3875.2, "level": "full" }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 3909.8, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 4364.7, + "level": "no UTF-8" + }, + "SAX (default precision)": { + "us": 4522.5, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 9361.8, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 9682.3, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 10216.5, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 10385.2, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 10498.8, + "level": "no UTF-8" + }, "insitu (copy)": { - "us": 10158.0, + "us": 10675.1, "level": "full" }, "SAX (raw numbers) (no encoding check)": { - "us": 10179.1, + "us": 10929.3, "level": "no UTF-8" }, - "SAX (no encoding check)": { - "us": 10625.4, - "level": "no UTF-8" - }, - "SAX": { - "us": 10841.5, + "SAX (raw numbers)": { + "us": 11335.1, "level": "full" }, + "SAX": { + "us": 11351.6, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 11634.9, + "level": "no UTF-8" + }, "Document (reused allocator)": { - "us": 11367.2, + "us": 11932.5, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 11583.4, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 11586.6, + "us": 12244.9, "level": "no UTF-8" }, "Document": { - "us": 11620.6, + "us": 12311.1, "level": "full" + }, + "Document (no encoding check)": { + "us": 12870.4, + "level": "no UTF-8" } } }, @@ -1162,35 +1270,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 34542.7, + "us": 34514.4, "level": "full" }, "best_any": { "variant": "accept", - "us": 34542.7, + "us": 34514.4, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 41936.5, + "us": 42941.5, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 41936.5, + "us": 42941.5, "level": "full" }, "variants": { "accept": { - "us": 34542.7, + "us": 34514.4, "level": "full" }, "read (reused)": { - "us": 41936.5, + "us": 42941.5, "level": "full" }, "parse": { - "us": 78448.2, + "us": 80105.0, "level": "full" } } @@ -1198,23 +1306,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 71489.2, + "us": 74331.3, "level": "full" }, "best_any": { "variant": "accept", - "us": 71489.2, + "us": 74331.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 71489.2, + "us": 74331.3, "level": "full" }, "parse": { - "us": 379702.5, + "us": 381484.0, "level": "full" } } @@ -1222,39 +1330,43 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 127616.5, + "us": 130541.4, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 127616.5, + "us": 130541.4, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 62563.7, + "us": 65147.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 62563.7, + "us": 65147.4, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 62563.7, + "us": 65147.4, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 93043.0, "level": "full" }, "insitu (copy)": { - "us": 127616.5, - "level": "full" - }, - "read (raw numbers)": { - "us": 127646.5, + "us": 130541.4, "level": "full" }, "read": { - "us": 128127.0, + "us": 135114.5, + "level": "full" + }, + "read (raw numbers)": { + "us": 137990.8, "level": "full" } } @@ -1262,31 +1374,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 116295.5, + "us": 120981.8, "level": "full" }, "best_any": { "variant": "DOM", - "us": 116295.5, + "us": 120981.8, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 50334.1, + "us": 48708.1, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 50334.1, + "us": 48708.1, "level": "full" }, "variants": { "DOM (reused)": { - "us": 50334.1, + "us": 48708.1, "level": "full" }, "DOM": { - "us": 116295.5, + "us": 120981.8, "level": "full" } } @@ -1295,14 +1407,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 96915.2, + "us": 98510.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 96915.2, + "us": 98510.6, "level": "no UTF-8" } } @@ -1310,147 +1422,179 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 76716.4, + "us": 76758.9, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 76716.4, + "us": 76758.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 76716.4, - "level": "full" - }, - "generic (double, strict)": { - "us": 222360.1, + "us": 76758.9, "level": "full" }, "generic (double)": { - "us": 230975.8, + "us": 227348.8, "level": "partial" }, - "generic (strict)": { - "us": 300577.1, + "generic (double, strict)": { + "us": 231309.1, "level": "full" }, "generic": { - "us": 311093.1, + "us": 301949.1, "level": "partial" + }, + "generic (strict)": { + "us": 316773.4, + "level": "full" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 59425.5, + "variant": "SAX (numbers: none)", + "us": 62780.9, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 59425.5, + "variant": "SAX (numbers: none)", + "us": 62780.9, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 59272.5, + "us": 62485.1, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 59272.5, + "us": 62485.1, "level": "full" }, "variants": { "SAX (reused)": { - "us": 59272.5, - "level": "full" - }, - "SAX": { - "us": 59425.5, + "us": 62485.1, "level": "full" }, "SAX (numbers: none)": { - "us": 59437.5, + "us": 62780.9, + "level": "full" + }, + "SAX": { + "us": 65009.7, "level": "full" }, "parser (reused)": { - "us": 119285.0, + "us": 127335.3, "level": "full" }, "parse": { - "us": 173584.2, + "us": 181460.1, "level": "full" }, "parse (numbers: none)": { - "us": 174755.1, + "us": 185393.2, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 157360.3, + "variant": "SAX (string stream, default precision)", + "us": 124439.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 145702.7, + "variant": "SAX (string stream) (no encoding check)", + "us": 115815.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 182352.1, + "us": 188950.8, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 179041.6, + "us": 179981.0, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 102634.9, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 114703.8, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 115815.1, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 119164.9, + "level": "no UTF-8" + }, + "SAX (string stream, default precision)": { + "us": 124439.7, + "level": "full" + }, + "SAX (string stream)": { + "us": 134338.3, + "level": "full" + }, "insitu (copy) (no encoding check)": { - "us": 145702.7, - "level": "no UTF-8" - }, - "SAX (raw numbers) (no encoding check)": { - "us": 153055.7, - "level": "no UTF-8" - }, - "SAX (no encoding check)": { - "us": 155340.2, + "us": 146440.1, "level": "no UTF-8" }, "insitu (copy)": { - "us": 157360.3, + "us": 157490.4, "level": "full" }, - "Document (no encoding check)": { - "us": 175929.2, + "SAX (no encoding check)": { + "us": 161291.9, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 161993.3, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 164699.2, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 179041.6, + "us": 179981.0, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 184784.0, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 182352.1, - "level": "full" - }, - "SAX": { - "us": 239287.1, + "us": 188950.8, "level": "full" }, "SAX (raw numbers)": { - "us": 244062.6, + "us": 240366.9, + "level": "full" + }, + "SAX": { + "us": 246653.0, + "level": "full" + }, + "SAX (default precision)": { + "us": 260697.4, "level": "full" }, "Document": { - "us": 261014.0, + "us": 273829.6, "level": "full" } } @@ -1600,7 +1744,7 @@ "level": "full" }, "parse": { - "us": 18.6, + "us": 18.1, "level": "full" } } @@ -1627,6 +1771,10 @@ "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 1.5, + "level": "full" + }, "read (reused allocator)": { "us": 1.5, "level": "full" @@ -1712,20 +1860,20 @@ "level": "full" }, "generic (double)": { - "us": 8.3, + "us": 8.1, "level": "partial" }, "generic (double, strict)": { - "us": 8.3, - "level": "full" - }, - "generic (strict)": { - "us": 11.3, + "us": 8.5, "level": "full" }, "generic": { - "us": 11.8, + "us": 11.4, "level": "partial" + }, + "generic (strict)": { + "us": 11.4, + "level": "full" } } }, @@ -1755,24 +1903,24 @@ "us": 2.9, "level": "full" }, - "SAX (reused)": { + "SAX (numbers: none)": { "us": 2.9, "level": "full" }, - "SAX (numbers: none)": { - "us": 3.0, + "SAX (reused)": { + "us": 2.9, "level": "full" }, "parser (reused)": { "us": 5.8, "level": "full" }, - "parse (numbers: none)": { + "parse": { "us": 5.9, "level": "full" }, - "parse": { - "us": 6.0, + "parse (numbers: none)": { + "us": 5.9, "level": "full" } } @@ -1780,17 +1928,17 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 5.2, + "us": 4.9, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 3.5, + "variant": "SAX (string stream, default precision) (no encoding check)", + "us": 3.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 7.6, + "us": 7.5, "level": "full" }, "best_reused_any": { @@ -1799,20 +1947,48 @@ "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 3.5, + "insitu (copy untimed) (no encoding check)": { + "us": 3.2, "level": "no UTF-8" }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 3.2, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 3.3, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 3.3, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 4.8, + "level": "full" + }, "insitu (copy)": { - "us": 5.2, + "us": 4.9, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 5.3, + "level": "full" + }, + "SAX (string stream)": { + "us": 5.4, "level": "full" }, "SAX (no encoding check)": { "us": 6.3, "level": "no UTF-8" }, + "SAX (default precision) (no encoding check)": { + "us": 6.3, + "level": "no UTF-8" + }, "SAX (raw numbers) (no encoding check)": { - "us": 6.6, + "us": 6.7, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { @@ -1824,19 +2000,23 @@ "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 7.6, + "us": 7.5, "level": "full" }, - "SAX": { - "us": 10.3, + "SAX (default precision)": { + "us": 10.2, "level": "full" }, "SAX (raw numbers)": { + "us": 10.5, + "level": "full" + }, + "SAX": { "us": 10.6, "level": "full" }, "Document": { - "us": 12.0, + "us": 11.5, "level": "full" } } @@ -1934,12 +2114,12 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 210.9, + "us": 212.4, "level": "full" }, "best_any": { "variant": "accept", - "us": 210.9, + "us": 212.4, "level": "full" }, "best_reused": { @@ -1954,7 +2134,7 @@ }, "variants": { "accept": { - "us": 210.9, + "us": 212.4, "level": "full" }, "read (reused)": { @@ -1962,7 +2142,7 @@ "level": "full" }, "parse": { - "us": 264.7, + "us": 265.6, "level": "full" } } @@ -1970,63 +2150,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 542.0, + "us": 546.2, "level": "full" }, "best_any": { "variant": "accept", - "us": 542.0, + "us": 546.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 542.0, + "us": 546.2, "level": "full" }, "parse": { - "us": 3225.4, + "us": 3115.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 321.5, + "variant": "read", + "us": 321.6, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 321.5, + "variant": "read", + "us": 321.6, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 321.6, + "us": 320.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 321.6, + "us": 320.4, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 321.5, + "insitu (copy untimed)": { + "us": 286.7, "level": "full" }, "read (reused allocator)": { - "us": 321.6, + "us": 320.4, "level": "full" }, "read": { - "us": 325.4, + "us": 321.6, + "level": "full" + }, + "insitu (copy)": { + "us": 321.8, "level": "full" }, "read (raw numbers)": { - "us": 327.5, + "us": 326.2, "level": "full" } } @@ -2034,31 +2218,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 281.3, + "us": 281.4, "level": "full" }, "best_any": { "variant": "DOM", - "us": 281.3, + "us": 281.4, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 281.5, + "us": 280.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 281.5, + "us": 280.4, "level": "full" }, "variants": { - "DOM": { - "us": 281.3, + "DOM (reused)": { + "us": 280.4, "level": "full" }, - "DOM (reused)": { - "us": 281.5, + "DOM": { + "us": 281.4, "level": "full" } } @@ -2067,14 +2251,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 298.9, + "us": 297.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 298.9, + "us": 297.2, "level": "no UTF-8" } } @@ -2082,83 +2266,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 512.2, + "us": 509.1, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 512.2, + "us": 509.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 512.2, - "level": "full" - }, - "generic (double, strict)": { - "us": 2034.8, + "us": 509.1, "level": "full" }, "generic (double)": { - "us": 2039.3, + "us": 2016.1, "level": "partial" }, - "generic (strict)": { - "us": 2589.3, + "generic (double, strict)": { + "us": 2035.9, "level": "full" }, "generic": { - "us": 2589.7, + "us": 2570.7, "level": "partial" + }, + "generic (strict)": { + "us": 2581.7, + "level": "full" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 548.3, + "us": 545.9, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 548.3, + "us": 545.9, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 550.3, + "us": 554.5, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 550.3, + "us": 554.5, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 548.3, - "level": "full" - }, - "SAX (reused)": { - "us": 550.3, + "us": 545.9, "level": "full" }, "SAX": { - "us": 551.2, + "us": 554.2, + "level": "full" + }, + "SAX (reused)": { + "us": 554.5, "level": "full" }, "parse (numbers: none)": { - "us": 1168.8, + "us": 1165.7, "level": "full" }, "parser (reused)": { - "us": 1177.6, + "us": 1173.9, "level": "full" }, "parse": { - "us": 1180.9, + "us": 1178.1, "level": "full" } } @@ -2166,63 +2350,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 903.3, + "us": 855.8, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 835.2, + "us": 767.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1439.0, + "us": 1436.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1302.3, + "us": 1310.4, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 835.2, + "insitu (copy untimed) (no encoding check)": { + "us": 736.1, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 903.3, + "insitu (copy) (no encoding check)": { + "us": 767.8, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 825.3, "level": "full" }, + "insitu (copy)": { + "us": 855.8, + "level": "full" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 860.7, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 863.5, + "level": "no UTF-8" + }, + "SAX (string stream, default precision)": { + "us": 1010.5, + "level": "full" + }, + "SAX (string stream)": { + "us": 1015.4, + "level": "full" + }, + "SAX (default precision) (no encoding check)": { + "us": 1147.4, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 1140.1, + "us": 1162.1, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 1206.1, + "us": 1204.9, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1302.3, + "us": 1310.4, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1343.9, + "us": 1327.2, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1439.0, + "us": 1436.1, + "level": "full" + }, + "SAX (default precision)": { + "us": 1828.7, "level": "full" }, "SAX": { - "us": 1895.1, + "us": 1837.2, "level": "full" }, "SAX (raw numbers)": { - "us": 1906.8, + "us": 1881.4, "level": "full" }, "Document": { - "us": 2040.5, + "us": 2015.1, "level": "full" } } @@ -2320,35 +2536,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 302.4, + "us": 302.9, "level": "full" }, "best_any": { "variant": "accept", - "us": 302.4, + "us": 302.9, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 512.4, + "us": 514.3, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 512.4, + "us": 514.3, "level": "full" }, "variants": { "accept": { - "us": 302.4, + "us": 302.9, "level": "full" }, "read (reused)": { - "us": 512.4, + "us": 514.3, "level": "full" }, "parse": { - "us": 513.2, + "us": 514.7, "level": "full" } } @@ -2356,63 +2572,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 1073.7, + "us": 1087.2, "level": "full" }, "best_any": { "variant": "accept", - "us": 1073.7, + "us": 1087.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 1073.7, + "us": 1087.2, "level": "full" }, "parse": { - "us": 4713.8, + "us": 4796.0, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 489.4, + "variant": "read", + "us": 490.0, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 489.4, + "variant": "read", + "us": 490.0, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 489.4, + "us": 488.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 489.4, + "us": 488.4, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 489.4, + "insitu (copy untimed)": { + "us": 454.8, "level": "full" }, "read (reused allocator)": { - "us": 489.4, + "us": 488.4, "level": "full" }, "read": { + "us": 490.0, + "level": "full" + }, + "insitu (copy)": { "us": 490.7, "level": "full" }, "read (raw numbers)": { - "us": 504.4, + "us": 504.2, "level": "full" } } @@ -2420,31 +2640,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 534.7, + "us": 534.4, "level": "full" }, "best_any": { "variant": "DOM", - "us": 534.7, + "us": 534.4, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 534.3, + "us": 535.9, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 534.3, + "us": 535.9, "level": "full" }, "variants": { - "DOM (reused)": { - "us": 534.3, + "DOM": { + "us": 534.4, "level": "full" }, - "DOM": { - "us": 534.7, + "DOM (reused)": { + "us": 535.9, "level": "full" } } @@ -2453,14 +2673,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 600.7, + "us": 600.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 600.7, + "us": 600.8, "level": "no UTF-8" } } @@ -2468,35 +2688,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 752.6, + "us": 751.0, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 752.6, + "us": 751.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 752.6, + "us": 751.0, "level": "full" }, "generic (double)": { - "us": 2961.9, + "us": 2950.5, "level": "partial" }, "generic (double, strict)": { - "us": 3000.8, + "us": 3010.4, "level": "full" }, "generic": { - "us": 4357.6, + "us": 4339.4, "level": "partial" }, "generic (strict)": { - "us": 4399.1, + "us": 4381.5, "level": "full" } } @@ -2504,111 +2724,143 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 580.5, + "us": 561.6, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 580.5, + "us": 561.6, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 608.1, + "us": 608.6, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 608.1, + "us": 608.6, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 580.5, + "us": 561.6, "level": "full" }, "SAX": { - "us": 608.1, + "us": 608.4, "level": "full" }, "SAX (reused)": { - "us": 608.1, + "us": 608.6, "level": "full" }, "parse (numbers: none)": { - "us": 1295.7, + "us": 1264.8, "level": "full" }, "parser (reused)": { - "us": 1364.4, + "us": 1342.7, "level": "full" }, "parse": { - "us": 1368.6, + "us": 1346.4, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 1283.3, + "variant": "SAX (string stream, default precision)", + "us": 987.4, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 1283.3, - "level": "full" + "variant": "SAX (string stream, default precision) (no encoding check)", + "us": 984.8, + "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1673.2, + "us": 1681.6, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator)", - "us": 1673.2, + "us": 1681.6, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 1283.3, - "level": "full" - }, - "SAX (no encoding check)": { - "us": 1285.9, + "SAX (string stream, default precision) (no encoding check)": { + "us": 984.8, "level": "no UTF-8" }, + "SAX (string stream, default precision)": { + "us": 987.4, + "level": "full" + }, + "SAX (string stream)": { + "us": 1105.3, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 1106.7, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 1141.4, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1144.1, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1176.4, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 1180.5, + "level": "full" + }, "insitu (copy) (no encoding check)": { - "us": 1303.3, + "us": 1210.5, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1320.6, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 1563.0, + "us": 1558.3, "level": "no UTF-8" }, + "SAX (default precision)": { + "us": 1561.2, + "level": "full" + }, "Document (no encoding check)": { - "us": 1660.3, + "us": 1657.2, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1673.2, + "us": 1681.6, "level": "full" }, "SAX": { - "us": 1706.6, + "us": 1701.5, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1735.2, + "us": 1738.6, "level": "no UTF-8" }, "SAX (raw numbers)": { - "us": 2056.3, + "us": 1990.6, "level": "full" }, "Document": { - "us": 2116.0, + "us": 2109.5, "level": "full" } } @@ -2708,31 +2960,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 387.5, + "us": 397.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 387.5, + "us": 397.9, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 383.8, + "us": 387.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 383.8, + "us": 387.6, "level": "full" }, "variants": { "read (reused)": { - "us": 383.8, + "us": 387.6, "level": "full" }, "parse": { - "us": 387.5, + "us": 397.9, + "level": "full" + }, + "parse_copy": { + "us": 428.2, "level": "full" } } @@ -2740,23 +2996,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 814.4, + "us": 813.7, "level": "full" }, "best_any": { "variant": "sax", - "us": 814.4, + "us": 813.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 814.4, + "us": 813.7, "level": "full" }, "parse": { - "us": 3564.0, + "us": 3499.0, "level": "full" } } @@ -2764,35 +3020,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 450.1, + "us": 444.7, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 450.1, + "us": 444.7, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 449.6, + "us": 446.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 449.6, + "us": 446.2, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 449.6, + "insitu (copy untimed)": { + "us": 415.0, "level": "full" }, "insitu (copy)": { - "us": 450.1, + "us": 444.7, + "level": "full" + }, + "read (reused allocator)": { + "us": 446.2, "level": "full" }, "read": { - "us": 450.2, + "us": 446.4, "level": "full" } } @@ -2800,39 +3060,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 345.3, + "us": 347.8, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 345.3, + "us": 347.8, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 341.3, + "us": 346.2, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 341.3, + "us": 346.2, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 341.3, + "us": 346.2, "level": "full" }, "On-Demand": { - "us": 345.3, + "us": 347.8, "level": "full" }, "DOM (reused)": { - "us": 377.8, + "us": 376.6, "level": "full" }, "DOM": { - "us": 379.2, + "us": 379.1, "level": "full" } } @@ -2841,14 +3101,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 460.4, + "us": 455.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 460.4, + "us": 455.8, "level": "no UTF-8" } } @@ -2856,35 +3116,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 2333.6, + "us": 2482.6, "level": "full" }, "best_any": { - "variant": "generic (double, strict)", - "us": 2333.6, - "level": "full" + "variant": "generic (double)", + "us": 2447.6, + "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double, strict)": { - "us": 2333.6, - "level": "full" - }, "generic (double)": { - "us": 2337.6, + "us": 2447.6, "level": "partial" }, - "generic": { - "us": 2869.4, - "level": "partial" + "generic (double, strict)": { + "us": 2482.6, + "level": "full" }, "generic (strict)": { - "us": 2880.4, + "us": 2905.9, "level": "full" }, + "generic": { + "us": 2908.2, + "level": "partial" + }, "lazy_json": { - "us": 3096.8, + "us": 3130.7, "level": "partial" } }, @@ -2895,39 +3155,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 697.8, + "us": 698.9, "level": "full" }, "best_any": { "variant": "SAX", - "us": 697.8, + "us": 698.9, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 691.4, + "us": 699.0, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 691.4, + "us": 699.0, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 691.4, + "SAX": { + "us": 698.9, "level": "full" }, - "SAX": { - "us": 697.8, + "SAX (reused)": { + "us": 699.0, "level": "full" }, "parser (reused)": { - "us": 1341.4, + "us": 1341.5, "level": "full" }, "parse": { - "us": 1345.4, + "us": 1350.5, "level": "full" } } @@ -2935,55 +3195,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1300.5, + "us": 1258.1, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1140.7, + "us": 1101.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1578.6, + "us": 1576.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1448.8, + "us": 1447.8, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1140.7, + "insitu (copy untimed) (no encoding check)": { + "us": 1063.0, "level": "no UTF-8" }, - "SAX (no encoding check)": { - "us": 1282.9, + "insitu (copy) (no encoding check)": { + "us": 1101.1, "level": "no UTF-8" }, + "SAX (string stream) (no encoding check)": { + "us": 1172.5, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1221.4, + "level": "full" + }, "insitu (copy)": { - "us": 1300.5, + "us": 1258.1, + "level": "full" + }, + "SAX (no encoding check)": { + "us": 1280.9, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 1382.1, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1448.8, + "us": 1447.8, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1472.3, + "us": 1453.6, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1578.6, + "us": 1576.2, "level": "full" }, "SAX": { - "us": 2005.0, + "us": 1988.6, "level": "full" }, "Document": { - "us": 2193.8, + "us": 2166.2, "level": "full" } } @@ -3077,31 +3353,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 967.1, + "us": 972.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 967.1, + "us": 972.5, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 971.8, + "us": 958.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 971.8, + "us": 958.6, "level": "full" }, "variants": { - "parse": { - "us": 967.1, + "read (reused)": { + "us": 958.6, "level": "full" }, - "read (reused)": { - "us": 971.8, + "parse": { + "us": 972.5, + "level": "full" + }, + "parse_copy": { + "us": 1118.3, "level": "full" } } @@ -3109,23 +3389,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 1637.7, + "us": 1665.5, "level": "full" }, "best_any": { "variant": "sax", - "us": 1637.7, + "us": 1665.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 1637.7, + "us": 1665.5, "level": "full" }, "parse": { - "us": 5424.8, + "us": 5466.4, "level": "full" } } @@ -3133,35 +3413,39 @@ "yyjson": { "best": { "variant": "read", - "us": 1099.7, + "us": 1097.5, "level": "full" }, "best_any": { "variant": "read", - "us": 1099.7, + "us": 1097.5, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 1107.3, + "us": 1113.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 1107.3, + "us": 1113.4, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 986.3, + "level": "full" + }, "read": { - "us": 1099.7, + "us": 1097.5, "level": "full" }, "insitu (copy)": { - "us": 1100.2, + "us": 1098.8, "level": "full" }, "read (reused allocator)": { - "us": 1107.3, + "us": 1113.4, "level": "full" } } @@ -3169,39 +3453,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 801.8, + "us": 804.7, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 801.8, + "us": 804.7, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 807.8, + "us": 803.2, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 807.8, + "us": 803.2, "level": "full" }, "variants": { - "On-Demand": { - "us": 801.8, + "On-Demand (reused)": { + "us": 803.2, "level": "full" }, - "On-Demand (reused)": { - "us": 807.8, + "On-Demand": { + "us": 804.7, "level": "full" }, "DOM (reused)": { - "us": 887.3, + "us": 900.1, "level": "full" }, "DOM": { - "us": 890.0, + "us": 906.4, "level": "full" } } @@ -3210,14 +3494,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1125.9, + "us": 1114.9, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1125.9, + "us": 1114.9, "level": "no UTF-8" } } @@ -3225,35 +3509,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 4098.9, + "us": 4413.4, "level": "full" }, "best_any": { - "variant": "generic (double)", - "us": 4061.5, - "level": "partial" + "variant": "generic (double, strict)", + "us": 4413.4, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double)": { - "us": 4061.5, - "level": "partial" - }, "generic (double, strict)": { - "us": 4098.9, + "us": 4413.4, "level": "full" }, - "generic": { - "us": 5354.7, + "generic (double)": { + "us": 4452.0, "level": "partial" }, "generic (strict)": { - "us": 5447.9, + "us": 5334.6, "level": "full" }, + "generic": { + "us": 5369.4, + "level": "partial" + }, "lazy_json": { - "us": 13871.4, + "us": 14119.5, "level": "partial" } }, @@ -3264,95 +3548,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 961.0, + "us": 957.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 961.0, + "us": 957.0, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 960.1, + "us": 958.1, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 960.1, + "us": 958.1, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 960.1, + "SAX": { + "us": 957.0, "level": "full" }, - "SAX": { - "us": 961.0, + "SAX (reused)": { + "us": 958.1, "level": "full" }, "parser (reused)": { - "us": 1798.5, + "us": 1788.9, "level": "full" }, "parse": { - "us": 1801.4, + "us": 1789.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 2039.2, + "variant": "SAX (string stream)", + "us": 1717.2, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1679.9, + "variant": "SAX (string stream) (no encoding check)", + "us": 1635.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2041.4, + "us": 2062.7, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator)", - "us": 2041.4, + "us": 2062.7, "level": "full" }, "variants": { - "SAX (no encoding check)": { - "us": 1679.9, + "SAX (string stream) (no encoding check)": { + "us": 1635.2, "level": "no UTF-8" }, + "SAX (no encoding check)": { + "us": 1688.3, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 1717.2, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1798.7, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1837.9, + "level": "full" + }, "insitu (copy) (no encoding check)": { - "us": 1979.4, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 2017.9, + "us": 1906.9, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2039.2, + "us": 1948.8, "level": "full" }, + "Document (no encoding check)": { + "us": 2013.3, + "level": "no UTF-8" + }, "Document (reused allocator)": { - "us": 2041.4, + "us": 2062.7, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 2072.8, + "us": 2068.0, "level": "no UTF-8" }, "SAX": { - "us": 2127.2, + "us": 2112.1, "level": "full" }, "Document": { - "us": 2449.7, + "us": 2426.5, "level": "full" } } @@ -3446,31 +3746,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 3634.5, + "us": 3500.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 3634.5, + "us": 3500.6, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 3627.4, + "us": 3522.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 3627.4, + "us": 3522.2, "level": "full" }, "variants": { - "read (reused)": { - "us": 3627.4, + "parse": { + "us": 3500.6, "level": "full" }, - "parse": { - "us": 3634.5, + "read (reused)": { + "us": 3522.2, + "level": "full" + }, + "parse_copy": { + "us": 3695.6, "level": "full" } } @@ -3478,59 +3782,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 5672.7, + "us": 5690.0, "level": "full" }, "best_any": { "variant": "sax", - "us": 5672.7, + "us": 5690.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 5672.7, + "us": 5690.0, "level": "full" }, "parse": { - "us": 12230.6, + "us": 12161.6, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 4130.8, + "variant": "insitu (copy)", + "us": 4034.8, "level": "full" }, "best_any": { - "variant": "read", - "us": 4130.8, + "variant": "insitu (copy)", + "us": 4034.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 4133.6, + "us": 3945.9, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 4133.6, + "us": 3945.9, "level": "full" }, "variants": { - "read": { - "us": 4130.8, + "insitu (copy untimed)": { + "us": 3817.6, "level": "full" }, "read (reused allocator)": { - "us": 4133.6, + "us": 3945.9, "level": "full" }, "insitu (copy)": { - "us": 4165.7, + "us": 4034.8, + "level": "full" + }, + "read": { + "us": 4050.5, "level": "full" } } @@ -3538,39 +3846,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 3465.1, + "us": 3451.5, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 3465.1, + "us": 3451.5, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 3483.7, + "us": 3366.6, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 3483.7, + "us": 3366.6, "level": "full" }, "variants": { - "On-Demand": { - "us": 3465.1, - "level": "full" - }, "On-Demand (reused)": { - "us": 3483.7, + "us": 3366.6, "level": "full" }, - "DOM": { - "us": 4186.6, + "On-Demand": { + "us": 3451.5, "level": "full" }, "DOM (reused)": { - "us": 4194.5, + "us": 4036.1, + "level": "full" + }, + "DOM": { + "us": 4157.9, "level": "full" } } @@ -3579,14 +3887,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3948.3, + "us": 3979.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3948.3, + "us": 3979.5, "level": "no UTF-8" } } @@ -3594,35 +3902,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 11761.6, + "us": 10531.8, "level": "full" }, "best_any": { "variant": "generic (double)", - "us": 10370.3, + "us": 10222.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (double)": { - "us": 10370.3, + "us": 10222.4, "level": "partial" }, "generic (double, strict)": { - "us": 11761.6, + "us": 10531.8, "level": "full" }, "generic (strict)": { - "us": 17718.2, + "us": 17647.7, "level": "full" }, "generic": { - "us": 18192.5, + "us": 18120.1, "level": "partial" }, "lazy_json": { - "us": 20436.8, + "us": 20661.0, "level": "partial" } }, @@ -3633,95 +3941,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 5820.7, + "us": 5835.4, "level": "full" }, "best_any": { "variant": "SAX", - "us": 5820.7, + "us": 5835.4, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 5616.1, + "us": 5781.2, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 5616.1, + "us": 5781.2, "level": "full" }, "variants": { "SAX (reused)": { - "us": 5616.1, + "us": 5781.2, "level": "full" }, "SAX": { - "us": 5820.7, + "us": 5835.4, "level": "full" }, "parse": { - "us": 7319.1, + "us": 7225.8, "level": "full" }, "parser (reused)": { - "us": 7418.9, + "us": 7246.8, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 11309.0, + "variant": "SAX (string stream)", + "us": 9435.0, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 10990.8, + "variant": "SAX (string stream) (no encoding check)", + "us": 9368.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 12366.0, + "us": 12220.1, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 12244.6, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 12220.1, + "level": "full" }, "variants": { + "SAX (string stream) (no encoding check)": { + "us": 9368.2, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 9435.0, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 10294.7, + "level": "full" + }, "insitu (copy) (no encoding check)": { - "us": 10990.8, + "us": 10347.7, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 10515.0, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 10555.8, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 11200.6, "level": "no UTF-8" }, "SAX": { - "us": 11309.0, + "us": 11375.9, "level": "full" }, - "insitu (copy)": { - "us": 11326.5, - "level": "full" - }, - "SAX (no encoding check)": { - "us": 11479.6, - "level": "no UTF-8" - }, - "Document (reused allocator) (no encoding check)": { - "us": 12244.6, - "level": "no UTF-8" - }, "Document (reused allocator)": { - "us": 12366.0, + "us": 12220.1, "level": "full" }, + "Document (reused allocator) (no encoding check)": { + "us": 12472.4, + "level": "no UTF-8" + }, "Document (no encoding check)": { - "us": 12443.4, + "us": 12552.4, "level": "no UTF-8" }, "Document": { - "us": 12724.7, + "us": 12602.4, "level": "full" } } @@ -3815,31 +4139,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 91872.6, + "us": 89756.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 91872.6, + "us": 89756.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 52680.5, + "us": 50992.3, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 52680.5, + "us": 50992.3, "level": "full" }, "variants": { "read (reused)": { - "us": 52680.5, + "us": 50992.3, "level": "full" }, "parse": { - "us": 91872.6, + "us": 89756.2, + "level": "full" + }, + "parse_copy": { + "us": 132156.3, "level": "full" } } @@ -3847,23 +4175,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 95614.5, + "us": 97414.0, "level": "full" }, "best_any": { "variant": "sax", - "us": 95614.5, + "us": 97414.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 95614.5, + "us": 97414.0, "level": "full" }, "parse": { - "us": 430894.0, + "us": 405297.9, "level": "full" } } @@ -3871,35 +4199,39 @@ "yyjson": { "best": { "variant": "read", - "us": 136960.1, + "us": 138743.5, "level": "full" }, "best_any": { "variant": "read", - "us": 136960.1, + "us": 138743.5, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 70028.3, + "us": 69157.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 70028.3, + "us": 69157.4, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 70028.3, + "us": 69157.4, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 97585.6, "level": "full" }, "read": { - "us": 136960.1, + "us": 138743.5, "level": "full" }, "insitu (copy)": { - "us": 140255.7, + "us": 142125.6, "level": "full" } } @@ -3907,39 +4239,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 92424.7, + "us": 92768.8, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 92424.7, + "us": 92768.8, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 50737.2, + "us": 49571.5, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 50737.2, + "us": 49571.5, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 50737.2, + "us": 49571.5, "level": "full" }, "DOM (reused)": { - "us": 61559.9, + "us": 58328.5, "level": "full" }, "On-Demand": { - "us": 92424.7, + "us": 92768.8, "level": "full" }, "DOM": { - "us": 132150.2, + "us": 131126.2, "level": "full" } } @@ -3948,14 +4280,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 105174.5, + "us": 105080.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 105174.5, + "us": 105080.8, "level": "no UTF-8" } } @@ -3963,35 +4295,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 243497.4, + "us": 231505.3, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 233199.7, + "us": 225437.9, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 233199.7, + "us": 225437.9, "level": "partial" }, "generic (double, strict)": { - "us": 243497.4, + "us": 231505.3, "level": "full" }, "generic (double)": { - "us": 248492.5, + "us": 233548.0, "level": "partial" }, "generic (strict)": { - "us": 330636.7, + "us": 314867.5, "level": "full" }, "generic": { - "us": 340032.6, + "us": 316327.7, "level": "partial" } }, @@ -4002,95 +4334,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 60418.3, + "us": 59655.5, "level": "full" }, "best_any": { "variant": "SAX", - "us": 60418.3, + "us": 59655.5, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 60727.0, + "us": 59184.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 60727.0, + "us": 59184.3, "level": "full" }, "variants": { - "SAX": { - "us": 60418.3, + "SAX (reused)": { + "us": 59184.3, "level": "full" }, - "SAX (reused)": { - "us": 60727.0, + "SAX": { + "us": 59655.5, "level": "full" }, "parser (reused)": { - "us": 131203.3, + "us": 132393.0, "level": "full" }, "parse": { - "us": 195419.9, + "us": 192260.6, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 170218.0, + "variant": "SAX (string stream)", + "us": 128415.3, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 155049.2, + "variant": "SAX (string stream) (no encoding check)", + "us": 112449.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 186972.0, + "us": 198339.7, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 186127.2, + "us": 183038.2, "level": "no UTF-8" }, "variants": { - "SAX (no encoding check)": { - "us": 155049.2, + "insitu (copy untimed) (no encoding check)": { + "us": 105844.6, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 112158.3, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 112449.5, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 128415.3, + "level": "full" + }, "insitu (copy) (no encoding check)": { - "us": 159586.1, + "us": 152055.8, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 154426.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 170218.0, + "us": 158907.5, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 186127.2, + "us": 183038.2, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 185367.0, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 186972.0, + "us": 198339.7, "level": "full" }, - "Document (no encoding check)": { - "us": 191538.0, - "level": "no UTF-8" - }, "SAX": { - "us": 241334.5, + "us": 244103.0, "level": "full" }, "Document": { - "us": 276025.1, + "us": 264334.8, "level": "full" } } @@ -4210,6 +4558,10 @@ "parse": { "us": 2.0, "level": "full" + }, + "parse_copy": { + "us": 2.1, + "level": "full" } } }, @@ -4232,7 +4584,7 @@ "level": "full" }, "parse": { - "us": 17.7, + "us": 18.8, "level": "full" } } @@ -4270,6 +4622,10 @@ "insitu (copy)": { "us": 1.9, "level": "full" + }, + "insitu (copy untimed)": { + "us": 1.9, + "level": "full" } } }, @@ -4332,35 +4688,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 8.7, + "us": 8.5, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 6.3, + "us": 6.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 6.3, + "us": 6.4, + "level": "partial" + }, + "generic (double)": { + "us": 8.3, "level": "partial" }, "generic (double, strict)": { - "us": 8.7, + "us": 8.5, "level": "full" }, - "generic (double)": { - "us": 8.8, - "level": "partial" - }, "generic": { - "us": 12.2, + "us": 11.5, "level": "partial" }, "generic (strict)": { - "us": 12.2, + "us": 11.6, "level": "full" } }, @@ -4411,55 +4767,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 5.3, + "us": 5.4, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 3.9, + "variant": "SAX (string stream) (no encoding check)", + "us": 3.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 8.2, + "us": 7.8, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 7.5, + "us": 7.4, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 3.9, + "SAX (string stream) (no encoding check)": { + "us": 3.5, "level": "no UTF-8" }, + "insitu (copy untimed) (no encoding check)": { + "us": 3.6, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 3.7, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 5.1, + "level": "full" + }, "insitu (copy)": { - "us": 5.3, + "us": 5.4, + "level": "full" + }, + "SAX (string stream)": { + "us": 5.8, "level": "full" }, "SAX (no encoding check)": { - "us": 6.6, + "us": 6.8, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 7.5, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 8.1, + "us": 7.4, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 8.2, + "us": 7.8, "level": "full" }, + "Document (no encoding check)": { + "us": 7.9, + "level": "no UTF-8" + }, "SAX": { - "us": 11.0, + "us": 10.7, "level": "full" }, "Document": { - "us": 12.5, + "us": 11.9, "level": "full" } } @@ -4553,31 +4925,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 336.3, + "us": 337.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 336.3, + "us": 337.3, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 330.0, + "us": 331.0, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 330.0, + "us": 331.0, "level": "full" }, "variants": { "read (reused)": { - "us": 330.0, + "us": 331.0, "level": "full" }, "parse": { - "us": 336.3, + "us": 337.3, + "level": "full" + }, + "parse_copy": { + "us": 365.5, "level": "full" } } @@ -4585,23 +4961,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 690.8, + "us": 686.3, "level": "full" }, "best_any": { "variant": "sax", - "us": 690.8, + "us": 686.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 690.8, + "us": 686.3, "level": "full" }, "parse": { - "us": 3356.8, + "us": 3289.8, "level": "full" } } @@ -4609,35 +4985,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 376.2, + "us": 375.0, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 376.2, + "us": 375.0, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 375.3, + "us": 373.5, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 375.3, + "us": 373.5, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 343.6, + "level": "full" + }, "read (reused allocator)": { - "us": 375.3, + "us": 373.5, "level": "full" }, "insitu (copy)": { - "us": 376.2, + "us": 375.0, "level": "full" }, "read": { - "us": 377.7, + "us": 376.2, "level": "full" } } @@ -4645,39 +5025,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 327.5, + "us": 329.8, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 327.5, + "us": 329.8, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 324.3, + "us": 325.8, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 324.3, + "us": 325.8, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 324.3, + "us": 325.8, "level": "full" }, "On-Demand": { - "us": 327.5, + "us": 329.8, "level": "full" }, "DOM (reused)": { - "us": 358.6, + "us": 359.4, "level": "full" }, "DOM": { - "us": 360.5, + "us": 362.3, "level": "full" } } @@ -4686,14 +5066,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 356.4, + "us": 353.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 356.4, + "us": 353.7, "level": "no UTF-8" } } @@ -4701,36 +5081,36 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 2096.0, + "us": 2103.7, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 1839.6, + "us": 1815.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 1839.6, + "us": 1815.3, + "level": "partial" + }, + "generic (double)": { + "us": 2083.1, "level": "partial" }, "generic (double, strict)": { - "us": 2096.0, - "level": "full" - }, - "generic (double)": { - "us": 2108.4, - "level": "partial" - }, - "generic (strict)": { - "us": 2653.3, + "us": 2103.7, "level": "full" }, "generic": { - "us": 2655.9, + "us": 2629.8, "level": "partial" + }, + "generic (strict)": { + "us": 2652.7, + "level": "full" } }, "excluded": { @@ -4740,39 +5120,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 562.4, + "us": 568.0, "level": "full" }, "best_any": { "variant": "SAX", - "us": 562.4, + "us": 568.0, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 563.4, + "us": 567.7, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 563.4, + "us": 567.7, "level": "full" }, "variants": { - "SAX": { - "us": 562.4, + "SAX (reused)": { + "us": 567.7, "level": "full" }, - "SAX (reused)": { - "us": 563.4, + "SAX": { + "us": 568.0, "level": "full" }, "parser (reused)": { - "us": 1235.9, + "us": 1234.9, "level": "full" }, "parse": { - "us": 1241.9, + "us": 1242.5, "level": "full" } } @@ -4780,55 +5160,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 948.9, + "us": 901.4, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 890.4, + "us": 820.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1491.9, + "us": 1497.0, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1359.6, + "us": 1365.0, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 890.4, + "insitu (copy untimed) (no encoding check)": { + "us": 791.1, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 820.2, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 871.8, + "level": "full" + }, "insitu (copy)": { - "us": 948.9, + "us": 901.4, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 901.4, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 1063.2, "level": "full" }, "SAX (no encoding check)": { - "us": 1192.1, + "us": 1197.5, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1359.6, + "us": 1365.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1404.5, + "us": 1385.7, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1491.9, + "us": 1497.0, "level": "full" }, "SAX": { - "us": 1914.2, + "us": 1910.6, "level": "full" }, "Document": { - "us": 2108.1, + "us": 2070.4, "level": "full" } } @@ -4922,31 +5318,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 702.4, + "us": 729.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 702.4, + "us": 729.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 701.9, + "us": 714.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 701.9, + "us": 714.6, "level": "full" }, "variants": { "read (reused)": { - "us": 701.9, + "us": 714.6, "level": "full" }, "parse": { - "us": 702.4, + "us": 729.8, + "level": "full" + }, + "parse_copy": { + "us": 745.1, "level": "full" } } @@ -4954,23 +5354,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 1323.4, + "us": 1431.5, "level": "full" }, "best_any": { "variant": "sax", - "us": 1323.4, + "us": 1431.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 1323.4, + "us": 1431.5, "level": "full" }, "parse": { - "us": 4957.6, + "us": 5393.7, "level": "full" } } @@ -4978,35 +5378,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 639.1, + "us": 636.4, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 639.1, + "us": 636.4, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 637.8, + "us": 635.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 637.8, + "us": 635.1, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 637.8, + "us": 635.1, "level": "full" }, "insitu (copy)": { - "us": 639.1, + "us": 636.4, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 638.1, "level": "full" }, "read": { - "us": 641.4, + "us": 645.0, "level": "full" } } @@ -5014,39 +5418,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 649.6, + "us": 652.3, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 649.6, + "us": 652.3, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 654.9, + "us": 658.9, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 654.9, + "us": 658.9, "level": "full" }, "variants": { "On-Demand": { - "us": 649.6, + "us": 652.3, "level": "full" }, "On-Demand (reused)": { - "us": 654.9, + "us": 658.9, "level": "full" }, "DOM (reused)": { - "us": 736.2, + "us": 753.4, "level": "full" }, "DOM": { - "us": 738.6, + "us": 760.8, "level": "full" } } @@ -5055,14 +5459,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 793.2, + "us": 787.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 793.2, + "us": 787.1, "level": "no UTF-8" } } @@ -5070,35 +5474,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 3150.6, + "us": 3253.1, "level": "full" }, "best_any": { "variant": "generic (double)", - "us": 3115.5, + "us": 3243.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (double)": { - "us": 3115.5, + "us": 3243.4, "level": "partial" }, "generic (double, strict)": { - "us": 3150.6, + "us": 3253.1, "level": "full" }, "lazy_json": { - "us": 3755.5, + "us": 3800.9, "level": "partial" }, "generic": { - "us": 4544.9, + "us": 4795.4, "level": "partial" }, "generic (strict)": { - "us": 4577.7, + "us": 4815.8, "level": "full" } }, @@ -5109,95 +5513,111 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 634.4, + "us": 633.8, "level": "full" }, "best_any": { "variant": "SAX", - "us": 634.4, + "us": 633.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 632.3, + "us": 640.6, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 632.3, + "us": 640.6, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 632.3, - "level": "full" - }, "SAX": { - "us": 634.4, + "us": 633.8, "level": "full" }, - "parser (reused)": { - "us": 1518.6, + "SAX (reused)": { + "us": 640.6, "level": "full" }, "parse": { - "us": 1522.0, + "us": 1566.3, + "level": "full" + }, + "parser (reused)": { + "us": 1604.9, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 1426.5, + "variant": "SAX (string stream)", + "us": 1203.3, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1408.2, - "level": "no UTF-8" + "variant": "SAX (string stream)", + "us": 1203.3, + "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1830.4, + "us": 1834.6, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator)", - "us": 1830.4, + "us": 1834.6, "level": "full" }, "variants": { - "SAX (no encoding check)": { - "us": 1408.2, + "SAX (string stream)": { + "us": 1203.3, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 1212.1, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1295.9, + "level": "full" + }, "insitu (copy)": { - "us": 1426.5, + "us": 1334.5, "level": "full" }, "insitu (copy) (no encoding check)": { - "us": 1445.2, + "us": 1361.4, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 1812.2, + "insitu (copy untimed) (no encoding check)": { + "us": 1416.6, + "level": "no UTF-8" + }, + "SAX (no encoding check)": { + "us": 1523.3, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1830.4, + "us": 1834.6, "level": "full" }, + "Document (no encoding check)": { + "us": 1901.5, + "level": "no UTF-8" + }, "SAX": { - "us": 1870.1, + "us": 1964.3, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1895.0, + "us": 1967.6, "level": "no UTF-8" }, "Document": { - "us": 2268.4, + "us": 2258.0, "level": "full" } } @@ -5293,99 +5713,107 @@ "nlohmann json_document": { "best": { "variant": "structs (from_json)", - "us": 328.4, + "us": 332.8, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 328.4, + "us": 332.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 323.9, + "us": 327.7, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 323.9, + "us": 327.7, "level": "full" }, "variants": { "read (reused)": { - "us": 323.9, + "us": 327.7, "level": "full" }, "structs (from_json)": { - "us": 328.4, + "us": 332.8, "level": "full" }, "parse": { - "us": 330.9, + "us": 334.4, + "level": "full" + }, + "parse_copy": { + "us": 371.1, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 3453.8, + "variant": "structs (from_json)", + "us": 3360.1, "level": "full" }, "best_any": { - "variant": "parse", - "us": 3453.8, + "variant": "structs (from_json)", + "us": 3360.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 3453.8, + "structs (from_json)": { + "us": 3360.1, "level": "full" }, - "structs (from_json)": { - "us": 3463.8, + "parse": { + "us": 3362.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 400.3, + "variant": "read", + "us": 401.9, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 400.3, + "variant": "read", + "us": 401.9, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 406.2, + "us": 404.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 406.2, + "us": 404.8, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 400.3, + "insitu (copy untimed)": { + "us": 365.6, "level": "full" }, "read": { - "us": 403.6, + "us": 401.9, "level": "full" }, - "read (raw numbers)": { - "us": 405.3, + "insitu (copy)": { + "us": 402.5, "level": "full" }, "read (reused allocator)": { - "us": 406.2, + "us": 404.8, + "level": "full" + }, + "read (raw numbers)": { + "us": 405.1, "level": "full" } } @@ -5393,47 +5821,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 310.7, + "us": 313.0, "level": "full" }, "best_any": { - "variant": "On-Demand (key selectors)", - "us": 178.0, + "variant": "On-Demand", + "us": 180.0, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 311.9, + "us": 311.3, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 174.0, + "us": 175.2, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 174.0, - "level": "partial" - }, - "On-Demand (key selectors)": { - "us": 178.0, + "us": 175.2, "level": "partial" }, "On-Demand": { - "us": 179.2, + "us": 180.0, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 181.1, "level": "partial" }, "On-Demand structs": { - "us": 180.4, + "us": 181.5, "level": "partial" }, - "DOM": { - "us": 310.7, + "DOM (reused)": { + "us": 311.3, "level": "full" }, - "DOM (reused)": { - "us": 311.9, + "DOM": { + "us": 313.0, "level": "full" } } @@ -5442,14 +5870,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 408.1, + "us": 406.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 408.1, + "us": 406.6, "level": "no UTF-8" } } @@ -5457,44 +5885,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 604.2, + "us": 605.8, "level": "full" }, "best_any": { "variant": "structs", - "us": 343.9, + "us": 343.5, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 343.9, + "us": 343.5, "level": "partial" }, "structs (validate_skipped)": { - "us": 604.2, + "us": 605.8, "level": "full" }, "lazy_json": { - "us": 1001.3, + "us": 989.4, "level": "partial" }, "generic (double)": { - "us": 2402.6, + "us": 2377.5, "level": "partial" }, "generic (double, strict)": { - "us": 2404.2, + "us": 2411.1, + "level": "full" + }, + "generic (strict)": { + "us": 2946.7, "level": "full" }, "generic": { - "us": 2940.0, + "us": 2987.6, "level": "partial" - }, - "generic (strict)": { - "us": 2946.3, - "level": "full" } }, "excluded": { @@ -5504,35 +5932,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 886.2, + "us": 887.3, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 886.2, + "us": 887.3, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1312.8, + "us": 1370.9, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1312.8, + "us": 1370.9, "level": "full" }, "variants": { "parse_into structs": { - "us": 886.2, + "us": 887.3, "level": "full" }, "parse": { - "us": 1307.2, + "us": 1316.5, "level": "full" }, "parser (reused)": { - "us": 1312.8, + "us": 1370.9, "level": "full" } }, @@ -5543,55 +5971,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1260.8, + "us": 1218.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1096.3, + "us": 1061.0, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1527.1, + "us": 1533.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1400.0, + "us": 1401.9, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1096.3, + "insitu (copy untimed) (no encoding check)": { + "us": 1021.7, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 1260.8, + "insitu (copy) (no encoding check)": { + "us": 1061.0, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1180.1, "level": "full" }, + "insitu (copy)": { + "us": 1218.7, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 1275.6, + "level": "no UTF-8" + }, "Document (reused allocator) (no encoding check)": { - "us": 1400.0, + "us": 1401.9, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1414.8, + "us": 1412.6, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 1434.7, + "us": 1442.6, "level": "no UTF-8" }, + "Document (string stream)": { + "us": 1507.5, + "level": "full" + }, "Document (reused allocator)": { - "us": 1527.1, + "us": 1533.1, "level": "full" }, "Document": { - "us": 2132.6, + "us": 2117.6, "level": "full" }, "Document (raw numbers)": { - "us": 2147.8, + "us": 2159.6, "level": "full" } } @@ -5677,99 +6121,107 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 773.2, + "us": 827.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 773.2, + "us": 827.7, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 791.6, + "us": 820.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 791.6, + "us": 820.2, "level": "full" }, "variants": { - "parse": { - "us": 773.2, + "read (reused)": { + "us": 820.2, "level": "full" }, - "read (reused)": { - "us": 791.6, + "parse": { + "us": 827.7, "level": "full" }, "structs (from_json)": { - "us": 817.5, + "us": 844.2, + "level": "full" + }, + "parse_copy": { + "us": 927.6, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 5203.4, + "variant": "structs (from_json)", + "us": 5267.6, "level": "full" }, "best_any": { - "variant": "parse", - "us": 5203.4, + "variant": "structs (from_json)", + "us": 5267.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 5203.4, + "structs (from_json)": { + "us": 5267.6, "level": "full" }, - "structs (from_json)": { - "us": 5222.3, + "parse": { + "us": 5285.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 950.1, + "variant": "insitu (copy)", + "us": 952.7, "level": "full" }, "best_any": { - "variant": "read", - "us": 950.1, + "variant": "insitu (copy)", + "us": 952.7, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 960.7, + "us": 998.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 960.7, + "us": 998.2, "level": "full" }, "variants": { - "read": { - "us": 950.1, + "insitu (copy untimed)": { + "us": 839.8, "level": "full" }, "insitu (copy)": { - "us": 954.0, + "us": 952.7, "level": "full" }, - "read (reused allocator)": { - "us": 960.7, + "read": { + "us": 953.9, "level": "full" }, "read (raw numbers)": { - "us": 964.4, + "us": 962.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 998.2, "level": "full" } } @@ -5777,47 +6229,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 697.6, + "us": 698.8, "level": "full" }, "best_any": { "variant": "On-Demand (key selectors)", - "us": 495.0, + "us": 496.2, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 696.2, + "us": 709.7, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 496.7, + "us": 498.7, "level": "partial" }, "variants": { "On-Demand (key selectors)": { - "us": 495.0, + "us": 496.2, "level": "partial" }, "On-Demand (reused)": { - "us": 496.7, + "us": 498.7, "level": "partial" }, "On-Demand": { - "us": 499.3, + "us": 499.0, "level": "partial" }, "On-Demand structs": { - "us": 534.2, + "us": 533.3, "level": "partial" }, - "DOM (reused)": { - "us": 696.2, + "DOM": { + "us": 698.8, "level": "full" }, - "DOM": { - "us": 697.6, + "DOM (reused)": { + "us": 709.7, "level": "full" } } @@ -5826,14 +6278,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 933.0, + "us": 948.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 933.0, + "us": 948.2, "level": "no UTF-8" } } @@ -5841,43 +6293,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1975.6, + "us": 2476.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 401.4, + "us": 401.5, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 401.4, + "us": 401.5, "level": "partial" }, "structs (validate_skipped)": { - "us": 1975.6, + "us": 2476.5, "level": "full" }, "generic (double)": { - "us": 3978.5, + "us": 3940.4, "level": "partial" }, "generic (double, strict)": { - "us": 4012.8, + "us": 3966.0, + "level": "full" + }, + "generic (strict)": { + "us": 5244.2, "level": "full" }, "generic": { - "us": 5231.0, + "us": 5256.4, "level": "partial" }, - "generic (strict)": { - "us": 5351.2, - "level": "full" - }, "lazy_json": { - "us": 8217.4, + "us": 8408.8, "level": "partial" } }, @@ -5888,35 +6340,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 1267.8, + "us": 1269.5, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 1267.8, + "us": 1269.5, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1649.7, + "us": 1642.8, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1649.7, + "us": 1642.8, "level": "full" }, "variants": { "parse_into structs": { - "us": 1267.8, + "us": 1269.5, "level": "full" }, "parser (reused)": { - "us": 1649.7, + "us": 1642.8, "level": "full" }, "parse": { - "us": 1655.7, + "us": 1643.6, "level": "full" } }, @@ -5927,55 +6379,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1892.7, + "us": 1809.6, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1834.1, + "us": 1763.6, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1897.6, + "us": 1894.9, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator)", - "us": 1897.6, + "us": 1894.9, "level": "full" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1834.1, + "insitu (copy untimed) (no encoding check)": { + "us": 1648.3, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 1870.7, + "insitu (copy untimed)": { + "us": 1693.1, + "level": "full" + }, + "insitu (copy) (no encoding check)": { + "us": 1763.6, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1892.7, + "us": 1809.6, "level": "full" }, + "Document (string stream) (no encoding check)": { + "us": 1816.7, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 1847.1, + "level": "full" + }, + "Document (no encoding check)": { + "us": 1865.3, + "level": "no UTF-8" + }, "Document (reused allocator)": { - "us": 1897.6, + "us": 1894.9, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1931.2, + "us": 1920.5, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 2106.3, + "us": 2119.7, "level": "no UTF-8" }, "Document": { - "us": 2298.6, + "us": 2275.6, "level": "full" }, "Document (raw numbers)": { - "us": 2532.1, + "us": 2517.8, "level": "full" } } @@ -6061,59 +6529,63 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 1305.9, + "us": 1368.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 1305.9, + "us": 1368.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 1304.0, + "us": 1373.7, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1304.0, + "us": 1373.7, "level": "full" }, "variants": { - "read (reused)": { - "us": 1304.0, + "parse": { + "us": 1368.2, "level": "full" }, - "parse": { - "us": 1305.9, + "read (reused)": { + "us": 1373.7, "level": "full" }, "structs (from_json)": { - "us": 1311.7, + "us": 1388.1, + "level": "full" + }, + "parse_copy": { + "us": 1560.8, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 11070.5, + "variant": "structs (from_json)", + "us": 12005.7, "level": "full" }, "best_any": { - "variant": "parse", - "us": 11070.5, + "variant": "structs (from_json)", + "us": 12005.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 11070.5, + "structs (from_json)": { + "us": 12005.7, "level": "full" }, - "structs (from_json)": { - "us": 11198.8, + "parse": { + "us": 12483.4, "level": "full" } } @@ -6121,39 +6593,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 2136.4, + "us": 2204.3, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 2136.4, + "us": 2204.3, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 3286.6, + "us": 3500.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 3286.6, + "us": 3500.0, "level": "full" }, "variants": { "read (raw numbers)": { - "us": 2136.4, + "us": 2204.3, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 3358.7, "level": "full" }, "read": { - "us": 3281.1, + "us": 3434.1, "level": "full" }, "read (reused allocator)": { - "us": 3286.6, + "us": 3500.0, "level": "full" }, "insitu (copy)": { - "us": 3345.0, + "us": 3523.0, "level": "full" } } @@ -6161,47 +6637,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3263.3, + "us": 3324.7, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 674.4, + "variant": "On-Demand (key selectors)", + "us": 689.5, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 3240.4, + "us": 3490.5, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 674.2, + "us": 698.4, "level": "partial" }, "variants": { + "On-Demand (key selectors)": { + "us": 689.5, + "level": "partial" + }, "On-Demand (reused)": { - "us": 674.2, + "us": 698.4, "level": "partial" }, "On-Demand": { - "us": 674.4, - "level": "partial" - }, - "On-Demand (key selectors)": { - "us": 687.0, + "us": 720.0, "level": "partial" }, "On-Demand structs": { - "us": 887.7, + "us": 901.8, "level": "partial" }, - "DOM (reused)": { - "us": 3240.4, + "DOM": { + "us": 3324.7, "level": "full" }, - "DOM": { - "us": 3263.3, + "DOM (reused)": { + "us": 3490.5, "level": "full" } } @@ -6210,14 +6686,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3178.3, + "us": 3463.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3178.3, + "us": 3463.8, "level": "no UTF-8" } } @@ -6225,43 +6701,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 2534.1, + "us": 2557.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 418.1, + "us": 416.9, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 418.1, + "us": 416.9, "level": "partial" }, "structs (validate_skipped)": { - "us": 2534.1, + "us": 2557.2, "level": "full" }, "lazy_json": { - "us": 3465.5, + "us": 3640.4, "level": "partial" }, "generic (double)": { - "us": 9773.8, + "us": 10383.5, "level": "partial" }, "generic (double, strict)": { - "us": 11176.3, + "us": 10884.7, "level": "full" }, "generic (strict)": { - "us": 16689.6, + "us": 18620.2, "level": "full" }, "generic": { - "us": 17254.1, + "us": 18916.1, "level": "partial" } }, @@ -6272,35 +6748,35 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 6606.3, + "us": 7291.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 6606.3, + "us": 7291.6, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 6758.0, + "us": 7307.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 6758.0, + "us": 7307.2, "level": "full" }, "variants": { "parse": { - "us": 6606.3, + "us": 7291.6, "level": "full" }, "parser (reused)": { - "us": 6758.0, + "us": 7307.2, "level": "full" }, "parse_into structs": { - "us": 6934.6, + "us": 7567.9, "level": "full" } }, @@ -6310,56 +6786,72 @@ }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 10262.6, + "variant": "Document (string stream)", + "us": 10389.8, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 10262.6, + "variant": "Document (string stream)", + "us": 10389.8, "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 11686.2, + "us": 12439.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator)", - "us": 11686.2, + "us": 12439.1, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 10262.6, + "Document (string stream)": { + "us": 10389.8, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 10515.7, "level": "full" }, "insitu (copy) (no encoding check)": { - "us": 10416.3, + "us": 10725.2, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 10787.5, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 10836.1, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 11011.0, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 11686.2, + "us": 12439.1, + "level": "full" + }, + "Document": { + "us": 12575.5, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 11687.1, - "level": "no UTF-8" - }, - "Document": { - "us": 11884.6, - "level": "full" - }, - "Document (no encoding check)": { - "us": 11970.5, + "us": 12906.6, "level": "no UTF-8" }, "Document (raw numbers)": { - "us": 12564.6, + "us": 12915.3, "level": "full" }, "Document (raw numbers) (no encoding check)": { - "us": 12618.5, + "us": 13024.2, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 13199.0, "level": "no UTF-8" } } @@ -6445,35 +6937,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 91598.5, + "us": 89876.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 91598.5, + "us": 89876.3, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 54580.1, + "us": 53056.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 54580.1, + "us": 53056.6, "level": "full" }, "variants": { "read (reused)": { - "us": 54580.1, + "us": 53056.6, "level": "full" }, "parse": { - "us": 91598.5, + "us": 89876.3, "level": "full" }, "structs (from_json)": { - "us": 112747.6, + "us": 102875.2, + "level": "full" + }, + "parse_copy": { + "us": 131355.6, "level": "full" } } @@ -6481,63 +6977,67 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 426941.9, + "us": 410220.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 426941.9, + "us": 410220.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 426941.9, + "us": 410220.7, "level": "full" }, "structs (from_json)": { - "us": 428225.0, + "us": 428036.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 138355.6, + "variant": "read (raw numbers)", + "us": 135777.7, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 138355.6, + "variant": "read (raw numbers)", + "us": 135777.7, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 73042.5, + "us": 70652.0, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 73042.5, + "us": 70652.0, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 73042.5, + "us": 70652.0, "level": "full" }, - "insitu (copy)": { - "us": 138355.6, - "level": "full" - }, - "read": { - "us": 141695.0, + "insitu (copy untimed)": { + "us": 96172.3, "level": "full" }, "read (raw numbers)": { - "us": 144240.4, + "us": 135777.7, + "level": "full" + }, + "insitu (copy)": { + "us": 138922.1, + "level": "full" + }, + "read": { + "us": 139868.1, "level": "full" } } @@ -6545,47 +7045,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 127285.3, + "us": 122555.9, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 49612.8, + "variant": "On-Demand (key selectors)", + "us": 48272.2, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 59579.7, + "us": 56403.4, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 29957.0, + "us": 28436.0, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 29957.0, - "level": "partial" - }, - "On-Demand": { - "us": 49612.8, + "us": 28436.0, "level": "partial" }, "On-Demand (key selectors)": { - "us": 50957.0, + "us": 48272.2, + "level": "partial" + }, + "On-Demand": { + "us": 48772.9, "level": "partial" }, "DOM (reused)": { - "us": 59579.7, + "us": 56403.4, "level": "full" }, "On-Demand structs": { - "us": 73018.9, + "us": 69146.1, "level": "partial" }, "DOM": { - "us": 127285.3, + "us": 122555.9, "level": "full" } } @@ -6594,14 +7094,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 113266.6, + "us": 110884.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 113266.6, + "us": 110884.8, "level": "no UTF-8" } } @@ -6609,43 +7109,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 87637.2, + "us": 89957.0, "level": "full" }, "best_any": { "variant": "structs", - "us": 70800.7, + "us": 67466.7, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 70800.7, + "us": 67466.7, "level": "partial" }, "structs (validate_skipped)": { - "us": 87637.2, + "us": 89957.0, "level": "full" }, "lazy_json": { - "us": 120979.2, + "us": 121164.6, "level": "partial" }, "generic (double, strict)": { - "us": 244153.8, + "us": 239604.5, "level": "full" }, "generic (double)": { - "us": 250509.8, + "us": 250218.1, "level": "partial" }, "generic (strict)": { - "us": 324209.2, + "us": 319624.4, "level": "full" }, "generic": { - "us": 326009.9, + "us": 323477.2, "level": "partial" } }, @@ -6656,35 +7156,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 94730.2, + "us": 95866.3, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 94730.2, + "us": 95866.3, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 133163.0, + "us": 135537.9, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 133163.0, + "us": 135537.9, "level": "full" }, "variants": { "parse_into structs": { - "us": 94730.2, + "us": 95866.3, "level": "full" }, "parser (reused)": { - "us": 133163.0, + "us": 135537.9, "level": "full" }, "parse": { - "us": 199581.5, + "us": 190726.3, "level": "full" } }, @@ -6694,56 +7194,72 @@ }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 165979.4, + "variant": "Document (string stream)", + "us": 147469.9, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 159427.3, + "variant": "Document (string stream) (no encoding check)", + "us": 137983.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 183270.3, + "us": 188613.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 181253.1, + "us": 182388.4, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 108290.1, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 116393.7, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 137983.7, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 147469.9, + "level": "full" + }, "insitu (copy) (no encoding check)": { - "us": 159427.3, + "us": 148650.3, "level": "no UTF-8" }, "insitu (copy)": { - "us": 165979.4, + "us": 158429.5, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 181253.1, - "level": "no UTF-8" - }, - "Document (reused allocator)": { - "us": 183270.3, - "level": "full" - }, - "Document (no encoding check)": { - "us": 184661.1, + "us": 182388.4, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 194453.1, + "us": 183032.3, "level": "no UTF-8" }, - "Document": { - "us": 268554.8, + "Document (no encoding check)": { + "us": 185663.7, + "level": "no UTF-8" + }, + "Document (reused allocator)": { + "us": 188613.4, "level": "full" }, "Document (raw numbers)": { - "us": 268767.2, + "us": 261083.0, + "level": "full" + }, + "Document": { + "us": 266364.1, "level": "full" } } @@ -6839,17 +7355,17 @@ }, "best_reused": { "variant": "read (reused)", - "us": 1.6, + "us": 1.5, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1.6, + "us": 1.5, "level": "full" }, "variants": { "read (reused)": { - "us": 1.6, + "us": 1.5, "level": "full" }, "parse": { @@ -6859,29 +7375,33 @@ "structs (from_json)": { "us": 1.7, "level": "full" + }, + "parse_copy": { + "us": 1.8, + "level": "full" } } }, "nlohmann json": { "best": { - "variant": "structs (from_json)", - "us": 17.8, + "variant": "parse", + "us": 17.7, "level": "full" }, "best_any": { - "variant": "structs (from_json)", - "us": 17.8, + "variant": "parse", + "us": 17.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "structs (from_json)": { - "us": 17.8, + "parse": { + "us": 17.7, "level": "full" }, - "parse": { - "us": 18.6, + "structs (from_json)": { + "us": 17.7, "level": "full" } } @@ -6912,7 +7432,7 @@ "us": 1.7, "level": "full" }, - "insitu (copy)": { + "insitu (copy untimed)": { "us": 1.7, "level": "full" }, @@ -6920,6 +7440,10 @@ "us": 1.7, "level": "full" }, + "insitu (copy)": { + "us": 1.8, + "level": "full" + }, "read (raw numbers)": { "us": 1.8, "level": "full" @@ -6939,7 +7463,7 @@ }, "best_reused": { "variant": "DOM (reused)", - "us": 1.8, + "us": 1.6, "level": "full" }, "best_reused_any": { @@ -6965,7 +7489,7 @@ "level": "partial" }, "DOM (reused)": { - "us": 1.8, + "us": 1.6, "level": "full" }, "DOM": { @@ -7017,19 +7541,19 @@ "level": "partial" }, "generic (double)": { - "us": 9.3, + "us": 9.2, "level": "partial" }, "generic (double, strict)": { - "us": 10.1, + "us": 9.3, "level": "full" }, "generic": { - "us": 13.0, + "us": 12.3, "level": "partial" }, "generic (strict)": { - "us": 13.2, + "us": 12.5, "level": "full" } }, @@ -7079,17 +7603,17 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 5.4, + "us": 5.0, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 3.8, + "us": 3.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 7.8, + "us": 7.7, "level": "full" }, "best_reused_any": { @@ -7098,12 +7622,28 @@ "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 3.8, + "insitu (copy untimed) (no encoding check)": { + "us": 3.4, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 3.5, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 4.5, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 4.9, + "level": "full" + }, "insitu (copy)": { - "us": 5.4, + "us": 5.0, + "level": "full" + }, + "Document (string stream)": { + "us": 6.4, "level": "full" }, "Document (reused allocator) (no encoding check)": { @@ -7111,23 +7651,23 @@ "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 7.6, + "us": 7.5, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 7.8, + "us": 7.7, "level": "full" }, "Document (raw numbers) (no encoding check)": { - "us": 8.0, + "us": 7.7, "level": "no UTF-8" }, "Document": { - "us": 11.9, + "us": 11.4, "level": "full" }, "Document (raw numbers)": { - "us": 11.9, + "us": 11.6, "level": "full" } } @@ -7213,35 +7753,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 277.9, + "us": 276.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 277.9, + "us": 276.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 273.4, + "us": 272.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 273.4, + "us": 272.6, "level": "full" }, "variants": { "read (reused)": { - "us": 273.4, + "us": 272.6, "level": "full" }, "parse": { - "us": 277.9, + "us": 276.8, "level": "full" }, "structs (from_json)": { - "us": 280.3, + "us": 281.9, + "level": "full" + }, + "parse_copy": { + "us": 307.0, "level": "full" } } @@ -7249,23 +7793,23 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 3365.5, + "us": 3212.0, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 3365.5, + "us": 3212.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 3365.5, + "us": 3212.0, "level": "full" }, "parse": { - "us": 3377.6, + "us": 3244.4, "level": "full" } } @@ -7273,39 +7817,43 @@ "yyjson": { "best": { "variant": "read", - "us": 356.0, + "us": 333.8, "level": "full" }, "best_any": { "variant": "read", - "us": 356.0, + "us": 333.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 335.2, + "us": 332.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 335.2, + "us": 332.2, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 301.0, + "level": "full" + }, "read (reused allocator)": { - "us": 335.2, + "us": 332.2, "level": "full" }, "read": { - "us": 356.0, + "us": 333.8, "level": "full" }, "insitu (copy)": { - "us": 359.5, + "us": 334.2, "level": "full" }, "read (raw numbers)": { - "us": 370.1, + "us": 337.7, "level": "full" } } @@ -7313,47 +7861,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 292.6, + "us": 295.2, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 157.0, + "us": 158.9, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 294.4, + "us": 293.1, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 153.3, + "us": 156.2, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 153.3, + "us": 156.2, "level": "partial" }, "On-Demand": { - "us": 157.0, - "level": "partial" - }, - "On-Demand structs": { - "us": 162.7, + "us": 158.9, "level": "partial" }, "On-Demand (key selectors)": { - "us": 163.9, + "us": 160.0, "level": "partial" }, - "DOM": { - "us": 292.6, - "level": "full" + "On-Demand structs": { + "us": 162.5, + "level": "partial" }, "DOM (reused)": { - "us": 294.4, + "us": 293.1, + "level": "full" + }, + "DOM": { + "us": 295.2, "level": "full" } } @@ -7362,14 +7910,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 306.1, + "us": 305.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 306.1, + "us": 305.1, "level": "no UTF-8" } } @@ -7377,44 +7925,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 475.7, + "us": 467.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 294.9, + "us": 296.5, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 294.9, + "us": 296.5, "level": "partial" }, "structs (validate_skipped)": { - "us": 475.7, + "us": 467.5, "level": "full" }, "lazy_json": { - "us": 488.0, + "us": 482.2, "level": "partial" }, "generic (double)": { - "us": 2224.4, + "us": 2149.2, "level": "partial" }, "generic (double, strict)": { - "us": 2250.6, - "level": "full" - }, - "generic (strict)": { - "us": 2774.4, + "us": 2178.3, "level": "full" }, "generic": { - "us": 2807.2, + "us": 2727.9, "level": "partial" + }, + "generic (strict)": { + "us": 2793.3, + "level": "full" } }, "excluded": { @@ -7424,35 +7972,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 734.6, + "us": 754.3, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 734.6, + "us": 754.3, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1203.5, + "us": 1201.6, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1203.5, + "us": 1201.6, "level": "full" }, "variants": { "parse_into structs": { - "us": 734.6, - "level": "full" - }, - "parse": { - "us": 1202.5, + "us": 754.3, "level": "full" }, "parser (reused)": { - "us": 1203.5, + "us": 1201.6, + "level": "full" + }, + "parse": { + "us": 1209.3, "level": "full" } }, @@ -7463,55 +8011,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 912.1, + "us": 862.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 864.4, + "us": 779.0, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1476.3, + "us": 1456.8, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1340.7, + "us": 1319.8, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 864.4, + "insitu (copy untimed) (no encoding check)": { + "us": 746.7, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 779.0, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 833.0, + "level": "full" + }, "insitu (copy)": { - "us": 912.1, + "us": 862.7, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 1020.1, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 1131.7, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1340.7, + "us": 1319.8, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1364.7, + "us": 1343.1, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 1367.3, + "us": 1366.1, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1476.3, - "level": "full" - }, - "Document (raw numbers)": { - "us": 2135.6, + "us": 1456.8, "level": "full" }, "Document": { - "us": 2156.9, + "us": 2024.1, + "level": "full" + }, + "Document (raw numbers)": { + "us": 2055.2, "level": "full" } } @@ -7597,35 +8161,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 526.6, + "us": 551.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 526.6, + "us": 551.4, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 531.4, + "us": 555.5, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 531.4, + "us": 555.5, "level": "full" }, "variants": { "parse": { - "us": 526.6, + "us": 551.4, "level": "full" }, "read (reused)": { - "us": 531.4, + "us": 555.5, + "level": "full" + }, + "parse_copy": { + "us": 569.8, "level": "full" }, "structs (from_json)": { - "us": 560.3, + "us": 606.4, "level": "full" } } @@ -7633,23 +8201,23 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 4759.7, + "us": 5275.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 4759.7, + "us": 5275.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 4759.7, + "us": 5275.0, "level": "full" }, "structs (from_json)": { - "us": 4805.0, + "us": 5363.6, "level": "full" } } @@ -7657,39 +8225,43 @@ "yyjson": { "best": { "variant": "read", - "us": 496.1, + "us": 509.4, "level": "full" }, "best_any": { "variant": "read", - "us": 496.1, + "us": 509.4, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 496.7, + "us": 535.2, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 496.7, + "us": 535.2, "level": "full" }, "variants": { "read": { - "us": 496.1, - "level": "full" - }, - "read (reused allocator)": { - "us": 496.7, + "us": 509.4, "level": "full" }, "insitu (copy)": { - "us": 497.3, + "us": 512.1, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 512.3, + "level": "full" + }, + "read (reused allocator)": { + "us": 535.2, "level": "full" }, "read (raw numbers)": { - "us": 516.7, + "us": 561.0, "level": "full" } } @@ -7697,47 +8269,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 547.2, + "us": 572.7, "level": "full" }, "best_any": { - "variant": "On-Demand (key selectors)", - "us": 327.1, + "variant": "On-Demand", + "us": 334.7, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 545.1, + "us": 599.6, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 332.1, + "us": 356.3, "level": "partial" }, "variants": { + "On-Demand": { + "us": 334.7, + "level": "partial" + }, "On-Demand (key selectors)": { - "us": 327.1, + "us": 348.3, "level": "partial" }, "On-Demand (reused)": { - "us": 332.1, - "level": "partial" - }, - "On-Demand": { - "us": 332.8, + "us": 356.3, "level": "partial" }, "On-Demand structs": { - "us": 367.8, + "us": 389.9, "level": "partial" }, - "DOM (reused)": { - "us": 545.1, + "DOM": { + "us": 572.7, "level": "full" }, - "DOM": { - "us": 547.2, + "DOM (reused)": { + "us": 599.6, "level": "full" } } @@ -7746,14 +8318,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 612.3, + "us": 662.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 612.3, + "us": 662.6, "level": "no UTF-8" } } @@ -7761,43 +8333,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 798.7, + "us": 815.2, "level": "full" }, "best_any": { "variant": "structs", - "us": 204.2, + "us": 205.2, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 204.2, + "us": 205.2, "level": "partial" }, "structs (validate_skipped)": { - "us": 798.7, + "us": 815.2, "level": "full" }, "lazy_json": { - "us": 1591.3, + "us": 1707.1, "level": "partial" }, "generic (double)": { - "us": 3046.9, + "us": 3279.8, "level": "partial" }, "generic (double, strict)": { - "us": 3062.9, + "us": 3410.3, "level": "full" }, "generic (strict)": { - "us": 4472.8, + "us": 4850.0, "level": "full" }, "generic": { - "us": 4493.0, + "us": 4994.5, "level": "partial" } }, @@ -7808,35 +8380,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 990.7, + "us": 1074.9, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 990.7, + "us": 1074.9, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1392.1, + "us": 1435.4, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1392.1, + "us": 1435.4, "level": "full" }, "variants": { "parse_into structs": { - "us": 990.7, - "level": "full" - }, - "parse": { - "us": 1383.2, + "us": 1074.9, "level": "full" }, "parser (reused)": { - "us": 1392.1, + "us": 1435.4, + "level": "full" + }, + "parse": { + "us": 1511.7, "level": "full" } }, @@ -7847,55 +8419,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1286.5, + "us": 1282.2, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 1286.5, + "us": 1282.2, "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1686.1, + "us": 1895.7, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator)", - "us": 1686.1, - "level": "full" + "variant": "Document (reused allocator) (no encoding check)", + "us": 1890.2, + "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1269.6, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1275.6, + "level": "full" + }, "insitu (copy)": { - "us": 1286.5, + "us": 1282.2, "level": "full" }, "insitu (copy) (no encoding check)": { - "us": 1312.9, + "us": 1352.2, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 1430.4, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 1539.8, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1672.4, + "us": 1839.3, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 1890.2, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1686.1, + "us": 1895.7, "level": "full" }, - "Document (reused allocator) (no encoding check)": { - "us": 1754.2, - "level": "no UTF-8" - }, "Document (raw numbers) (no encoding check)": { - "us": 1908.8, + "us": 2175.1, "level": "no UTF-8" }, "Document": { - "us": 2126.9, + "us": 2325.9, "level": "full" }, "Document (raw numbers)": { - "us": 2393.8, + "us": 2613.7, "level": "full" } } @@ -7983,23 +8571,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 533.5, + "us": 529.7, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 533.5, + "us": 529.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 533.5, + "us": 529.7, "level": "full" }, "editable": { - "us": 538.2, + "us": 536.5, "level": "full" } } @@ -8007,23 +8595,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2805.9, + "us": 2832.5, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2805.9, + "us": 2832.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 2805.9, + "us": 2832.5, "level": "full" }, "parse": { - "us": 3934.0, + "us": 3834.2, "level": "full" } } @@ -8031,23 +8619,27 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 787.2, + "us": 791.4, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 787.2, + "us": 791.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 746.4, + "level": "full" + }, "mut copy": { - "us": 787.2, + "us": 791.4, "level": "full" }, "insitu (copy) + mut copy": { - "us": 800.7, + "us": 797.1, "level": "full" } } @@ -8056,14 +8648,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 619.2, + "us": 619.9, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 619.2, + "us": 619.9, "level": "no UTF-8" } } @@ -8071,23 +8663,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3364.1, + "us": 3388.6, "level": "full" }, "best_any": { "variant": "generic", - "us": 3316.3, + "us": 3289.6, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 3316.3, + "us": 3289.6, "level": "partial" }, "generic (strict)": { - "us": 3364.1, + "us": 3388.6, "level": "full" } }, @@ -8099,19 +8691,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1768.5, + "us": 1767.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 1768.5, + "us": 1767.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1768.5, + "us": 1767.2, "level": "full" } } @@ -8119,31 +8711,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1950.8, + "us": 1918.5, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1792.8, + "us": 1747.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1792.8, + "insitu (copy untimed) (no encoding check)": { + "us": 1737.3, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 1747.0, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1854.3, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1865.0, + "level": "full" + }, "insitu (copy)": { - "us": 1950.8, + "us": 1918.5, "level": "full" }, "Document (no encoding check)": { - "us": 2006.1, + "us": 2020.1, "level": "no UTF-8" }, + "Document (string stream)": { + "us": 2036.6, + "level": "full" + }, "Document": { - "us": 2706.0, + "us": 2725.6, "level": "full" } } @@ -8216,24 +8824,24 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "editable", - "us": 1111.7, + "variant": "editable (source numbers)", + "us": 1148.7, "level": "full" }, "best_any": { - "variant": "editable", - "us": 1111.7, + "variant": "editable (source numbers)", + "us": 1148.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "editable": { - "us": 1111.7, + "editable (source numbers)": { + "us": 1148.7, "level": "full" }, - "editable (source numbers)": { - "us": 1126.1, + "editable": { + "us": 1162.3, "level": "full" } } @@ -8241,23 +8849,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 4971.5, + "us": 4970.1, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 4971.5, + "us": 4970.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 4971.5, + "us": 4970.1, "level": "full" }, "parse": { - "us": 5836.1, + "us": 5811.0, "level": "full" } } @@ -8265,23 +8873,27 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 1644.7, + "us": 1631.8, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 1644.7, + "us": 1631.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 1526.1, + "level": "full" + }, "insitu (copy) + mut copy": { - "us": 1644.7, + "us": 1631.8, "level": "full" }, "mut copy": { - "us": 1644.9, + "us": 1633.3, "level": "full" } } @@ -8290,14 +8902,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1434.1, + "us": 1438.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1434.1, + "us": 1438.4, "level": "no UTF-8" } } @@ -8305,23 +8917,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 6117.9, + "us": 6002.3, "level": "full" }, "best_any": { "variant": "generic", - "us": 5989.1, + "us": 5970.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 5989.1, + "us": 5970.1, "level": "partial" }, "generic (strict)": { - "us": 6117.9, + "us": 6002.3, "level": "full" } }, @@ -8333,19 +8945,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 2510.7, + "us": 2493.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 2510.7, + "us": 2493.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 2510.7, + "us": 2493.1, "level": "full" } } @@ -8353,31 +8965,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2857.6, + "us": 2740.5, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 2784.8, + "us": 2691.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 2784.8, + "insitu (copy untimed) (no encoding check)": { + "us": 2594.8, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 2802.4, + "insitu (copy untimed)": { + "us": 2616.4, + "level": "full" + }, + "insitu (copy) (no encoding check)": { + "us": 2691.0, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2857.6, + "us": 2740.5, "level": "full" }, + "Document (string stream) (no encoding check)": { + "us": 2743.8, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 2771.2, + "level": "full" + }, + "Document (no encoding check)": { + "us": 2787.9, + "level": "no UTF-8" + }, "Document": { - "us": 3221.3, + "us": 3204.3, "level": "full" } } @@ -8451,47 +9079,47 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 2132.9, + "us": 2188.1, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 2132.9, + "us": 2188.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 2132.9, + "us": 2188.1, "level": "full" }, "editable": { - "us": 5519.4, + "us": 5567.3, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 14917.1, + "variant": "ordered_json", + "us": 15805.5, "level": "full" }, "best_any": { - "variant": "parse", - "us": 14917.1, + "variant": "ordered_json", + "us": 15805.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 14917.1, + "ordered_json": { + "us": 15805.5, "level": "full" }, - "ordered_json": { - "us": 14991.2, + "parse": { + "us": 15845.2, "level": "full" } } @@ -8499,23 +9127,27 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 7402.7, + "us": 7654.7, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 7402.7, + "us": 7654.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 7478.9, + "level": "full" + }, "insitu (copy) + mut copy": { - "us": 7402.7, + "us": 7654.7, "level": "full" }, "mut copy": { - "us": 7478.6, + "us": 7676.3, "level": "full" } } @@ -8524,14 +9156,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 8257.4, + "us": 8495.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 8257.4, + "us": 8495.2, "level": "no UTF-8" } } @@ -8539,24 +9171,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 20572.0, + "us": 21598.4, "level": "full" }, "best_any": { - "variant": "generic (strict)", - "us": 20572.0, - "level": "full" + "variant": "generic", + "us": 21329.2, + "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (strict)": { - "us": 20572.0, - "level": "full" - }, "generic": { - "us": 20873.8, + "us": 21329.2, "level": "partial" + }, + "generic (strict)": { + "us": 21598.4, + "level": "full" } }, "excluded": { @@ -8567,52 +9199,68 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 12297.7, + "us": 12767.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 12297.7, + "us": 12767.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 12297.7, + "us": 12767.4, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 19274.1, + "variant": "Document (string stream)", + "us": 18812.1, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 18933.6, - "level": "no UTF-8" + "variant": "Document (string stream)", + "us": 18812.1, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 18933.6, + "Document (string stream)": { + "us": 18812.1, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 19170.2, "level": "no UTF-8" }, + "Document (string stream) (no encoding check)": { + "us": 19443.4, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 19447.6, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 19448.5, + "level": "full" + }, "insitu (copy)": { - "us": 19274.1, + "us": 19695.5, + "level": "full" + }, + "Document": { + "us": 21357.3, "level": "full" }, "Document (no encoding check)": { - "us": 20607.0, + "us": 21810.2, "level": "no UTF-8" - }, - "Document": { - "us": 20644.4, - "level": "full" } } }, @@ -8684,24 +9332,24 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 195193.6, + "variant": "editable", + "us": 192322.7, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 195193.6, + "variant": "editable", + "us": 192322.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 195193.6, + "editable": { + "us": 192322.7, "level": "full" }, - "editable": { - "us": 195482.0, + "editable (source numbers)": { + "us": 193342.7, "level": "full" } } @@ -8709,47 +9357,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 635353.1, + "us": 647704.5, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 635353.1, + "us": 647704.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 635353.1, + "us": 647704.5, "level": "full" }, "parse": { - "us": 823137.1, + "us": 844653.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 311248.8, + "variant": "mut copy", + "us": 313354.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 311248.8, + "variant": "mut copy", + "us": 313354.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 311248.8, + "insitu (copy untimed) + mut copy": { + "us": 275024.6, "level": "full" }, "mut copy": { - "us": 316837.5, + "us": 313354.7, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 313654.0, "level": "full" } } @@ -8758,14 +9410,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 183467.5, + "us": 186077.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 183467.5, + "us": 186077.7, "level": "no UTF-8" } } @@ -8773,23 +9425,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 626528.7, + "us": 607766.9, "level": "full" }, "best_any": { "variant": "generic (strict)", - "us": 626528.7, + "us": 607766.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (strict)": { - "us": 626528.7, + "us": 607766.9, "level": "full" }, "generic": { - "us": 643298.4, + "us": 622208.2, "level": "partial" } }, @@ -8801,51 +9453,67 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 339121.0, + "us": 331309.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 339121.0, + "us": 331309.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 339121.0, + "us": 331309.7, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 288710.0, + "variant": "Document (string stream)", + "us": 268046.5, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 288193.5, + "variant": "Document (string stream) (no encoding check)", + "us": 258426.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 234669.1, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 245724.3, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 258426.5, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 268046.5, + "level": "full" + }, "insitu (copy) (no encoding check)": { - "us": 288193.5, + "us": 277333.9, "level": "no UTF-8" }, "insitu (copy)": { - "us": 288710.0, + "us": 287472.3, "level": "full" }, "Document (no encoding check)": { - "us": 307935.0, + "us": 308207.2, "level": "no UTF-8" }, "Document": { - "us": 388669.8, + "us": 383510.1, "level": "full" } } @@ -8935,7 +9603,7 @@ "level": "full" }, "editable (source numbers)": { - "us": 3.0, + "us": 3.1, "level": "full" } } @@ -8943,46 +9611,50 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 13.7, + "us": 13.1, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 13.7, + "us": 13.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 13.7, + "us": 13.1, "level": "full" }, "parse": { - "us": 20.1, + "us": 19.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", + "variant": "mut copy", "us": 3.6, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", + "variant": "mut copy", "us": 3.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { + "mut copy": { "us": 3.6, "level": "full" }, - "mut copy": { + "insitu (copy untimed) + mut copy": { + "us": 3.6, + "level": "full" + }, + "insitu (copy) + mut copy": { "us": 3.7, "level": "full" } @@ -9007,23 +9679,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 15.0, + "us": 14.8, "level": "full" }, "best_any": { "variant": "generic", - "us": 14.9, + "us": 14.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 14.9, + "us": 14.4, "level": "partial" }, "generic (strict)": { - "us": 15.0, + "us": 14.8, "level": "full" } }, @@ -9055,31 +9727,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 9.1, + "us": 8.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 7.7, + "us": 7.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "insitu (copy) (no encoding check)": { - "us": 7.7, + "us": 7.2, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 7.2, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 8.3, "level": "no UTF-8" }, "insitu (copy)": { - "us": 9.1, + "us": 8.7, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 8.7, + "level": "full" + }, + "Document (string stream)": { + "us": 10.1, "level": "full" }, "Document (no encoding check)": { - "us": 11.5, + "us": 11.3, "level": "no UTF-8" }, "Document": { - "us": 16.2, + "us": 15.2, "level": "full" } } @@ -9152,24 +9840,24 @@ "twitter_min": { "nlohmann json_document": { "best": { - "variant": "editable (source numbers)", - "us": 476.1, + "variant": "editable", + "us": 474.8, "level": "full" }, "best_any": { - "variant": "editable (source numbers)", - "us": 476.1, + "variant": "editable", + "us": 474.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "editable (source numbers)": { - "us": 476.1, + "editable": { + "us": 474.8, "level": "full" }, - "editable": { - "us": 476.5, + "editable (source numbers)": { + "us": 476.1, "level": "full" } } @@ -9177,23 +9865,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2650.9, + "us": 2673.6, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2650.9, + "us": 2673.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 2650.9, + "us": 2673.6, "level": "full" }, "parse": { - "us": 3750.1, + "us": 3656.6, "level": "full" } } @@ -9201,23 +9889,27 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 711.2, + "us": 704.3, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 711.2, + "us": 704.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 677.0, + "level": "full" + }, "mut copy": { - "us": 711.2, + "us": 704.3, "level": "full" }, "insitu (copy) + mut copy": { - "us": 717.0, + "us": 704.9, "level": "full" } } @@ -9226,14 +9918,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 513.0, + "us": 511.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 513.0, + "us": 511.4, "level": "no UTF-8" } } @@ -9241,23 +9933,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3140.4, + "us": 3153.2, "level": "full" }, "best_any": { "variant": "generic", - "us": 3111.9, + "us": 3094.5, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 3111.9, + "us": 3094.5, "level": "partial" }, "generic (strict)": { - "us": 3140.4, + "us": 3153.2, "level": "full" } }, @@ -9269,19 +9961,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1649.1, + "us": 1653.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 1649.1, + "us": 1653.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1649.1, + "us": 1653.2, "level": "full" } } @@ -9289,31 +9981,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1585.7, + "us": 1538.4, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1525.0, + "us": 1461.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1525.0, + "insitu (copy untimed) (no encoding check)": { + "us": 1428.4, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 1461.7, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1505.8, + "level": "full" + }, "insitu (copy)": { - "us": 1585.7, + "us": 1538.4, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 1598.8, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 1703.4, "level": "full" }, "Document (no encoding check)": { - "us": 1935.3, + "us": 1914.2, "level": "no UTF-8" }, "Document": { - "us": 2635.2, + "us": 2615.9, "level": "full" } } @@ -9387,23 +10095,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 850.7, + "us": 860.5, "level": "full" }, "best_any": { "variant": "editable", - "us": 850.7, + "us": 860.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable": { - "us": 850.7, + "us": 860.5, "level": "full" }, "editable (source numbers)": { - "us": 850.7, + "us": 877.7, "level": "full" } } @@ -9411,47 +10119,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 4564.0, + "us": 4746.7, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 4564.0, + "us": 4746.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 4564.0, + "us": 4746.7, "level": "full" }, "parse": { - "us": 5392.4, + "us": 5667.6, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 1177.9, + "variant": "mut copy", + "us": 1173.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 1177.9, + "variant": "mut copy", + "us": 1173.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 1177.9, + "insitu (copy untimed) + mut copy": { + "us": 1145.9, "level": "full" }, "mut copy": { - "us": 1180.0, + "us": 1173.7, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 1179.1, "level": "full" } } @@ -9460,14 +10172,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1104.2, + "us": 1102.2, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1104.2, + "us": 1102.2, "level": "no UTF-8" } } @@ -9475,23 +10187,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 5223.1, + "us": 5385.2, "level": "full" }, "best_any": { "variant": "generic", - "us": 5179.1, + "us": 5287.8, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 5179.1, + "us": 5287.8, "level": "partial" }, "generic (strict)": { - "us": 5223.1, + "us": 5385.2, "level": "full" } }, @@ -9503,19 +10215,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 2239.2, + "us": 2263.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 2239.2, + "us": 2263.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 2239.2, + "us": 2263.4, "level": "full" } } @@ -9523,31 +10235,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2221.7, + "us": 2132.9, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 2221.7, + "us": 2132.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy)": { - "us": 2221.7, + "insitu (copy untimed)": { + "us": 2109.7, "level": "full" }, + "insitu (copy)": { + "us": 2132.9, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 2139.8, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 2263.6, + "us": 2172.3, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 2253.9, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 2323.6, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2605.5, + "us": 2639.0, "level": "no UTF-8" }, "Document": { - "us": 3033.3, + "us": 3083.6, "level": "full" } } @@ -9623,35 +10351,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 465.5, + "us": 495.8, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 465.5, + "us": 495.8, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 477.1, + "us": 494.2, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 477.1, + "us": 494.2, "level": "full" }, "variants": { - "parse + dump (source numbers)": { - "us": 465.5, + "read + dump (reused)": { + "us": 494.2, "level": "full" }, - "read + dump (reused)": { - "us": 477.1, + "parse + dump (source numbers)": { + "us": 495.8, "level": "full" }, "parse + dump": { - "us": 481.0, + "us": 518.1, + "level": "full" + }, + "parse_copy + dump": { + "us": 575.7, "level": "full" } } @@ -9659,59 +10391,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 3860.7, + "us": 4195.9, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 3860.7, + "us": 4195.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 3860.7, + "us": 4195.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 615.9, + "variant": "insitu (copy) + write", + "us": 625.5, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 615.9, + "variant": "insitu (copy) + write", + "us": 625.5, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 639.1, + "us": 716.6, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 639.1, + "us": 716.6, "level": "full" }, "variants": { - "read + write": { - "us": 615.9, + "insitu (copy) + write": { + "us": 625.5, "level": "full" }, - "insitu (copy) + write": { - "us": 615.9, + "insitu (copy untimed) + write": { + "us": 637.2, + "level": "full" + }, + "read + write": { + "us": 657.9, "level": "full" }, "read (raw numbers) + write": { - "us": 618.5, + "us": 667.1, "level": "full" }, "read + write (reused allocator)": { - "us": 639.1, + "us": 716.6, "level": "full" } } @@ -9719,35 +10455,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 788.3, + "us": 714.2, "level": "full" }, "best_any": { "variant": "minify", - "us": 93.7, + "us": 99.9, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 783.2, + "us": 703.7, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 783.2, + "us": 703.7, "level": "full" }, "variants": { "minify": { - "us": 93.7, + "us": 99.9, "level": "partial" }, "DOM (reused) + to_string": { - "us": 783.2, + "us": 703.7, "level": "full" }, "DOM + to_string": { - "us": 788.3, + "us": 714.2, "level": "full" } } @@ -9756,14 +10492,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 634.8, + "us": 675.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 634.8, + "us": 675.1, "level": "no UTF-8" } } @@ -9771,27 +10507,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3268.4, + "us": 3684.7, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 418.3, + "us": 442.0, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 418.3, + "us": 442.0, "level": "partial" }, "generic": { - "us": 3206.0, + "us": 3529.2, "level": "partial" }, "generic (strict)": { - "us": 3268.4, + "us": 3684.7, "level": "full" } }, @@ -9803,87 +10539,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1768.1, + "us": 1974.2, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1768.1, + "us": 1974.2, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1763.0, + "us": 1889.4, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1763.0, + "us": 1889.4, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 1763.0, + "us": 1889.4, "level": "full" }, "parse + serialize": { - "us": 1768.1, + "us": 1974.2, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 2430.8, + "variant": "SAX to Writer (string stream)", + "us": 1949.4, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1730.5, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 1879.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2154.0, + "us": 2412.6, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2026.0, + "us": 2267.0, "level": "no UTF-8" }, "variants": { - "SAX to Writer (no encoding check)": { - "us": 1730.5, + "SAX to Writer (string stream) (no encoding check)": { + "us": 1879.7, "level": "no UTF-8" }, + "SAX to Writer (no encoding check)": { + "us": 1941.4, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 1949.4, + "level": "full" + }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1749.7, - "level": "no UTF-8" - }, - "Document + Writer (reused allocator) (no encoding check)": { - "us": 2026.0, + "us": 1949.4, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2028.7, + "us": 2236.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2267.0, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 2154.0, + "us": 2412.6, "level": "full" }, "SAX to Writer": { - "us": 2430.8, + "us": 2683.1, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 2451.6, + "us": 2793.4, "level": "full" }, "Document + Writer": { - "us": 2751.0, + "us": 2887.6, "level": "full" } } @@ -9952,36 +10696,40 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 1017.1, + "variant": "parse + dump", + "us": 1044.8, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 1017.1, + "variant": "parse + dump", + "us": 1044.8, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 1029.7, + "us": 1071.1, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 1029.7, + "us": 1071.1, "level": "full" }, "variants": { + "parse + dump": { + "us": 1044.8, + "level": "full" + }, "parse + dump (source numbers)": { - "us": 1017.1, + "us": 1046.8, "level": "full" }, "read + dump (reused)": { - "us": 1029.7, + "us": 1071.1, "level": "full" }, - "parse + dump": { - "us": 1033.5, + "parse_copy + dump": { + "us": 1177.8, "level": "full" } } @@ -9989,19 +10737,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 5772.1, + "us": 5806.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 5772.1, + "us": 5806.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 5772.1, + "us": 5806.5, "level": "full" } } @@ -10009,39 +10757,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 1223.7, + "us": 1217.9, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 1223.7, + "us": 1217.9, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 1296.1, + "us": 1314.5, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 1296.1, + "us": 1314.5, "level": "full" }, "variants": { + "insitu (copy untimed) + write": { + "us": 1159.8, + "level": "full" + }, "read (raw numbers) + write": { - "us": 1223.7, + "us": 1217.9, "level": "full" }, "insitu (copy) + write": { - "us": 1272.6, + "us": 1265.0, "level": "full" }, "read + write": { - "us": 1273.2, + "us": 1265.8, "level": "full" }, "read + write (reused allocator)": { - "us": 1296.1, + "us": 1314.5, "level": "full" } } @@ -10049,35 +10801,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1302.5, + "us": 1318.4, "level": "full" }, "best_any": { "variant": "minify", - "us": 278.9, + "us": 278.1, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 1295.5, + "us": 1318.1, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 1295.5, + "us": 1318.1, "level": "full" }, "variants": { "minify": { - "us": 278.9, + "us": 278.1, "level": "partial" }, "DOM (reused) + to_string": { - "us": 1295.5, + "us": 1318.1, "level": "full" }, "DOM + to_string": { - "us": 1302.5, + "us": 1318.4, "level": "full" } } @@ -10086,14 +10838,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1427.4, + "us": 1417.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1427.4, + "us": 1417.4, "level": "no UTF-8" } } @@ -10101,28 +10853,28 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 6056.7, + "us": 5941.5, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 1291.8, + "us": 1292.0, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 1291.8, - "level": "partial" - }, - "generic": { - "us": 5902.0, + "us": 1292.0, "level": "partial" }, "generic (strict)": { - "us": 6056.7, + "us": 5941.5, "level": "full" + }, + "generic": { + "us": 5978.0, + "level": "partial" } }, "excluded": { @@ -10133,87 +10885,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2493.5, + "us": 2525.2, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2493.5, + "us": 2525.2, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 2492.5, + "us": 2498.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 2492.5, + "us": 2498.2, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 2492.5, + "us": 2498.2, "level": "full" }, "parse + serialize": { - "us": 2493.5, + "us": 2525.2, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 2815.1, + "variant": "SAX to Writer (string stream)", + "us": 2382.4, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 2395.0, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 2314.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2823.6, + "us": 2811.2, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator)", - "us": 2823.6, + "us": 2811.2, "level": "full" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 2314.5, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 2382.4, + "level": "full" + }, "SAX to Writer (no encoding check)": { - "us": 2395.0, + "us": 2387.7, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2652.0, - "level": "no UTF-8" - }, - "Document + Writer (no encoding check)": { - "us": 2808.6, + "us": 2623.9, "level": "no UTF-8" }, "SAX to Writer": { - "us": 2815.1, + "us": 2755.5, "level": "full" }, + "Document + Writer (no encoding check)": { + "us": 2774.0, + "level": "no UTF-8" + }, "Document + Writer (reused allocator)": { - "us": 2823.6, + "us": 2811.2, "level": "full" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 2852.3, + "us": 2862.5, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 3060.9, + "us": 3119.6, "level": "full" }, "Document + Writer": { - "us": 3236.3, + "us": 3228.6, "level": "full" } } @@ -10283,35 +11043,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 2153.0, + "us": 2196.2, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 2153.0, + "us": 2196.2, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 5187.2, + "us": 5381.2, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 5187.2, + "us": 5381.2, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 2153.0, + "us": 2196.2, "level": "full" }, "parse + dump": { - "us": 5162.7, + "us": 5240.0, "level": "full" }, "read + dump (reused)": { - "us": 5187.2, + "us": 5381.2, + "level": "full" + }, + "parse_copy + dump": { + "us": 5650.7, "level": "full" } } @@ -10319,19 +11083,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 14812.2, + "us": 16625.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 14812.2, + "us": 16625.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 14812.2, + "us": 16625.5, "level": "full" } } @@ -10339,39 +11103,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 2874.5, + "us": 2900.7, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 2874.5, + "us": 2900.7, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 6636.6, + "us": 7057.5, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 6636.6, + "us": 7057.5, "level": "full" }, "variants": { "read (raw numbers) + write": { - "us": 2874.5, + "us": 2900.7, "level": "full" }, - "read + write": { - "us": 6621.0, - "level": "full" - }, - "read + write (reused allocator)": { - "us": 6636.6, + "insitu (copy untimed) + write": { + "us": 6701.2, "level": "full" }, "insitu (copy) + write": { - "us": 6703.2, + "us": 6988.5, + "level": "full" + }, + "read + write": { + "us": 6999.3, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 7057.5, "level": "full" } } @@ -10379,35 +11147,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 8425.7, + "us": 9135.2, "level": "full" }, "best_any": { "variant": "minify", - "us": 312.6, + "us": 311.9, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 8502.2, + "us": 8851.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 8502.2, + "us": 8851.4, "level": "full" }, "variants": { "minify": { - "us": 312.6, + "us": 311.9, "level": "partial" }, - "DOM + to_string": { - "us": 8425.7, + "DOM (reused) + to_string": { + "us": 8851.4, "level": "full" }, - "DOM (reused) + to_string": { - "us": 8502.2, + "DOM + to_string": { + "us": 9135.2, "level": "full" } } @@ -10416,14 +11184,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 8228.0, + "us": 8958.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 8228.0, + "us": 8958.4, "level": "no UTF-8" } } @@ -10431,27 +11199,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 20638.6, + "us": 22138.1, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 2650.2, + "us": 2726.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 2650.2, + "us": 2726.4, "level": "partial" }, "generic (strict)": { - "us": 20638.6, + "us": 22138.1, "level": "full" }, "generic": { - "us": 21066.1, + "us": 22728.1, "level": "partial" } }, @@ -10463,31 +11231,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 12141.0, + "us": 12747.7, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 12141.0, + "us": 12747.7, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 12161.6, + "us": 13260.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 12161.6, + "us": 13260.2, "level": "full" }, "variants": { "parse + serialize": { - "us": 12141.0, + "us": 12747.7, "level": "full" }, "parser (reused) + serialize": { - "us": 12161.6, + "us": 13260.2, "level": "full" } } @@ -10495,55 +11263,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 14121.1, + "us": 14400.4, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 14118.4, - "level": "no UTF-8" + "variant": "SAX to Writer (raw numbers)", + "us": 14400.4, + "level": "full" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 20414.1, + "us": 21158.4, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator)", - "us": 20414.1, + "us": 21158.4, "level": "full" }, "variants": { + "SAX to Writer (raw numbers)": { + "us": 14400.4, + "level": "full" + }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 14118.4, + "us": 14666.2, "level": "no UTF-8" }, - "SAX to Writer (raw numbers)": { - "us": 14121.1, + "SAX to Writer (string stream)": { + "us": 19548.0, "level": "full" }, + "SAX to Writer (string stream) (no encoding check)": { + "us": 19577.5, + "level": "no UTF-8" + }, "Document + Writer (reused allocator)": { - "us": 20414.1, - "level": "full" - }, - "Document + Writer": { - "us": 20693.2, + "us": 21158.4, "level": "full" }, "SAX to Writer": { - "us": 20703.0, + "us": 21185.7, "level": "full" }, - "Document + Writer (no encoding check)": { - "us": 20708.9, - "level": "no UTF-8" - }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 20851.9, + "us": 21372.9, "level": "no UTF-8" }, "SAX to Writer (no encoding check)": { - "us": 20921.4, + "us": 22129.2, + "level": "no UTF-8" + }, + "Document + Writer": { + "us": 22260.0, + "level": "full" + }, + "Document + Writer (no encoding check)": { + "us": 22285.3, "level": "no UTF-8" } } @@ -10613,35 +11389,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 149649.0, + "us": 143205.7, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 149649.0, + "us": 143205.7, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 112257.2, + "us": 109335.3, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 112257.2, + "us": 109335.3, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 112257.2, + "us": 109335.3, "level": "full" }, "parse + dump (source numbers)": { - "us": 149649.0, + "us": 143205.7, "level": "full" }, "parse + dump": { - "us": 151260.3, + "us": 143736.6, + "level": "full" + }, + "parse_copy + dump": { + "us": 180536.2, "level": "full" } } @@ -10649,59 +11429,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 546636.9, + "us": 529559.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 546636.9, + "us": 529559.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 546636.9, + "us": 529559.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 203508.3, + "variant": "read + write", + "us": 188179.2, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 203508.3, + "variant": "read + write", + "us": 188179.2, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 99436.6, + "us": 98203.6, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 99436.6, + "us": 98203.6, "level": "full" }, "variants": { "read + write (reused allocator)": { - "us": 99436.6, + "us": 98203.6, "level": "full" }, - "insitu (copy) + write": { - "us": 203508.3, + "insitu (copy untimed) + write": { + "us": 156604.6, "level": "full" }, "read + write": { - "us": 203955.3, + "us": 188179.2, + "level": "full" + }, + "insitu (copy) + write": { + "us": 194880.4, "level": "full" }, "read (raw numbers) + write": { - "us": 206926.7, + "us": 198103.7, "level": "full" } } @@ -10709,35 +11493,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 301627.4, + "us": 269597.1, "level": "full" }, "best_any": { "variant": "minify", - "us": 46982.6, + "us": 42643.5, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 230436.4, + "us": 211456.6, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 230436.4, + "us": 211456.6, "level": "full" }, "variants": { "minify": { - "us": 46982.6, + "us": 42643.5, "level": "partial" }, "DOM (reused) + to_string": { - "us": 230436.4, + "us": 211456.6, "level": "full" }, "DOM + to_string": { - "us": 301627.4, + "us": 269597.1, "level": "full" } } @@ -10746,14 +11530,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 175214.5, + "us": 164630.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 175214.5, + "us": 164630.3, "level": "no UTF-8" } } @@ -10761,27 +11545,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 457013.4, + "us": 450321.8, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 93423.4, + "us": 97377.0, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 93423.4, + "us": 97377.0, "level": "partial" }, "generic": { - "us": 432551.5, + "us": 438618.4, "level": "partial" }, "generic (strict)": { - "us": 457013.4, + "us": 450321.8, "level": "full" } }, @@ -10793,87 +11577,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 330129.3, + "us": 314298.9, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 330129.3, + "us": 314298.9, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 269479.4, + "us": 267865.8, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 269479.4, + "us": 267865.8, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 269479.4, + "us": 267865.8, "level": "full" }, "parse + serialize": { - "us": 330129.3, + "us": 314298.9, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 375304.4, + "variant": "SAX to Writer (string stream)", + "us": 231978.8, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 274873.1, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 224249.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 311518.0, + "us": 311567.3, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 311291.9, + "us": 304495.2, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 224249.3, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 231978.8, + "level": "full" + }, "SAX to Writer (no encoding check)": { - "us": 274873.1, + "us": 271455.5, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 278774.2, - "level": "no UTF-8" - }, - "Document + Writer (no encoding check)": { - "us": 307269.7, + "us": 271842.8, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 311291.9, + "us": 304495.2, + "level": "no UTF-8" + }, + "Document + Writer (no encoding check)": { + "us": 304609.8, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 311518.0, + "us": 311567.3, "level": "full" }, "SAX to Writer": { - "us": 375304.4, + "us": 353200.1, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 377632.0, + "us": 367515.2, "level": "full" }, "Document + Writer": { - "us": 405032.5, + "us": 387659.4, "level": "full" } } @@ -10973,25 +11765,29 @@ "parse + dump": { "us": 2.5, "level": "full" + }, + "parse_copy + dump": { + "us": 2.6, + "level": "full" } } }, "nlohmann json": { "best": { "variant": "parse + dump", - "us": 19.4, + "us": 19.2, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 19.4, + "us": 19.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 19.4, + "us": 19.2, "level": "full" } } @@ -11009,17 +11805,21 @@ }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 2.7, + "us": 2.6, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 2.7, + "us": 2.6, "level": "full" }, "variants": { "read + write (reused allocator)": { - "us": 2.7, + "us": 2.6, + "level": "full" + }, + "insitu (copy untimed) + write": { + "us": 2.8, "level": "full" }, "read + write": { @@ -11039,7 +11839,7 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 4.7, + "us": 3.7, "level": "full" }, "best_any": { @@ -11049,12 +11849,12 @@ }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 4.3, + "us": 3.3, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 4.3, + "us": 3.3, "level": "full" }, "variants": { @@ -11063,11 +11863,11 @@ "level": "partial" }, "DOM (reused) + to_string": { - "us": 4.3, + "us": 3.3, "level": "full" }, "DOM + to_string": { - "us": 4.7, + "us": 3.7, "level": "full" } } @@ -11091,7 +11891,7 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 13.9, + "us": 14.0, "level": "full" }, "best_any": { @@ -11111,7 +11911,7 @@ "level": "partial" }, "generic (strict)": { - "us": 13.9, + "us": 14.0, "level": "full" } }, @@ -11123,57 +11923,65 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 8.7, + "us": 8.6, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 8.7, + "us": 8.6, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 8.3, + "us": 8.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 8.3, + "us": 8.2, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 8.3, + "us": 8.2, "level": "full" }, "parse + serialize": { - "us": 8.7, + "us": 8.6, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 13.5, + "variant": "SAX to Writer (string stream)", + "us": 8.2, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 9.5, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 6.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 11.4, + "us": 11.5, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 10.9, + "us": 10.8, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 6.2, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 8.2, + "level": "full" + }, "SAX to Writer (no encoding check)": { "us": 9.5, "level": "no UTF-8" @@ -11183,7 +11991,7 @@ "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 10.9, + "us": 10.8, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { @@ -11191,19 +11999,19 @@ "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 11.4, + "us": 11.5, "level": "full" }, "SAX to Writer": { - "us": 13.5, - "level": "full" - }, - "SAX to Writer (raw numbers)": { "us": 13.7, "level": "full" }, + "SAX to Writer (raw numbers)": { + "us": 13.9, + "level": "full" + }, "Document + Writer": { - "us": 15.5, + "us": 15.2, "level": "full" } } @@ -11273,35 +12081,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 419.1, + "us": 410.0, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 419.1, + "us": 410.0, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 441.1, + "us": 417.5, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 441.1, + "us": 417.5, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 419.1, - "level": "full" - }, - "parse + dump": { - "us": 426.4, + "us": 410.0, "level": "full" }, "read + dump (reused)": { - "us": 441.1, + "us": 417.5, + "level": "full" + }, + "parse + dump": { + "us": 423.3, + "level": "full" + }, + "parse_copy + dump": { + "us": 456.2, "level": "full" } } @@ -11309,19 +12121,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 3807.1, + "us": 3605.1, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 3807.1, + "us": 3605.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 3807.1, + "us": 3605.1, "level": "full" } } @@ -11329,39 +12141,43 @@ "yyjson": { "best": { "variant": "read + write", - "us": 557.8, + "us": 542.4, "level": "full" }, "best_any": { "variant": "read + write", - "us": 557.8, + "us": 542.4, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 553.1, + "us": 540.0, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 553.1, + "us": 540.0, "level": "full" }, "variants": { + "insitu (copy untimed) + write": { + "us": 518.2, + "level": "full" + }, "read + write (reused allocator)": { - "us": 553.1, + "us": 540.0, "level": "full" }, "read + write": { - "us": 557.8, + "us": 542.4, "level": "full" }, "insitu (copy) + write": { - "us": 609.9, + "us": 545.2, "level": "full" }, "read (raw numbers) + write": { - "us": 610.9, + "us": 547.7, "level": "full" } } @@ -11369,35 +12185,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 770.3, + "us": 654.5, "level": "full" }, "best_any": { "variant": "minify", - "us": 68.3, + "us": 67.7, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 782.8, + "us": 652.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 782.8, + "us": 652.4, "level": "full" }, "variants": { "minify": { - "us": 68.3, + "us": 67.7, "level": "partial" }, - "DOM + to_string": { - "us": 770.3, + "DOM (reused) + to_string": { + "us": 652.4, "level": "full" }, - "DOM (reused) + to_string": { - "us": 782.8, + "DOM + to_string": { + "us": 654.5, "level": "full" } } @@ -11406,14 +12222,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 542.4, + "us": 526.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 542.4, + "us": 526.3, "level": "no UTF-8" } } @@ -11421,27 +12237,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3173.4, + "us": 3043.3, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 353.4, + "us": 350.0, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 353.4, + "us": 350.0, "level": "partial" }, "generic": { - "us": 3011.9, + "us": 2990.2, "level": "partial" }, "generic (strict)": { - "us": 3173.4, + "us": 3043.3, "level": "full" } }, @@ -11453,87 +12269,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1661.9, + "us": 1668.0, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1661.9, + "us": 1668.0, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1670.3, + "us": 1661.0, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1670.3, + "us": 1661.0, "level": "full" }, "variants": { - "parse + serialize": { - "us": 1661.9, + "parser (reused) + serialize": { + "us": 1661.0, "level": "full" }, - "parser (reused) + serialize": { - "us": 1670.3, + "parse + serialize": { + "us": 1668.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer (raw numbers)", - "us": 2435.3, + "variant": "SAX to Writer (string stream)", + "us": 1438.5, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1713.2, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 1420.4, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2114.2, + "us": 2079.8, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 1957.8, + "us": 1952.6, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 1420.4, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 1438.5, + "level": "full" + }, "SAX to Writer (no encoding check)": { - "us": 1713.2, + "us": 1692.4, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1754.2, - "level": "no UTF-8" - }, - "Document + Writer (reused allocator) (no encoding check)": { - "us": 1957.8, + "us": 1752.8, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2006.6, + "us": 1929.4, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 1952.6, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 2114.2, - "level": "full" - }, - "SAX to Writer (raw numbers)": { - "us": 2435.3, + "us": 2079.8, "level": "full" }, "SAX to Writer": { - "us": 2504.7, + "us": 2365.1, + "level": "full" + }, + "SAX to Writer (raw numbers)": { + "us": 2441.8, "level": "full" }, "Document + Writer": { - "us": 2755.6, + "us": 2681.5, "level": "full" } } @@ -11603,35 +12427,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 741.3, + "us": 746.3, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 741.3, + "us": 746.3, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 762.9, + "us": 760.4, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 762.9, + "us": 760.4, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 741.3, - "level": "full" - }, - "parse + dump": { - "us": 762.8, + "us": 746.3, "level": "full" }, "read + dump (reused)": { - "us": 762.9, + "us": 760.4, + "level": "full" + }, + "parse + dump": { + "us": 760.8, + "level": "full" + }, + "parse_copy + dump": { + "us": 795.0, "level": "full" } } @@ -11639,19 +12467,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 5322.5, + "us": 5370.2, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 5322.5, + "us": 5370.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 5322.5, + "us": 5370.2, "level": "full" } } @@ -11659,39 +12487,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 776.2, + "us": 773.7, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 776.2, + "us": 773.7, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 813.9, + "us": 811.6, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 813.9, + "us": 811.6, "level": "full" }, "variants": { - "read (raw numbers) + write": { - "us": 776.2, + "insitu (copy untimed) + write": { + "us": 772.8, "level": "full" }, - "read + write": { - "us": 802.3, + "read (raw numbers) + write": { + "us": 773.7, "level": "full" }, "insitu (copy) + write": { - "us": 813.8, + "us": 807.0, "level": "full" }, "read + write (reused allocator)": { - "us": 813.9, + "us": 811.6, + "level": "full" + }, + "read + write": { + "us": 818.0, "level": "full" } } @@ -11699,7 +12531,7 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1140.8, + "us": 1160.0, "level": "full" }, "best_any": { @@ -11709,12 +12541,12 @@ }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 1137.3, + "us": 1163.9, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 1137.3, + "us": 1163.9, "level": "full" }, "variants": { @@ -11722,12 +12554,12 @@ "us": 69.3, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 1137.3, + "DOM + to_string": { + "us": 1160.0, "level": "full" }, - "DOM + to_string": { - "us": 1140.8, + "DOM (reused) + to_string": { + "us": 1163.9, "level": "full" } } @@ -11736,14 +12568,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1096.4, + "us": 1097.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1096.4, + "us": 1097.8, "level": "no UTF-8" } } @@ -11751,27 +12583,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 5149.8, + "us": 5181.4, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 646.2, + "us": 652.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 646.2, + "us": 652.4, "level": "partial" }, "generic": { - "us": 5092.3, + "us": 5048.5, "level": "partial" }, "generic (strict)": { - "us": 5149.8, + "us": 5181.4, "level": "full" } }, @@ -11783,87 +12615,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2211.5, + "us": 2193.8, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2211.5, + "us": 2193.8, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 2216.8, + "us": 2174.7, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 2216.8, + "us": 2174.7, "level": "full" }, "variants": { - "parse + serialize": { - "us": 2211.5, + "parser (reused) + serialize": { + "us": 2174.7, "level": "full" }, - "parser (reused) + serialize": { - "us": 2216.8, + "parse + serialize": { + "us": 2193.8, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 2604.9, + "variant": "SAX to Writer (string stream)", + "us": 1849.8, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 2170.7, - "level": "no UTF-8" + "variant": "SAX to Writer (string stream)", + "us": 1849.8, + "level": "full" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2604.1, + "us": 2614.0, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator)", - "us": 2604.1, + "us": 2614.0, "level": "full" }, "variants": { + "SAX to Writer (string stream)": { + "us": 1849.8, + "level": "full" + }, + "SAX to Writer (string stream) (no encoding check)": { + "us": 1880.8, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 2170.7, + "us": 2174.6, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2454.5, + "us": 2451.7, "level": "no UTF-8" }, + "SAX to Writer": { + "us": 2529.6, + "level": "full" + }, "Document + Writer (no encoding check)": { - "us": 2590.1, + "us": 2586.4, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 2604.1, - "level": "full" - }, - "SAX to Writer": { - "us": 2604.9, + "us": 2614.0, "level": "full" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 2665.9, + "us": 2662.9, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 2810.3, + "us": 2886.8, "level": "full" }, "Document + Writer": { - "us": 3063.0, + "us": 3109.2, "level": "full" } } @@ -11935,23 +12775,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 138.9, + "us": 140.4, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 138.9, + "us": 140.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 138.9, + "us": 140.4, "level": "n/a" }, "dump": { - "us": 155.1, + "us": 155.7, "level": "n/a" } } @@ -11959,19 +12799,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 424.3, + "us": 443.8, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 424.3, + "us": 443.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 424.3, + "us": 443.8, "level": "n/a" } } @@ -11979,19 +12819,19 @@ "yyjson": { "best": { "variant": "write", - "us": 187.2, + "us": 215.3, "level": "n/a" }, "best_any": { "variant": "write", - "us": 187.2, + "us": 215.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 187.2, + "us": 215.3, "level": "n/a" } } @@ -11999,19 +12839,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 463.4, + "us": 361.3, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 463.4, + "us": 361.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 463.4, + "us": 361.3, "level": "n/a" } } @@ -12019,19 +12859,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 636.9, + "us": 678.3, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 636.9, + "us": 678.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 636.9, + "us": 678.3, "level": "n/a" } } @@ -12039,19 +12879,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 250.3, + "us": 248.6, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 250.3, + "us": 248.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 250.3, + "us": 248.6, "level": "n/a" } } @@ -12059,23 +12899,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 380.4, + "us": 381.2, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 380.4, + "us": 381.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 380.4, + "us": 381.2, "level": "n/a" }, "generic (strict)": { - "us": 422.4, + "us": 450.7, "level": "n/a" } }, @@ -12087,19 +12927,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 454.6, + "us": 469.0, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 454.6, + "us": 469.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 454.6, + "us": 469.0, "level": "n/a" } } @@ -12169,23 +13009,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 231.8, + "us": 230.0, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 231.8, + "us": 230.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 231.8, + "us": 230.0, "level": "n/a" }, "dump": { - "us": 251.4, + "us": 250.9, "level": "n/a" } } @@ -12193,19 +13033,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 656.5, + "us": 639.6, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 656.5, + "us": 639.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 656.5, + "us": 639.6, "level": "n/a" } } @@ -12213,19 +13053,19 @@ "yyjson": { "best": { "variant": "write", - "us": 333.4, + "us": 318.9, "level": "n/a" }, "best_any": { "variant": "write", - "us": 333.4, + "us": 318.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 333.4, + "us": 318.9, "level": "n/a" } } @@ -12233,19 +13073,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 586.0, + "us": 613.9, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 586.0, + "us": 613.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 586.0, + "us": 613.9, "level": "n/a" } } @@ -12253,19 +13093,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 983.1, + "us": 979.3, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 983.1, + "us": 979.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 983.1, + "us": 979.3, "level": "n/a" } } @@ -12273,19 +13113,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 512.1, + "us": 509.4, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 512.1, + "us": 509.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 512.1, + "us": 509.4, "level": "n/a" } } @@ -12293,23 +13133,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 733.2, + "us": 730.3, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 733.2, + "us": 730.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 733.2, + "us": 730.3, "level": "n/a" }, "generic (strict)": { - "us": 780.1, + "us": 738.7, "level": "n/a" } }, @@ -12321,19 +13161,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 837.1, + "us": 829.8, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 837.1, + "us": 829.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 837.1, + "us": 829.8, "level": "n/a" } } @@ -12403,23 +13243,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 834.6, + "us": 823.3, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 834.6, + "us": 823.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 834.6, + "us": 823.3, "level": "n/a" }, "dump": { - "us": 3843.5, + "us": 3842.2, "level": "n/a" } } @@ -12427,19 +13267,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 3869.7, + "us": 4088.6, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 3869.7, + "us": 4088.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 3869.7, + "us": 4088.6, "level": "n/a" } } @@ -12447,19 +13287,19 @@ "yyjson": { "best": { "variant": "write", - "us": 3343.2, + "us": 3359.8, "level": "n/a" }, "best_any": { "variant": "write", - "us": 3343.2, + "us": 3359.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 3343.2, + "us": 3359.8, "level": "n/a" } } @@ -12467,19 +13307,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 5626.1, + "us": 5609.3, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 5626.1, + "us": 5609.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 5626.1, + "us": 5609.3, "level": "n/a" } } @@ -12487,19 +13327,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 8995.8, + "us": 9095.1, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 8995.8, + "us": 9095.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 8995.8, + "us": 9095.1, "level": "n/a" } } @@ -12507,19 +13347,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 5097.8, + "us": 5074.3, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 5097.8, + "us": 5074.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 5097.8, + "us": 5074.3, "level": "n/a" } } @@ -12527,23 +13367,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 4017.0, + "us": 4070.6, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 4017.0, + "us": 4070.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 4017.0, + "us": 4070.6, "level": "n/a" }, "generic (strict)": { - "us": 4018.0, + "us": 4085.7, "level": "n/a" } }, @@ -12555,19 +13395,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 5472.0, + "us": 5658.6, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 5472.0, + "us": 5658.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 5472.0, + "us": 5658.6, "level": "n/a" } } @@ -12637,23 +13477,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 69129.2, + "us": 65375.7, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 69129.2, + "us": 65375.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 69129.2, + "us": 65375.7, "level": "n/a" }, "dump": { - "us": 70826.6, + "us": 67769.0, "level": "n/a" } } @@ -12661,19 +13501,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 117711.6, + "us": 117316.2, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 117711.6, + "us": 117316.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 117711.6, + "us": 117316.2, "level": "n/a" } } @@ -12681,19 +13521,19 @@ "yyjson": { "best": { "variant": "write", - "us": 68342.1, + "us": 66669.1, "level": "n/a" }, "best_any": { "variant": "write", - "us": 68342.1, + "us": 66669.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 68342.1, + "us": 66669.1, "level": "n/a" } } @@ -12701,19 +13541,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 185383.7, + "us": 158492.1, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 185383.7, + "us": 158492.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 185383.7, + "us": 158492.1, "level": "n/a" } } @@ -12721,19 +13561,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 130098.9, + "us": 131408.2, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 130098.9, + "us": 131408.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 130098.9, + "us": 131408.2, "level": "n/a" } } @@ -12741,19 +13581,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 69815.0, + "us": 69916.0, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 69815.0, + "us": 69916.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 69815.0, + "us": 69916.0, "level": "n/a" } } @@ -12761,23 +13601,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 133545.1, + "us": 131946.3, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 133545.1, + "us": 131946.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 133545.1, + "us": 131946.3, "level": "n/a" }, "generic (strict)": { - "us": 146897.6, + "us": 144261.7, "level": "n/a" } }, @@ -12789,19 +13629,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 144557.4, + "us": 144173.9, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 144557.4, + "us": 144173.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 144557.4, + "us": 144173.9, "level": "n/a" } } @@ -12935,19 +13775,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 2.8, + "us": 1.8, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 2.8, + "us": 1.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 2.8, + "us": 1.8, "level": "n/a" } } @@ -13023,19 +13863,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 2.3, + "us": 2.4, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 2.3, + "us": 2.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 2.3, + "us": 2.4, "level": "n/a" } } @@ -13105,23 +13945,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 134.7, + "us": 133.7, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 134.7, + "us": 133.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 134.7, + "us": 133.7, "level": "n/a" }, "dump": { - "us": 151.4, + "us": 150.4, "level": "n/a" } } @@ -13129,19 +13969,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 431.9, + "us": 429.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 431.9, + "us": 429.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 431.9, + "us": 429.0, "level": "n/a" } } @@ -13149,19 +13989,19 @@ "yyjson": { "best": { "variant": "write", - "us": 203.2, + "us": 201.3, "level": "n/a" }, "best_any": { "variant": "write", - "us": 203.2, + "us": 201.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 203.2, + "us": 201.3, "level": "n/a" } } @@ -13169,19 +14009,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 466.2, + "us": 349.4, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 466.2, + "us": 349.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 466.2, + "us": 349.4, "level": "n/a" } } @@ -13189,19 +14029,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 625.0, + "us": 620.4, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 625.0, + "us": 620.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 625.0, + "us": 620.4, "level": "n/a" } } @@ -13209,19 +14049,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 232.1, + "us": 228.6, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 232.1, + "us": 228.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 232.1, + "us": 228.6, "level": "n/a" } } @@ -13229,23 +14069,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 381.1, + "us": 377.3, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 381.1, + "us": 377.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 381.1, + "us": 377.3, "level": "n/a" }, "generic (strict)": { - "us": 422.6, + "us": 415.3, "level": "n/a" } }, @@ -13257,19 +14097,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 455.9, + "us": 456.4, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 455.9, + "us": 456.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 455.9, + "us": 456.4, "level": "n/a" } } @@ -13339,23 +14179,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 225.9, + "us": 240.1, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 225.9, + "us": 240.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 225.9, + "us": 240.1, "level": "n/a" }, "dump": { - "us": 247.7, + "us": 271.3, "level": "n/a" } } @@ -13363,19 +14203,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 624.1, + "us": 675.9, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 624.1, + "us": 675.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 624.1, + "us": 675.9, "level": "n/a" } } @@ -13383,19 +14223,19 @@ "yyjson": { "best": { "variant": "write", - "us": 316.3, + "us": 347.7, "level": "n/a" }, "best_any": { "variant": "write", - "us": 316.3, + "us": 347.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 316.3, + "us": 347.7, "level": "n/a" } } @@ -13403,19 +14243,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 588.6, + "us": 648.5, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 588.6, + "us": 648.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 588.6, + "us": 648.5, "level": "n/a" } } @@ -13423,19 +14263,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 977.0, + "us": 1057.5, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 977.0, + "us": 1057.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 977.0, + "us": 1057.5, "level": "n/a" } } @@ -13443,43 +14283,43 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 499.3, + "us": 532.0, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 499.3, + "us": 532.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 499.3, + "us": 532.0, "level": "n/a" } } }, "Glaze": { "best": { - "variant": "generic", - "us": 730.0, + "variant": "generic (strict)", + "us": 784.1, "level": "n/a" }, "best_any": { - "variant": "generic", - "us": 730.0, + "variant": "generic (strict)", + "us": 784.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic": { - "us": 730.0, + "generic (strict)": { + "us": 784.1, "level": "n/a" }, - "generic (strict)": { - "us": 752.5, + "generic": { + "us": 796.7, "level": "n/a" } }, @@ -13491,19 +14331,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 835.3, + "us": 907.4, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 835.3, + "us": 907.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 835.3, + "us": 907.4, "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 4fc555f51..454c67200 100644 --- a/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc13.json +++ b/docs/mkdocs/scripts/figures/data/perf_usecases_x86-gcc13.json @@ -4,35 +4,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 269.3, + "us": 271.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 269.3, + "us": 271.0, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 317.6, + "us": 313.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 317.6, + "us": 313.2, "level": "full" }, "variants": { "accept": { - "us": 269.3, + "us": 271.0, "level": "full" }, "read (reused)": { - "us": 317.6, + "us": 313.2, "level": "full" }, "parse": { - "us": 323.0, + "us": 319.2, "level": "full" } } @@ -40,23 +40,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 697.9, + "us": 677.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 697.9, + "us": 677.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 697.9, + "us": 677.0, "level": "full" }, "parse": { - "us": 3374.5, + "us": 3472.5, "level": "full" } } @@ -64,39 +64,43 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 392.1, + "us": 390.8, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 392.1, + "us": 390.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 402.1, + "us": 396.6, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 402.1, + "us": 396.6, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 347.9, + "level": "full" + }, "insitu (copy)": { - "us": 392.1, + "us": 390.8, "level": "full" }, "read (raw numbers)": { - "us": 394.0, + "us": 394.2, "level": "full" }, "read": { - "us": 394.5, + "us": 395.0, "level": "full" }, "read (reused allocator)": { - "us": 402.1, + "us": 396.6, "level": "full" } } @@ -104,31 +108,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 310.6, + "us": 311.2, "level": "full" }, "best_any": { "variant": "DOM", - "us": 310.6, + "us": 311.2, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 313.6, + "us": 312.2, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 313.6, + "us": 312.2, "level": "full" }, "variants": { "DOM": { - "us": 310.6, + "us": 311.2, "level": "full" }, "DOM (reused)": { - "us": 313.6, + "us": 312.2, "level": "full" } } @@ -137,14 +141,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 416.0, + "us": 408.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 416.0, + "us": 408.4, "level": "no UTF-8" } } @@ -152,35 +156,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 592.3, + "us": 590.1, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 592.3, + "us": 590.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 592.3, - "level": "full" - }, - "generic (double, strict)": { - "us": 2320.2, + "us": 590.1, "level": "full" }, "generic (double)": { - "us": 2343.6, + "us": 2313.6, "level": "partial" }, + "generic (double, strict)": { + "us": 2328.4, + "level": "full" + }, "generic": { - "us": 3005.0, + "us": 2968.4, "level": "partial" }, "generic (strict)": { - "us": 3072.4, + "us": 2986.2, "level": "full" } } @@ -188,47 +192,47 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 722.6, + "us": 709.8, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 722.6, + "us": 709.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 727.2, + "us": 721.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 727.2, + "us": 721.3, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 722.6, + "us": 709.8, "level": "full" }, "SAX (reused)": { - "us": 727.2, + "us": 721.3, "level": "full" }, "SAX": { - "us": 733.1, + "us": 721.9, "level": "full" }, "parse (numbers: none)": { - "us": 1421.2, - "level": "full" - }, - "parse": { - "us": 1424.3, + "us": 1416.7, "level": "full" }, "parser (reused)": { - "us": 1469.0, + "us": 1426.9, + "level": "full" + }, + "parse": { + "us": 1436.7, "level": "full" } } @@ -236,63 +240,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1694.2, + "us": 1594.8, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1125.6, + "us": 1116.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1634.6, + "us": 1569.9, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1516.7, + "us": 1526.8, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1082.1, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1125.6, + "us": 1116.1, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1195.8, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1220.0, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 1354.2, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1371.6, + "us": 1397.4, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 1415.7, - "level": "no UTF-8" - }, - "Document (reused allocator) (no encoding check)": { - "us": 1516.7, + "us": 1428.9, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1585.1, + "us": 1495.6, "level": "no UTF-8" }, + "Document (reused allocator) (no encoding check)": { + "us": 1526.8, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1551.7, + "level": "full" + }, "Document (reused allocator)": { - "us": 1634.6, + "us": 1569.9, "level": "full" }, "insitu (copy)": { - "us": 1694.2, + "us": 1594.8, + "level": "full" + }, + "SAX (string stream)": { + "us": 2184.6, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 2236.5, + "level": "full" + }, + "SAX (default precision)": { + "us": 2253.6, "level": "full" }, "SAX": { - "us": 2270.2, + "us": 2307.9, "level": "full" }, "SAX (raw numbers)": { - "us": 2342.2, + "us": 2354.1, "level": "full" }, "Document": { - "us": 2477.8, + "us": 2387.4, "level": "full" } } @@ -390,35 +426,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 576.3, + "us": 608.8, "level": "full" }, "best_any": { "variant": "accept", - "us": 576.3, + "us": 608.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 733.0, + "us": 758.1, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 733.0, + "us": 758.1, "level": "full" }, "variants": { "accept": { - "us": 576.3, - "level": "full" - }, - "parse": { - "us": 730.1, + "us": 608.8, "level": "full" }, "read (reused)": { - "us": 733.0, + "us": 758.1, + "level": "full" + }, + "parse": { + "us": 805.9, "level": "full" } } @@ -426,23 +462,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 1299.1, + "us": 1432.8, "level": "full" }, "best_any": { "variant": "accept", - "us": 1299.1, + "us": 1432.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 1299.1, + "us": 1432.8, "level": "full" }, "parse": { - "us": 5094.5, + "us": 5630.2, "level": "full" } } @@ -450,39 +486,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 990.8, + "us": 997.4, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 990.8, + "us": 997.4, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 1001.8, + "us": 1139.7, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 1001.8, + "us": 1139.7, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 878.3, + "level": "full" + }, "read (raw numbers)": { - "us": 990.8, + "us": 997.4, "level": "full" }, "read": { - "us": 992.8, + "us": 1023.2, "level": "full" }, "insitu (copy)": { - "us": 992.9, + "us": 1042.2, "level": "full" }, "read (reused allocator)": { - "us": 1001.8, + "us": 1139.7, "level": "full" } } @@ -490,31 +530,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 749.5, + "us": 780.3, "level": "full" }, "best_any": { "variant": "DOM", - "us": 749.5, + "us": 780.3, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 754.5, + "us": 788.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 754.5, + "us": 788.4, "level": "full" }, "variants": { "DOM": { - "us": 749.5, + "us": 780.3, "level": "full" }, "DOM (reused)": { - "us": 754.5, + "us": 788.4, "level": "full" } } @@ -523,14 +563,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1034.1, + "us": 1027.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1034.1, + "us": 1027.8, "level": "no UTF-8" } } @@ -538,147 +578,179 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1417.4, + "us": 1545.1, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1417.4, + "us": 1545.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 1417.4, + "us": 1545.1, "level": "full" }, "generic (double)": { - "us": 3888.9, + "us": 4117.9, "level": "partial" }, "generic (double, strict)": { - "us": 3913.6, + "us": 4239.7, + "level": "full" + }, + "generic (strict)": { + "us": 6202.0, "level": "full" }, "generic": { - "us": 5456.4, + "us": 6281.3, "level": "partial" - }, - "generic (strict)": { - "us": 5559.1, - "level": "full" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 933.0, + "us": 969.1, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 933.0, + "us": 969.1, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 990.6, + "us": 989.0, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 990.6, + "us": 989.0, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 933.0, - "level": "full" - }, - "SAX": { - "us": 989.6, + "us": 969.1, "level": "full" }, "SAX (reused)": { - "us": 990.6, + "us": 989.0, + "level": "full" + }, + "SAX": { + "us": 1016.1, "level": "full" }, "parse (numbers: none)": { - "us": 1811.4, + "us": 1867.4, "level": "full" }, "parser (reused)": { - "us": 1912.7, + "us": 1979.7, "level": "full" }, "parse": { - "us": 1951.8, + "us": 1987.7, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "insitu (copy)", - "us": 2221.5, + "variant": "SAX (string stream, default precision)", + "us": 2214.5, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1695.3, + "variant": "SAX (default precision) (no encoding check)", + "us": 1570.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1997.5, + "us": 1994.7, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 1933.4, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 1994.7, + "level": "full" }, "variants": { + "SAX (default precision) (no encoding check)": { + "us": 1570.5, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 1695.3, + "us": 1734.1, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 1917.7, + "SAX (string stream, default precision) (no encoding check)": { + "us": 1835.5, "level": "no UTF-8" }, - "SAX (raw numbers) (no encoding check)": { - "us": 1922.1, - "level": "no UTF-8" - }, - "Document (reused allocator) (no encoding check)": { - "us": 1933.4, - "level": "no UTF-8" - }, - "insitu (copy) (no encoding check)": { - "us": 1940.3, + "insitu (copy untimed) (no encoding check)": { + "us": 1991.2, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1997.5, + "us": 1994.7, "level": "full" }, - "insitu (copy)": { - "us": 2221.5, + "SAX (raw numbers) (no encoding check)": { + "us": 2008.0, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 2044.7, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 2045.1, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 2062.6, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 2070.9, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 2209.8, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 2214.5, + "level": "full" + }, + "SAX (default precision)": { + "us": 2242.6, "level": "full" }, "SAX": { - "us": 2242.8, + "us": 2338.1, + "level": "full" + }, + "insitu (copy)": { + "us": 2384.0, + "level": "full" + }, + "SAX (string stream)": { + "us": 2620.9, "level": "full" }, "SAX (raw numbers)": { - "us": 2517.2, + "us": 2692.4, "level": "full" }, "Document": { - "us": 2610.6, + "us": 2811.6, "level": "full" } } @@ -776,35 +848,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 984.0, + "us": 1011.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 984.0, + "us": 1011.0, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 1366.0, + "us": 1485.7, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1366.0, + "us": 1485.7, "level": "full" }, "variants": { "accept": { - "us": 984.0, + "us": 1011.0, "level": "full" }, "parse": { - "us": 1354.5, + "us": 1482.6, "level": "full" }, "read (reused)": { - "us": 1366.0, + "us": 1485.7, "level": "full" } } @@ -812,23 +884,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 4369.8, + "us": 4584.1, "level": "full" }, "best_any": { "variant": "accept", - "us": 4369.8, + "us": 4584.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 4369.8, + "us": 4584.1, "level": "full" }, "parse": { - "us": 11905.3, + "us": 11889.6, "level": "full" } } @@ -836,39 +908,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 2208.6, + "us": 2255.5, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 2208.6, + "us": 2255.5, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 5377.2, + "us": 5646.5, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 5377.2, + "us": 5646.5, "level": "full" }, "variants": { "read (raw numbers)": { - "us": 2208.6, - "level": "full" - }, - "read (reused allocator)": { - "us": 5377.2, - "level": "full" - }, - "read": { - "us": 5385.3, + "us": 2255.5, "level": "full" }, "insitu (copy)": { - "us": 5447.5, + "us": 5502.1, + "level": "full" + }, + "read": { + "us": 5527.5, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 5629.1, + "level": "full" + }, + "read (reused allocator)": { + "us": 5646.5, "level": "full" } } @@ -876,31 +952,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3110.9, + "us": 3350.8, "level": "full" }, "best_any": { "variant": "DOM", - "us": 3110.9, + "us": 3350.8, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 3154.7, + "us": 3313.9, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 3154.7, + "us": 3313.9, "level": "full" }, "variants": { - "DOM": { - "us": 3110.9, + "DOM (reused)": { + "us": 3313.9, "level": "full" }, - "DOM (reused)": { - "us": 3154.7, + "DOM": { + "us": 3350.8, "level": "full" } } @@ -909,14 +985,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3562.9, + "us": 3622.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3562.9, + "us": 3622.5, "level": "no UTF-8" } } @@ -924,35 +1000,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 1867.7, + "us": 1979.8, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 1867.7, + "us": 1979.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 1867.7, + "us": 1979.8, "level": "full" }, "generic (double)": { - "us": 9925.0, + "us": 10134.5, "level": "partial" }, "generic (double, strict)": { - "us": 9956.5, + "us": 10396.5, "level": "full" }, "generic": { - "us": 18538.5, + "us": 19520.5, "level": "partial" }, "generic (strict)": { - "us": 18589.6, + "us": 19829.4, "level": "full" } } @@ -960,112 +1036,144 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 1673.7, + "us": 1717.9, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 1673.7, + "us": 1717.9, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 5655.4, + "us": 5508.4, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 5655.4, + "us": 5508.4, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 1673.7, + "us": 1717.9, "level": "full" }, "parse (numbers: none)": { - "us": 2793.6, - "level": "full" - }, - "SAX (reused)": { - "us": 5655.4, + "us": 2958.7, "level": "full" }, "SAX": { - "us": 5757.3, + "us": 5462.1, + "level": "full" + }, + "SAX (reused)": { + "us": 5508.4, "level": "full" }, "parser (reused)": { - "us": 7287.5, + "us": 7315.4, "level": "full" }, "parse": { - "us": 7363.6, + "us": 7324.4, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX (raw numbers)", - "us": 10357.4, + "variant": "SAX (string stream, default precision)", + "us": 4104.1, "level": "full" }, "best_any": { - "variant": "SAX (raw numbers)", - "us": 10357.4, + "variant": "SAX (string stream, default precision)", + "us": 4104.1, "level": "full" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 11513.6, + "us": 12066.1, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator)", - "us": 11513.6, - "level": "full" + "variant": "Document (reused allocator) (no encoding check)", + "us": 11773.4, + "level": "no UTF-8" }, "variants": { - "SAX (raw numbers)": { - "us": 10357.4, + "SAX (string stream, default precision)": { + "us": 4104.1, "level": "full" }, + "SAX (default precision)": { + "us": 4222.7, + "level": "full" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 4363.6, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 4755.9, + "level": "no UTF-8" + }, "SAX (raw numbers) (no encoding check)": { - "us": 10539.5, + "us": 10579.3, + "level": "no UTF-8" + }, + "SAX (raw numbers)": { + "us": 10969.3, + "level": "full" + }, + "SAX (string stream) (no encoding check)": { + "us": 11047.5, "level": "no UTF-8" }, "SAX": { - "us": 10801.1, + "us": 11206.5, + "level": "full" + }, + "SAX (string stream)": { + "us": 11404.7, "level": "full" }, "SAX (no encoding check)": { - "us": 10935.5, + "us": 11434.2, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 11029.1, + "insitu (copy untimed)": { + "us": 11461.5, + "level": "full" + }, + "Document": { + "us": 11730.2, + "level": "full" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 11766.2, + "level": "no UTF-8" + }, + "Document (reused allocator) (no encoding check)": { + "us": 11773.4, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 11817.2, "level": "no UTF-8" }, "insitu (copy)": { - "us": 11342.1, + "us": 11901.4, "level": "full" }, - "insitu (copy) (no encoding check)": { - "us": 11415.4, + "Document (no encoding check)": { + "us": 12056.3, "level": "no UTF-8" }, - "Document": { - "us": 11492.5, - "level": "full" - }, "Document (reused allocator)": { - "us": 11513.6, + "us": 12066.1, "level": "full" - }, - "Document (reused allocator) (no encoding check)": { - "us": 11635.9, - "level": "no UTF-8" } } }, @@ -1162,35 +1270,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 34383.4, + "us": 34722.1, "level": "full" }, "best_any": { "variant": "accept", - "us": 34383.4, + "us": 34722.1, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 41667.9, + "us": 42164.4, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 41667.9, + "us": 42164.4, "level": "full" }, "variants": { "accept": { - "us": 34383.4, + "us": 34722.1, "level": "full" }, "read (reused)": { - "us": 41667.9, + "us": 42164.4, "level": "full" }, "parse": { - "us": 76548.1, + "us": 76936.0, "level": "full" } } @@ -1198,63 +1306,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 72855.6, + "us": 73561.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 72855.6, + "us": 73561.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 72855.6, + "us": 73561.0, "level": "full" }, "parse": { - "us": 379397.7, + "us": 382491.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "read (raw numbers)", - "us": 125376.4, + "variant": "insitu (copy)", + "us": 128490.1, "level": "full" }, "best_any": { - "variant": "read (raw numbers)", - "us": 125376.4, + "variant": "insitu (copy)", + "us": 128490.1, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 61532.6, + "us": 65056.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 61532.6, + "us": 65056.4, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 61532.6, + "us": 65056.4, "level": "full" }, - "read (raw numbers)": { - "us": 125376.4, - "level": "full" - }, - "read": { - "us": 130166.5, + "insitu (copy untimed)": { + "us": 90958.6, "level": "full" }, "insitu (copy)": { - "us": 132429.2, + "us": 128490.1, + "level": "full" + }, + "read (raw numbers)": { + "us": 128990.8, + "level": "full" + }, + "read": { + "us": 131323.7, "level": "full" } } @@ -1262,31 +1374,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 114706.8, + "us": 116703.6, "level": "full" }, "best_any": { "variant": "DOM", - "us": 114706.8, + "us": 116703.6, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 53611.1, + "us": 48271.1, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 53611.1, + "us": 48271.1, "level": "full" }, "variants": { "DOM (reused)": { - "us": 53611.1, + "us": 48271.1, "level": "full" }, "DOM": { - "us": 114706.8, + "us": 116703.6, "level": "full" } } @@ -1295,14 +1407,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 95395.5, + "us": 96080.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 95395.5, + "us": 96080.3, "level": "no UTF-8" } } @@ -1310,83 +1422,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 72509.8, + "us": 76009.4, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 72509.8, + "us": 76009.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 72509.8, + "us": 76009.4, "level": "full" }, "generic (double, strict)": { - "us": 217688.9, + "us": 231870.6, "level": "full" }, "generic (double)": { - "us": 219204.9, - "level": "partial" - }, - "generic": { - "us": 315095.7, + "us": 233240.2, "level": "partial" }, "generic (strict)": { - "us": 316908.0, + "us": 329832.4, "level": "full" + }, + "generic": { + "us": 331531.4, + "level": "partial" } } }, "Boost.JSON": { "best": { - "variant": "SAX", - "us": 61381.8, + "variant": "SAX (numbers: none)", + "us": 61476.5, "level": "full" }, "best_any": { - "variant": "SAX", - "us": 61381.8, + "variant": "SAX (numbers: none)", + "us": 61476.5, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 61262.2, + "us": 62717.1, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 61262.2, + "us": 62717.1, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 61262.2, + "SAX (numbers: none)": { + "us": 61476.5, "level": "full" }, "SAX": { - "us": 61381.8, + "us": 61948.9, "level": "full" }, - "SAX (numbers: none)": { - "us": 61512.4, + "SAX (reused)": { + "us": 62717.1, "level": "full" }, "parser (reused)": { - "us": 133386.5, - "level": "full" - }, - "parse (numbers: none)": { - "us": 184702.7, + "us": 134695.0, "level": "full" }, "parse": { - "us": 186837.5, + "us": 188572.0, + "level": "full" + }, + "parse (numbers: none)": { + "us": 190538.8, "level": "full" } } @@ -1394,63 +1506,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 207460.4, + "us": 214648.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 153062.3, + "variant": "SAX (string stream, default precision) (no encoding check)", + "us": 130900.6, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 187642.7, + "us": 191448.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 182918.1, + "us": 186590.7, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 153062.3, + "insitu (copy untimed) (no encoding check)": { + "us": 110856.4, "level": "no UTF-8" }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 130900.6, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 134485.1, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 154657.3, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 168746.8, + "level": "full" + }, "SAX (raw numbers) (no encoding check)": { - "us": 166512.6, + "us": 171293.7, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 171936.5, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 168597.9, + "us": 177498.7, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 182918.1, + "us": 186590.7, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 186131.3, + "us": 188878.8, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 187642.7, + "us": 191448.2, "level": "full" }, "insitu (copy)": { - "us": 207460.4, + "us": 214648.7, + "level": "full" + }, + "SAX (string stream)": { + "us": 250121.1, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 251293.4, + "level": "full" + }, + "SAX (default precision)": { + "us": 289135.3, "level": "full" }, "SAX": { - "us": 283751.9, + "us": 290081.1, "level": "full" }, "SAX (raw numbers)": { - "us": 286112.7, + "us": 301799.9, "level": "full" }, "Document": { - "us": 298600.9, + "us": 305476.3, "level": "full" } } @@ -1584,23 +1728,23 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 3.1, + "us": 3.3, "level": "full" }, "best_any": { "variant": "accept", - "us": 3.1, + "us": 3.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 3.1, + "us": 3.3, "level": "full" }, "parse": { - "us": 17.7, + "us": 18.6, "level": "full" } } @@ -1608,12 +1752,12 @@ "yyjson": { "best": { "variant": "read", - "us": 1.7, + "us": 1.6, "level": "full" }, "best_any": { "variant": "read", - "us": 1.7, + "us": 1.6, "level": "full" }, "best_reused": { @@ -1627,12 +1771,16 @@ "level": "full" }, "variants": { - "read (reused allocator)": { + "read": { "us": 1.6, "level": "full" }, - "read": { - "us": 1.7, + "insitu (copy untimed)": { + "us": 1.6, + "level": "full" + }, + "read (reused allocator)": { + "us": 1.6, "level": "full" }, "insitu (copy)": { @@ -1711,20 +1859,20 @@ "us": 2.3, "level": "full" }, - "generic (double)": { - "us": 8.2, - "level": "partial" - }, "generic (double, strict)": { "us": 8.4, "level": "full" }, + "generic (double)": { + "us": 8.6, + "level": "partial" + }, "generic": { - "us": 12.2, + "us": 13.1, "level": "partial" }, "generic (strict)": { - "us": 12.6, + "us": 13.2, "level": "full" } } @@ -1763,16 +1911,16 @@ "us": 3.2, "level": "full" }, - "parser (reused)": { - "us": 6.4, + "parse": { + "us": 6.6, "level": "full" }, "parse (numbers: none)": { "us": 6.6, "level": "full" }, - "parse": { - "us": 6.7, + "parser (reused)": { + "us": 6.6, "level": "full" } } @@ -1785,58 +1933,90 @@ }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 3.6, + "us": 3.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 8.0, + "us": 8.3, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 7.5, + "us": 7.8, "level": "no UTF-8" }, "variants": { "insitu (copy) (no encoding check)": { - "us": 3.6, + "us": 3.7, "level": "no UTF-8" }, + "insitu (copy untimed) (no encoding check)": { + "us": 3.8, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 4.2, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 4.4, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 6.9, + "level": "full" + }, "insitu (copy)": { "us": 7.0, "level": "full" }, + "SAX (default precision) (no encoding check)": { + "us": 7.2, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 7.1, + "us": 7.4, "level": "no UTF-8" }, "SAX (raw numbers) (no encoding check)": { - "us": 7.3, + "us": 7.6, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 7.5, + "us": 7.8, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 8.0, + "us": 8.3, "level": "full" }, "Document (no encoding check)": { - "us": 8.1, + "us": 8.4, "level": "no UTF-8" }, + "SAX (string stream)": { + "us": 10.5, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 10.8, + "level": "full" + }, "SAX": { "us": 12.2, "level": "full" }, + "SAX (default precision)": { + "us": 12.4, + "level": "full" + }, "SAX (raw numbers)": { - "us": 12.2, + "us": 12.4, "level": "full" }, "Document": { - "us": 12.9, + "us": 13.3, "level": "full" } } @@ -1934,35 +2114,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 222.3, + "us": 219.0, "level": "full" }, "best_any": { "variant": "accept", - "us": 222.3, + "us": 219.0, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 261.7, + "us": 260.5, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 261.7, + "us": 260.5, "level": "full" }, "variants": { "accept": { - "us": 222.3, + "us": 219.0, "level": "full" }, "read (reused)": { - "us": 261.7, + "us": 260.5, "level": "full" }, "parse": { - "us": 267.1, + "us": 268.5, "level": "full" } } @@ -1970,63 +2150,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 546.9, + "us": 551.1, "level": "full" }, "best_any": { "variant": "accept", - "us": 546.9, + "us": 551.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 546.9, + "us": 551.1, "level": "full" }, "parse": { - "us": 3232.6, + "us": 3133.4, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 335.3, + "variant": "read", + "us": 331.1, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 335.3, + "variant": "read", + "us": 331.1, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 336.1, + "us": 330.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 336.1, + "us": 330.1, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 335.3, - "level": "full" - }, - "read": { - "us": 335.6, + "insitu (copy untimed)": { + "us": 296.8, "level": "full" }, "read (reused allocator)": { - "us": 336.1, + "us": 330.1, + "level": "full" + }, + "read": { + "us": 331.1, + "level": "full" + }, + "insitu (copy)": { + "us": 334.0, "level": "full" }, "read (raw numbers)": { - "us": 337.2, + "us": 334.3, "level": "full" } } @@ -2034,31 +2218,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 289.2, + "us": 288.9, "level": "full" }, "best_any": { "variant": "DOM", - "us": 289.2, + "us": 288.9, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 290.5, + "us": 287.8, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 290.5, + "us": 287.8, "level": "full" }, "variants": { - "DOM": { - "us": 289.2, + "DOM (reused)": { + "us": 287.8, "level": "full" }, - "DOM (reused)": { - "us": 290.5, + "DOM": { + "us": 288.9, "level": "full" } } @@ -2067,14 +2251,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 289.4, + "us": 288.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 289.4, + "us": 288.1, "level": "no UTF-8" } } @@ -2082,35 +2266,35 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 450.1, + "us": 450.8, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 450.1, + "us": 450.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 450.1, + "us": 450.8, "level": "full" }, "generic (double)": { - "us": 2096.2, + "us": 2051.4, "level": "partial" }, "generic (double, strict)": { - "us": 2134.6, + "us": 2062.3, "level": "full" }, "generic (strict)": { - "us": 2845.8, + "us": 2769.7, "level": "full" }, "generic": { - "us": 2852.8, + "us": 2775.2, "level": "partial" } } @@ -2118,47 +2302,47 @@ "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 596.7, + "us": 587.8, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 596.7, + "us": 587.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 619.1, + "us": 600.6, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 619.1, + "us": 600.6, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 596.7, - "level": "full" - }, - "SAX": { - "us": 610.0, + "us": 587.8, "level": "full" }, "SAX (reused)": { - "us": 619.1, + "us": 600.6, + "level": "full" + }, + "SAX": { + "us": 601.3, "level": "full" }, "parse (numbers: none)": { - "us": 1294.6, - "level": "full" - }, - "parse": { - "us": 1298.8, + "us": 1284.4, "level": "full" }, "parser (reused)": { - "us": 1304.0, + "us": 1289.6, + "level": "full" + }, + "parse": { + "us": 1298.4, "level": "full" } } @@ -2166,63 +2350,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1256.6, + "us": 1259.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 832.3, + "us": 844.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1507.6, + "us": 1501.7, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1403.9, + "us": 1401.4, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 832.3, + "insitu (copy untimed) (no encoding check)": { + "us": 804.9, "level": "no UTF-8" }, - "insitu (copy)": { - "us": 1256.6, + "insitu (copy) (no encoding check)": { + "us": 844.1, + "level": "no UTF-8" + }, + "SAX (string stream, default precision) (no encoding check)": { + "us": 960.4, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 978.6, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1226.0, "level": "full" }, - "SAX (raw numbers) (no encoding check)": { - "us": 1290.3, + "insitu (copy)": { + "us": 1259.7, + "level": "full" + }, + "SAX (default precision) (no encoding check)": { + "us": 1279.9, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 1301.3, + "us": 1288.3, + "level": "no UTF-8" + }, + "SAX (raw numbers) (no encoding check)": { + "us": 1324.1, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1403.9, + "us": 1401.4, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1437.0, + "us": 1434.4, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1507.6, + "us": 1501.7, "level": "full" }, - "SAX (raw numbers)": { - "us": 2173.0, + "SAX (string stream, default precision)": { + "us": 1867.0, + "level": "full" + }, + "SAX (string stream)": { + "us": 1886.3, + "level": "full" + }, + "SAX (default precision)": { + "us": 2145.8, "level": "full" }, "SAX": { - "us": 2243.9, + "us": 2154.2, + "level": "full" + }, + "SAX (raw numbers)": { + "us": 2179.2, "level": "full" }, "Document": { - "us": 2372.0, + "us": 2271.1, "level": "full" } } @@ -2320,35 +2536,35 @@ "nlohmann json_document": { "best": { "variant": "accept", - "us": 333.4, + "us": 327.9, "level": "full" }, "best_any": { "variant": "accept", - "us": 333.4, + "us": 327.9, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 517.3, + "us": 523.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 517.3, + "us": 523.6, "level": "full" }, "variants": { "accept": { - "us": 333.4, - "level": "full" - }, - "parse": { - "us": 515.6, + "us": 327.9, "level": "full" }, "read (reused)": { - "us": 517.3, + "us": 523.6, + "level": "full" + }, + "parse": { + "us": 523.7, "level": "full" } } @@ -2356,63 +2572,67 @@ "nlohmann json": { "best": { "variant": "accept", - "us": 1025.4, + "us": 1030.3, "level": "full" }, "best_any": { "variant": "accept", - "us": 1025.4, + "us": 1030.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "accept": { - "us": 1025.4, + "us": 1030.3, "level": "full" }, "parse": { - "us": 4698.4, + "us": 4688.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 512.3, + "variant": "insitu (copy)", + "us": 507.7, "level": "full" }, "best_any": { - "variant": "read", - "us": 512.3, + "variant": "insitu (copy)", + "us": 507.7, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 511.1, + "us": 507.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 511.1, + "us": 507.8, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 511.1, - "level": "full" - }, - "read": { - "us": 512.3, + "insitu (copy untimed)": { + "us": 472.2, "level": "full" }, "insitu (copy)": { - "us": 512.3, + "us": 507.7, + "level": "full" + }, + "read (reused allocator)": { + "us": 507.8, + "level": "full" + }, + "read": { + "us": 508.7, "level": "full" }, "read (raw numbers)": { - "us": 521.0, + "us": 520.4, "level": "full" } } @@ -2420,31 +2640,31 @@ "simdjson": { "best": { "variant": "DOM", - "us": 582.7, + "us": 573.6, "level": "full" }, "best_any": { "variant": "DOM", - "us": 582.7, + "us": 573.6, "level": "full" }, "best_reused": { "variant": "DOM (reused)", - "us": 583.1, + "us": 574.7, "level": "full" }, "best_reused_any": { "variant": "DOM (reused)", - "us": 583.1, + "us": 574.7, "level": "full" }, "variants": { "DOM": { - "us": 582.7, + "us": 573.6, "level": "full" }, "DOM (reused)": { - "us": 583.1, + "us": 574.7, "level": "full" } } @@ -2453,14 +2673,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 694.2, + "us": 692.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 694.2, + "us": 692.5, "level": "no UTF-8" } } @@ -2468,83 +2688,83 @@ "Glaze": { "best": { "variant": "validate_json", - "us": 624.2, + "us": 623.9, "level": "full" }, "best_any": { "variant": "validate_json", - "us": 624.2, + "us": 623.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "validate_json": { - "us": 624.2, + "us": 623.9, + "level": "full" + }, + "generic (double, strict)": { + "us": 3101.1, "level": "full" }, "generic (double)": { - "us": 3123.3, + "us": 3143.7, "level": "partial" }, - "generic (double, strict)": { - "us": 3126.7, - "level": "full" - }, - "generic (strict)": { - "us": 4759.3, - "level": "full" - }, "generic": { - "us": 4776.3, + "us": 4862.1, "level": "partial" + }, + "generic (strict)": { + "us": 4884.8, + "level": "full" } } }, "Boost.JSON": { "best": { "variant": "SAX (numbers: none)", - "us": 580.2, + "us": 574.7, "level": "full" }, "best_any": { "variant": "SAX (numbers: none)", - "us": 580.2, + "us": 574.7, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 662.9, + "us": 652.2, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 662.9, + "us": 652.2, "level": "full" }, "variants": { "SAX (numbers: none)": { - "us": 580.2, - "level": "full" - }, - "SAX (reused)": { - "us": 662.9, + "us": 574.7, "level": "full" }, "SAX": { - "us": 663.7, + "us": 651.6, + "level": "full" + }, + "SAX (reused)": { + "us": 652.2, "level": "full" }, "parse (numbers: none)": { - "us": 1492.8, + "us": 1425.2, "level": "full" }, "parser (reused)": { - "us": 1573.9, + "us": 1532.7, "level": "full" }, "parse": { - "us": 1575.2, + "us": 1533.0, "level": "full" } } @@ -2552,63 +2772,95 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1632.3, + "us": 1633.2, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1409.9, + "variant": "SAX (string stream, default precision) (no encoding check)", + "us": 1182.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1779.4, + "us": 1761.6, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 1774.8, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 1761.6, + "level": "full" }, "variants": { + "SAX (string stream, default precision) (no encoding check)": { + "us": 1182.1, + "level": "no UTF-8" + }, + "SAX (default precision) (no encoding check)": { + "us": 1202.5, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1391.7, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 1409.9, + "us": 1397.0, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1404.1, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 1422.9, + "us": 1437.9, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1606.0, + "level": "full" + }, "SAX (raw numbers) (no encoding check)": { - "us": 1617.8, + "us": 1616.8, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1632.3, + "us": 1633.2, + "level": "full" + }, + "SAX (string stream, default precision)": { + "us": 1669.1, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1761.6, "level": "full" }, "Document (no encoding check)": { - "us": 1729.8, + "us": 1770.4, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1774.8, + "us": 1772.7, "level": "no UTF-8" }, - "Document (reused allocator)": { - "us": 1779.4, + "SAX (default precision)": { + "us": 1795.8, + "level": "full" + }, + "SAX (string stream)": { + "us": 1918.0, "level": "full" }, "SAX": { - "us": 1923.6, + "us": 1945.9, "level": "full" }, "SAX (raw numbers)": { - "us": 2178.3, + "us": 2178.1, "level": "full" }, "Document": { - "us": 2367.7, + "us": 2338.1, "level": "full" } } @@ -2708,31 +2960,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 391.0, + "us": 391.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 391.0, + "us": 391.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 387.7, + "us": 384.8, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 387.7, + "us": 384.8, "level": "full" }, "variants": { "read (reused)": { - "us": 387.7, + "us": 384.8, "level": "full" }, "parse": { - "us": 391.0, + "us": 391.8, + "level": "full" + }, + "parse_copy": { + "us": 430.3, "level": "full" } } @@ -2740,23 +2996,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 792.4, + "us": 796.6, "level": "full" }, "best_any": { "variant": "sax", - "us": 792.4, + "us": 796.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 792.4, + "us": 796.6, "level": "full" }, "parse": { - "us": 3431.4, + "us": 3537.0, "level": "full" } } @@ -2764,35 +3020,39 @@ "yyjson": { "best": { "variant": "insitu (copy)", - "us": 445.2, + "us": 443.8, "level": "full" }, "best_any": { "variant": "insitu (copy)", - "us": 445.2, + "us": 443.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 450.2, + "us": 449.5, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 450.2, + "us": 449.5, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 407.0, + "level": "full" + }, "insitu (copy)": { - "us": 445.2, + "us": 443.8, "level": "full" }, "read": { - "us": 445.4, + "us": 446.5, "level": "full" }, "read (reused allocator)": { - "us": 450.2, + "us": 449.5, "level": "full" } } @@ -2800,39 +3060,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 356.5, + "us": 356.1, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 356.5, + "us": 356.1, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 356.3, + "us": 355.8, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 356.3, + "us": 355.8, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 356.3, + "us": 355.8, "level": "full" }, "On-Demand": { - "us": 356.5, - "level": "full" - }, - "DOM": { - "us": 431.5, + "us": 356.1, "level": "full" }, "DOM (reused)": { - "us": 437.5, + "us": 428.7, + "level": "full" + }, + "DOM": { + "us": 429.9, "level": "full" } } @@ -2841,14 +3101,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 461.7, + "us": 460.5, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 461.7, + "us": 460.5, "level": "no UTF-8" } } @@ -2856,36 +3116,36 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 2350.3, + "us": 2344.7, "level": "full" }, "best_any": { "variant": "generic (double)", - "us": 2333.7, + "us": 2338.9, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (double)": { - "us": 2333.7, + "us": 2338.9, "level": "partial" }, "generic (double, strict)": { - "us": 2350.3, + "us": 2344.7, "level": "full" }, "lazy_json": { - "us": 2999.9, + "us": 2953.9, + "level": "partial" + }, + "generic": { + "us": 3048.3, "level": "partial" }, "generic (strict)": { - "us": 3008.2, + "us": 3065.0, "level": "full" - }, - "generic": { - "us": 3015.1, - "level": "partial" } }, "excluded": { @@ -2895,39 +3155,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 736.0, + "us": 733.7, "level": "full" }, "best_any": { "variant": "SAX", - "us": 736.0, + "us": 733.7, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 737.4, + "us": 733.7, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 737.4, + "us": 733.7, "level": "full" }, "variants": { "SAX": { - "us": 736.0, + "us": 733.7, "level": "full" }, "SAX (reused)": { - "us": 737.4, + "us": 733.7, "level": "full" }, "parser (reused)": { - "us": 1490.1, + "us": 1494.8, "level": "full" }, "parse": { - "us": 1498.4, + "us": 1509.9, "level": "full" } } @@ -2935,55 +3195,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1647.3, + "us": 1656.5, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1169.4, + "us": 1170.4, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1642.2, + "us": 1637.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1547.6, + "us": 1554.3, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1129.7, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1169.4, + "us": 1170.4, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1254.3, "level": "no UTF-8" }, "SAX (no encoding check)": { "us": 1369.4, "level": "no UTF-8" }, - "Document (reused allocator) (no encoding check)": { - "us": 1547.6, + "Document (no encoding check)": { + "us": 1548.2, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 1550.9, + "Document (reused allocator) (no encoding check)": { + "us": 1554.3, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1615.8, + "level": "full" + }, "Document (reused allocator)": { - "us": 1642.2, + "us": 1637.2, "level": "full" }, "insitu (copy)": { - "us": 1647.3, + "us": 1656.5, + "level": "full" + }, + "SAX (string stream)": { + "us": 2195.3, "level": "full" }, "SAX": { - "us": 2288.2, + "us": 2276.2, "level": "full" }, "Document": { - "us": 2430.6, + "us": 2410.6, "level": "full" } } @@ -3077,31 +3353,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 918.6, + "us": 946.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 918.6, + "us": 946.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 916.4, + "us": 947.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 916.4, + "us": 947.2, "level": "full" }, "variants": { - "read (reused)": { - "us": 916.4, + "parse": { + "us": 946.2, "level": "full" }, - "parse": { - "us": 918.6, + "read (reused)": { + "us": 947.2, + "level": "full" + }, + "parse_copy": { + "us": 1060.1, "level": "full" } } @@ -3109,59 +3389,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 1544.8, + "us": 1547.8, "level": "full" }, "best_any": { "variant": "sax", - "us": 1544.8, + "us": 1547.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 1544.8, + "us": 1547.8, "level": "full" }, "parse": { - "us": 5265.9, + "us": 5365.9, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 1152.7, + "variant": "insitu (copy)", + "us": 1155.1, "level": "full" }, "best_any": { - "variant": "read", - "us": 1152.7, + "variant": "insitu (copy)", + "us": 1155.1, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 1161.6, + "us": 1191.6, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 1161.6, + "us": 1191.6, "level": "full" }, "variants": { - "read": { - "us": 1152.7, + "insitu (copy untimed)": { + "us": 1045.4, "level": "full" }, "insitu (copy)": { - "us": 1153.4, + "us": 1155.1, + "level": "full" + }, + "read": { + "us": 1156.2, "level": "full" }, "read (reused allocator)": { - "us": 1161.6, + "us": 1191.6, "level": "full" } } @@ -3169,39 +3453,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 811.3, + "us": 812.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 811.3, + "us": 812.0, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 811.2, + "us": 811.7, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 811.2, + "us": 811.7, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 811.2, + "us": 811.7, "level": "full" }, "On-Demand": { - "us": 811.3, - "level": "full" - }, - "DOM (reused)": { - "us": 1225.4, + "us": 812.0, "level": "full" }, "DOM": { - "us": 1229.4, + "us": 1217.1, + "level": "full" + }, + "DOM (reused)": { + "us": 1222.5, "level": "full" } } @@ -3210,14 +3494,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1211.2, + "us": 1209.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1211.2, + "us": 1209.8, "level": "no UTF-8" } } @@ -3225,35 +3509,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 4048.4, + "us": 4079.9, "level": "full" }, "best_any": { "variant": "generic (double)", - "us": 4030.0, + "us": 4041.2, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (double)": { - "us": 4030.0, + "us": 4041.2, "level": "partial" }, "generic (double, strict)": { - "us": 4048.4, + "us": 4079.9, "level": "full" }, "generic": { - "us": 5622.8, + "us": 5798.0, "level": "partial" }, "generic (strict)": { - "us": 5628.8, + "us": 5979.2, "level": "full" }, "lazy_json": { - "us": 13445.6, + "us": 13446.0, "level": "partial" } }, @@ -3264,39 +3548,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 1017.5, + "us": 1030.4, "level": "full" }, "best_any": { "variant": "SAX", - "us": 1017.5, + "us": 1030.4, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 1014.5, + "us": 1028.8, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 1014.5, + "us": 1028.8, "level": "full" }, "variants": { "SAX (reused)": { - "us": 1014.5, + "us": 1028.8, "level": "full" }, "SAX": { - "us": 1017.5, + "us": 1030.4, "level": "full" }, "parser (reused)": { - "us": 2064.3, + "us": 2055.5, "level": "full" }, "parse": { - "us": 2079.0, + "us": 2059.4, "level": "full" } } @@ -3304,55 +3588,71 @@ "RapidJSON": { "best": { "variant": "SAX", - "us": 2326.3, + "us": 2340.1, "level": "full" }, "best_any": { "variant": "SAX (no encoding check)", - "us": 1738.9, + "us": 1743.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 2162.1, + "us": 2169.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 2108.7, + "us": 2148.8, "level": "no UTF-8" }, "variants": { "SAX (no encoding check)": { - "us": 1738.9, + "us": 1743.1, "level": "no UTF-8" }, - "Document (no encoding check)": { - "us": 2085.9, + "SAX (string stream) (no encoding check)": { + "us": 1879.1, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1979.5, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 2101.0, + "us": 2084.8, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 2114.5, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 2108.7, + "us": 2148.8, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 2162.1, + "us": 2169.4, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 2290.0, "level": "full" }, "SAX": { - "us": 2326.3, + "us": 2340.1, "level": "full" }, "insitu (copy)": { - "us": 2381.9, + "us": 2396.5, + "level": "full" + }, + "SAX (string stream)": { + "us": 2466.4, "level": "full" }, "Document": { - "us": 2782.0, + "us": 2683.7, "level": "full" } } @@ -3446,31 +3746,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 3687.2, + "us": 3887.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 3687.2, + "us": 3887.9, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 3683.1, + "us": 3880.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 3683.1, + "us": 3880.6, "level": "full" }, "variants": { "read (reused)": { - "us": 3683.1, + "us": 3880.6, "level": "full" }, "parse": { - "us": 3687.2, + "us": 3887.9, + "level": "full" + }, + "parse_copy": { + "us": 4041.7, "level": "full" } } @@ -3478,23 +3782,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 5697.2, + "us": 6003.5, "level": "full" }, "best_any": { "variant": "sax", - "us": 5697.2, + "us": 6003.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 5697.2, + "us": 6003.5, "level": "full" }, "parse": { - "us": 12296.3, + "us": 12388.5, "level": "full" } } @@ -3502,35 +3806,39 @@ "yyjson": { "best": { "variant": "read", - "us": 5982.4, + "us": 6101.7, "level": "full" }, "best_any": { "variant": "read", - "us": 5982.4, + "us": 6101.7, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 5974.2, + "us": 6126.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 5974.2, + "us": 6126.8, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 5974.2, + "insitu (copy untimed)": { + "us": 6021.1, "level": "full" }, "read": { - "us": 5982.4, + "us": 6101.7, + "level": "full" + }, + "read (reused allocator)": { + "us": 6126.8, "level": "full" }, "insitu (copy)": { - "us": 6021.5, + "us": 6174.3, "level": "full" } } @@ -3538,39 +3846,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 3329.5, + "us": 3435.3, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 3329.5, + "us": 3435.3, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 3299.8, + "us": 3358.3, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 3299.8, + "us": 3358.3, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 3299.8, + "us": 3358.3, "level": "full" }, "On-Demand": { - "us": 3329.5, - "level": "full" - }, - "DOM (reused)": { - "us": 4613.5, + "us": 3435.3, "level": "full" }, "DOM": { - "us": 4636.3, + "us": 4793.8, + "level": "full" + }, + "DOM (reused)": { + "us": 4838.5, "level": "full" } } @@ -3579,14 +3887,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 4177.8, + "us": 4295.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 4177.8, + "us": 4295.1, "level": "no UTF-8" } } @@ -3594,36 +3902,36 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 10485.2, + "us": 10575.7, "level": "full" }, "best_any": { "variant": "generic (double, strict)", - "us": 10485.2, + "us": 10575.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (double, strict)": { - "us": 10485.2, + "us": 10575.7, "level": "full" }, "generic (double)": { - "us": 10596.7, + "us": 10910.0, + "level": "partial" + }, + "generic": { + "us": 20137.8, "level": "partial" }, "lazy_json": { - "us": 17558.6, + "us": 20195.3, "level": "partial" }, "generic (strict)": { - "us": 19018.6, + "us": 20606.8, "level": "full" - }, - "generic": { - "us": 19548.1, - "level": "partial" } }, "excluded": { @@ -3633,96 +3941,112 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 5847.3, + "us": 6102.7, "level": "full" }, "best_any": { "variant": "SAX", - "us": 5847.3, + "us": 6102.7, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 5836.0, + "us": 5992.8, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 5836.0, + "us": 5992.8, "level": "full" }, "variants": { "SAX (reused)": { - "us": 5836.0, + "us": 5992.8, "level": "full" }, "SAX": { - "us": 5847.3, + "us": 6102.7, "level": "full" }, "parse": { - "us": 7838.4, + "us": 7598.8, "level": "full" }, "parser (reused)": { - "us": 7894.2, + "us": 7637.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX", - "us": 10949.2, + "variant": "SAX (string stream)", + "us": 11182.8, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 10824.8, + "variant": "SAX (string stream) (no encoding check)", + "us": 11109.0, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 12203.3, + "us": 12160.8, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 12124.3, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 12160.8, + "level": "full" }, "variants": { + "SAX (string stream) (no encoding check)": { + "us": 11109.0, + "level": "no UTF-8" + }, + "SAX (string stream)": { + "us": 11182.8, + "level": "full" + }, "SAX (no encoding check)": { - "us": 10824.8, + "us": 11228.8, "level": "no UTF-8" }, "SAX": { - "us": 10949.2, + "us": 11324.8, "level": "full" }, - "Document (no encoding check)": { - "us": 11639.9, + "insitu (copy untimed) (no encoding check)": { + "us": 11818.9, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 11895.4, + "level": "full" + }, "insitu (copy)": { - "us": 11992.4, + "us": 12054.3, "level": "full" }, - "Document": { - "us": 12108.3, - "level": "full" - }, - "Document (reused allocator) (no encoding check)": { - "us": 12124.3, - "level": "no UTF-8" - }, "insitu (copy) (no encoding check)": { - "us": 12147.6, + "us": 12112.7, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 12203.3, + "us": 12160.8, "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 12175.0, + "level": "no UTF-8" + }, + "Document": { + "us": 12286.6, + "level": "full" + }, + "Document (no encoding check)": { + "us": 12496.0, + "level": "no UTF-8" } } }, @@ -3815,31 +4139,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 83750.6, + "us": 89043.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 83750.6, + "us": 89043.5, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 52077.6, + "us": 53108.4, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 52077.6, + "us": 53108.4, "level": "full" }, "variants": { "read (reused)": { - "us": 52077.6, + "us": 53108.4, "level": "full" }, "parse": { - "us": 83750.6, + "us": 89043.5, + "level": "full" + }, + "parse_copy": { + "us": 135380.5, "level": "full" } } @@ -3847,23 +4175,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 95144.5, + "us": 101516.2, "level": "full" }, "best_any": { "variant": "sax", - "us": 95144.5, + "us": 101516.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 95144.5, + "us": 101516.2, "level": "full" }, "parse": { - "us": 412945.5, + "us": 413745.8, "level": "full" } } @@ -3871,35 +4199,39 @@ "yyjson": { "best": { "variant": "read", - "us": 132844.2, + "us": 142879.7, "level": "full" }, "best_any": { "variant": "read", - "us": 132844.2, + "us": 142879.7, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 70112.6, + "us": 74378.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 70112.6, + "us": 74378.1, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 70112.6, + "us": 74378.1, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 99764.3, "level": "full" }, "read": { - "us": 132844.2, + "us": 142879.7, "level": "full" }, "insitu (copy)": { - "us": 135201.1, + "us": 144535.8, "level": "full" } } @@ -3907,39 +4239,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 89536.4, + "us": 96250.5, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 89536.4, + "us": 96250.5, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 50299.5, + "us": 49746.2, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 50299.5, + "us": 49746.2, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 50299.5, + "us": 49746.2, "level": "full" }, "DOM (reused)": { - "us": 63616.1, + "us": 62790.8, "level": "full" }, "On-Demand": { - "us": 89536.4, + "us": 96250.5, "level": "full" }, "DOM": { - "us": 135224.9, + "us": 135192.2, "level": "full" } } @@ -3948,14 +4280,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 102429.2, + "us": 107092.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 102429.2, + "us": 107092.4, "level": "no UTF-8" } } @@ -3963,35 +4295,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 233679.5, + "us": 250685.1, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 220377.0, + "us": 231181.0, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 220377.0, + "us": 231181.0, + "level": "partial" + }, + "generic (double)": { + "us": 247067.6, "level": "partial" }, "generic (double, strict)": { - "us": 233679.5, + "us": 250685.1, "level": "full" }, - "generic (double)": { - "us": 242563.5, - "level": "partial" - }, "generic (strict)": { - "us": 334266.2, + "us": 347977.1, "level": "full" }, "generic": { - "us": 334572.3, + "us": 348741.8, "level": "partial" } }, @@ -4002,39 +4334,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 62360.7, + "us": 64381.8, "level": "full" }, "best_any": { "variant": "SAX", - "us": 62360.7, + "us": 64381.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 61875.3, + "us": 65835.9, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 61875.3, + "us": 65835.9, "level": "full" }, "variants": { - "SAX (reused)": { - "us": 61875.3, + "SAX": { + "us": 64381.8, "level": "full" }, - "SAX": { - "us": 62360.7, + "SAX (reused)": { + "us": 65835.9, "level": "full" }, "parser (reused)": { - "us": 150245.8, + "us": 150275.9, "level": "full" }, "parse": { - "us": 196936.9, + "us": 209907.9, "level": "full" } } @@ -4042,55 +4374,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 212747.0, + "us": 225716.3, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 156639.2, + "variant": "SAX (string stream) (no encoding check)", + "us": 134512.4, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 198855.5, + "us": 210147.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 191691.5, + "us": 199382.8, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 119705.8, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 134512.4, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 156639.2, + "us": 166643.2, "level": "no UTF-8" }, "SAX (no encoding check)": { - "us": 167429.0, + "us": 173115.6, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 181500.1, + "level": "full" + }, "Document (reused allocator) (no encoding check)": { - "us": 191691.5, + "us": 199382.8, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 198523.1, + "us": 208113.1, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 198855.5, + "us": 210147.4, "level": "full" }, "insitu (copy)": { - "us": 212747.0, + "us": 225716.3, + "level": "full" + }, + "SAX (string stream)": { + "us": 259850.8, "level": "full" }, "SAX": { - "us": 282812.1, + "us": 290353.3, "level": "full" }, "Document": { - "us": 307605.9, + "us": 323477.4, "level": "full" } } @@ -4210,29 +4558,33 @@ "parse": { "us": 2.0, "level": "full" + }, + "parse_copy": { + "us": 2.1, + "level": "full" } } }, "nlohmann json": { "best": { "variant": "sax", - "us": 4.1, + "us": 4.0, "level": "full" }, "best_any": { "variant": "sax", - "us": 4.1, + "us": 4.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 4.1, + "us": 4.0, "level": "full" }, "parse": { - "us": 18.3, + "us": 17.9, "level": "full" } } @@ -4270,6 +4622,10 @@ "insitu (copy)": { "us": 2.0, "level": "full" + }, + "insitu (copy untimed)": { + "us": 2.0, + "level": "full" } } }, @@ -4303,11 +4659,11 @@ "us": 2.0, "level": "full" }, - "DOM": { - "us": 2.4, + "DOM (reused)": { + "us": 2.3, "level": "full" }, - "DOM (reused)": { + "DOM": { "us": 2.4, "level": "full" } @@ -4332,31 +4688,31 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 8.9, + "us": 9.0, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 6.1, + "us": 6.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 6.1, + "us": 6.4, "level": "partial" }, "generic (double)": { - "us": 8.7, + "us": 9.0, "level": "partial" }, "generic (double, strict)": { - "us": 8.9, + "us": 9.0, "level": "full" }, "generic": { - "us": 13.2, + "us": 13.4, "level": "partial" }, "generic (strict)": { @@ -4381,12 +4737,12 @@ }, "best_reused": { "variant": "SAX (reused)", - "us": 3.4, + "us": 3.3, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 3.4, + "us": 3.3, "level": "full" }, "variants": { @@ -4395,7 +4751,7 @@ "level": "full" }, "SAX (reused)": { - "us": 3.4, + "us": 3.3, "level": "full" }, "parser (reused)": { @@ -4411,7 +4767,7 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 7.7, + "us": 7.6, "level": "full" }, "best_any": { @@ -4421,45 +4777,61 @@ }, "best_reused": { "variant": "Document (reused allocator)", - "us": 8.4, + "us": 9.0, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 8.2, + "us": 7.9, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 3.9, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { "us": 4.0, "level": "no UTF-8" }, - "SAX (no encoding check)": { - "us": 7.1, + "SAX (string stream) (no encoding check)": { + "us": 4.4, "level": "no UTF-8" }, + "SAX (no encoding check)": { + "us": 7.0, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 7.5, + "level": "full" + }, "insitu (copy)": { - "us": 7.7, + "us": 7.6, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 8.2, + "us": 7.9, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 8.7, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 8.4, + "us": 9.0, "level": "full" }, - "Document (no encoding check)": { - "us": 8.4, - "level": "no UTF-8" + "SAX (string stream)": { + "us": 11.3, + "level": "full" }, "SAX": { - "us": 12.6, + "us": 12.4, "level": "full" }, "Document": { - "us": 13.7, + "us": 13.8, "level": "full" } } @@ -4553,31 +4925,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 341.5, + "us": 337.4, "level": "full" }, "best_any": { "variant": "parse", - "us": 341.5, + "us": 337.4, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 336.0, + "us": 331.3, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 336.0, + "us": 331.3, "level": "full" }, "variants": { "read (reused)": { - "us": 336.0, + "us": 331.3, "level": "full" }, "parse": { - "us": 341.5, + "us": 337.4, + "level": "full" + }, + "parse_copy": { + "us": 369.3, "level": "full" } } @@ -4585,59 +4961,63 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 698.8, + "us": 692.8, "level": "full" }, "best_any": { "variant": "sax", - "us": 698.8, + "us": 692.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 698.8, + "us": 692.8, "level": "full" }, "parse": { - "us": 3289.5, + "us": 3302.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 388.0, + "variant": "read", + "us": 383.9, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 388.0, + "variant": "read", + "us": 383.9, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 387.5, + "us": 383.7, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 387.5, + "us": 383.7, "level": "full" }, "variants": { - "read (reused allocator)": { - "us": 387.5, + "insitu (copy untimed)": { + "us": 358.2, "level": "full" }, - "insitu (copy)": { - "us": 388.0, + "read (reused allocator)": { + "us": 383.7, "level": "full" }, "read": { - "us": 388.2, + "us": 383.9, + "level": "full" + }, + "insitu (copy)": { + "us": 384.3, "level": "full" } } @@ -4645,39 +5025,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 335.4, + "us": 336.2, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 335.4, + "us": 336.2, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 335.4, + "us": 335.0, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 335.4, + "us": 335.0, "level": "full" }, "variants": { - "On-Demand": { - "us": 335.4, - "level": "full" - }, "On-Demand (reused)": { - "us": 335.4, + "us": 335.0, "level": "full" }, - "DOM (reused)": { - "us": 415.5, + "On-Demand": { + "us": 336.2, "level": "full" }, "DOM": { - "us": 420.3, + "us": 405.6, + "level": "full" + }, + "DOM (reused)": { + "us": 405.8, "level": "full" } } @@ -4686,14 +5066,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 342.9, + "us": 341.9, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 342.9, + "us": 341.9, "level": "no UTF-8" } } @@ -4701,35 +5081,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 2166.7, + "us": 2143.7, "level": "full" }, "best_any": { "variant": "lazy_json", - "us": 1708.7, + "us": 1722.6, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "lazy_json": { - "us": 1708.7, - "level": "partial" - }, - "generic (double)": { - "us": 2137.5, + "us": 1722.6, "level": "partial" }, "generic (double, strict)": { - "us": 2166.7, + "us": 2143.7, "level": "full" }, + "generic (double)": { + "us": 2148.0, + "level": "partial" + }, "generic (strict)": { - "us": 2824.4, + "us": 2854.8, "level": "full" }, "generic": { - "us": 2845.1, + "us": 2857.6, "level": "partial" } }, @@ -4740,39 +5120,39 @@ "Boost.JSON": { "best": { "variant": "SAX", - "us": 620.9, + "us": 616.8, "level": "full" }, "best_any": { "variant": "SAX", - "us": 620.9, + "us": 616.8, "level": "full" }, "best_reused": { "variant": "SAX (reused)", - "us": 619.6, + "us": 616.1, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 619.6, + "us": 616.1, "level": "full" }, "variants": { "SAX (reused)": { - "us": 619.6, + "us": 616.1, "level": "full" }, "SAX": { - "us": 620.9, + "us": 616.8, "level": "full" }, "parser (reused)": { - "us": 1367.5, + "us": 1354.4, "level": "full" }, "parse": { - "us": 1367.9, + "us": 1366.1, "level": "full" } } @@ -4780,55 +5160,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1309.1, + "us": 1316.4, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 888.0, + "us": 902.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1566.1, + "us": 1566.2, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1471.2, + "us": 1466.4, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 888.0, + "insitu (copy untimed) (no encoding check)": { + "us": 865.9, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 902.5, + "level": "no UTF-8" + }, + "SAX (string stream) (no encoding check)": { + "us": 1009.4, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1286.1, + "level": "full" + }, "SAX (no encoding check)": { - "us": 1283.2, + "us": 1292.3, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1309.1, + "us": 1316.4, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1471.2, + "us": 1466.4, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1490.4, + "us": 1498.4, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1566.1, + "us": 1566.2, + "level": "full" + }, + "SAX (string stream)": { + "us": 1924.9, "level": "full" }, "SAX": { - "us": 2170.0, + "us": 2147.3, "level": "full" }, "Document": { - "us": 2344.3, + "us": 2336.9, "level": "full" } } @@ -4922,31 +5318,35 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 705.2, + "us": 718.2, "level": "full" }, "best_any": { "variant": "parse", - "us": 705.2, + "us": 718.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 703.8, + "us": 712.6, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 703.8, + "us": 712.6, "level": "full" }, "variants": { "read (reused)": { - "us": 703.8, + "us": 712.6, "level": "full" }, "parse": { - "us": 705.2, + "us": 718.2, + "level": "full" + }, + "parse_copy": { + "us": 745.3, "level": "full" } } @@ -4954,23 +5354,23 @@ "nlohmann json": { "best": { "variant": "sax", - "us": 1260.1, + "us": 1244.1, "level": "full" }, "best_any": { "variant": "sax", - "us": 1260.1, + "us": 1244.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "sax": { - "us": 1260.1, + "us": 1244.1, "level": "full" }, "parse": { - "us": 4943.6, + "us": 4976.4, "level": "full" } } @@ -4978,35 +5378,39 @@ "yyjson": { "best": { "variant": "read", - "us": 674.0, + "us": 672.6, "level": "full" }, "best_any": { "variant": "read", - "us": 674.0, + "us": 672.6, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 676.2, + "us": 673.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 676.2, + "us": 673.4, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 642.3, + "level": "full" + }, "read": { - "us": 674.0, + "us": 672.6, "level": "full" }, "insitu (copy)": { - "us": 674.8, + "us": 673.3, "level": "full" }, "read (reused allocator)": { - "us": 676.2, + "us": 673.4, "level": "full" } } @@ -5014,39 +5418,39 @@ "simdjson": { "best": { "variant": "On-Demand", - "us": 650.1, + "us": 651.3, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 650.1, + "us": 651.3, "level": "full" }, "best_reused": { "variant": "On-Demand (reused)", - "us": 650.0, + "us": 649.7, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 650.0, + "us": 649.7, "level": "full" }, "variants": { "On-Demand (reused)": { - "us": 650.0, + "us": 649.7, "level": "full" }, "On-Demand": { - "us": 650.1, + "us": 651.3, "level": "full" }, "DOM (reused)": { - "us": 1061.1, + "us": 1050.9, "level": "full" }, "DOM": { - "us": 1061.7, + "us": 1051.6, "level": "full" } } @@ -5055,14 +5459,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 878.0, + "us": 876.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 878.0, + "us": 876.3, "level": "no UTF-8" } } @@ -5070,35 +5474,35 @@ "Glaze": { "best": { "variant": "generic (double, strict)", - "us": 3325.0, + "us": 3296.5, "level": "full" }, "best_any": { - "variant": "generic (double)", - "us": 3311.4, - "level": "partial" + "variant": "generic (double, strict)", + "us": 3296.5, + "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (double)": { - "us": 3311.4, - "level": "partial" - }, "generic (double, strict)": { - "us": 3325.0, + "us": 3296.5, "level": "full" }, + "generic (double)": { + "us": 3325.1, + "level": "partial" + }, "lazy_json": { - "us": 3368.7, + "us": 3484.3, "level": "partial" }, "generic (strict)": { - "us": 4961.7, + "us": 5084.3, "level": "full" }, "generic": { - "us": 4968.5, + "us": 5087.1, "level": "partial" } }, @@ -5119,29 +5523,29 @@ }, "best_reused": { "variant": "SAX (reused)", - "us": 697.9, + "us": 696.8, "level": "full" }, "best_reused_any": { "variant": "SAX (reused)", - "us": 697.9, + "us": 696.8, "level": "full" }, "variants": { + "SAX (reused)": { + "us": 696.8, + "level": "full" + }, "SAX": { "us": 697.7, "level": "full" }, - "SAX (reused)": { - "us": 697.9, - "level": "full" - }, "parser (reused)": { - "us": 1735.1, + "us": 1687.4, "level": "full" }, "parse": { - "us": 1737.4, + "us": 1697.9, "level": "full" } } @@ -5149,55 +5553,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1797.6, + "us": 1799.0, "level": "full" }, "best_any": { - "variant": "SAX (no encoding check)", - "us": 1468.5, + "variant": "SAX (string stream) (no encoding check)", + "us": 1451.9, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1955.6, + "us": 1943.5, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 1952.3, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 1943.5, + "level": "full" }, "variants": { + "SAX (string stream) (no encoding check)": { + "us": 1451.9, + "level": "no UTF-8" + }, "SAX (no encoding check)": { - "us": 1468.5, + "us": 1480.3, + "level": "no UTF-8" + }, + "insitu (copy untimed) (no encoding check)": { + "us": 1574.3, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 1586.3, + "us": 1604.6, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1777.5, + "level": "full" + }, "insitu (copy)": { - "us": 1797.6, + "us": 1799.0, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1943.5, "level": "full" }, "Document (no encoding check)": { - "us": 1920.9, + "us": 1943.9, "level": "no UTF-8" }, - "Document (reused allocator) (no encoding check)": { - "us": 1952.3, - "level": "no UTF-8" - }, - "Document (reused allocator)": { - "us": 1955.6, + "SAX (string stream)": { + "us": 1955.5, "level": "full" }, + "Document (reused allocator) (no encoding check)": { + "us": 1956.5, + "level": "no UTF-8" + }, "SAX": { - "us": 2059.3, + "us": 2070.0, "level": "full" }, "Document": { - "us": 2551.4, + "us": 2514.2, "level": "full" } } @@ -5293,59 +5713,63 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 334.7, + "us": 332.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 334.7, + "us": 332.3, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 327.9, + "us": 325.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 327.9, + "us": 325.2, "level": "full" }, "variants": { "read (reused)": { - "us": 327.9, + "us": 325.2, "level": "full" }, "parse": { - "us": 334.7, + "us": 332.3, "level": "full" }, "structs (from_json)": { - "us": 335.5, + "us": 334.2, + "level": "full" + }, + "parse_copy": { + "us": 370.6, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 3323.0, + "variant": "structs (from_json)", + "us": 3325.0, "level": "full" }, "best_any": { - "variant": "parse", - "us": 3323.0, + "variant": "structs (from_json)", + "us": 3325.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 3323.0, + "structs (from_json)": { + "us": 3325.0, "level": "full" }, - "structs (from_json)": { - "us": 3481.1, + "parse": { + "us": 3353.0, "level": "full" } } @@ -5353,39 +5777,43 @@ "yyjson": { "best": { "variant": "read", - "us": 399.1, + "us": 397.9, "level": "full" }, "best_any": { "variant": "read", - "us": 399.1, + "us": 397.9, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 402.9, + "us": 403.6, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 402.9, + "us": 403.6, "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 361.4, + "level": "full" + }, "read": { - "us": 399.1, + "us": 397.9, "level": "full" }, "insitu (copy)": { - "us": 401.8, + "us": 401.7, "level": "full" }, "read (raw numbers)": { - "us": 402.9, + "us": 402.4, "level": "full" }, "read (reused allocator)": { - "us": 402.9, + "us": 403.6, "level": "full" } } @@ -5393,47 +5821,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 320.4, + "us": 323.5, "level": "full" }, "best_any": { "variant": "On-Demand (key selectors)", - "us": 184.1, + "us": 183.6, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 321.3, + "us": 320.2, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 182.7, + "us": 183.7, "level": "partial" }, "variants": { - "On-Demand (reused)": { - "us": 182.7, + "On-Demand (key selectors)": { + "us": 183.6, "level": "partial" }, - "On-Demand (key selectors)": { - "us": 184.1, + "On-Demand (reused)": { + "us": 183.7, "level": "partial" }, "On-Demand": { - "us": 184.2, + "us": 187.7, "level": "partial" }, "On-Demand structs": { - "us": 188.7, + "us": 193.6, "level": "partial" }, - "DOM": { - "us": 320.4, + "DOM (reused)": { + "us": 320.2, "level": "full" }, - "DOM (reused)": { - "us": 321.3, + "DOM": { + "us": 323.5, "level": "full" } } @@ -5442,14 +5870,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 415.1, + "us": 413.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 415.1, + "us": 413.0, "level": "no UTF-8" } } @@ -5457,44 +5885,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 526.0, + "us": 529.4, "level": "full" }, "best_any": { "variant": "structs", - "us": 340.9, + "us": 342.0, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 340.9, + "us": 342.0, "level": "partial" }, "structs (validate_skipped)": { - "us": 526.0, + "us": 529.4, "level": "full" }, "lazy_json": { - "us": 1000.8, - "level": "partial" - }, - "generic (double)": { - "us": 2398.8, + "us": 981.9, "level": "partial" }, "generic (double, strict)": { - "us": 2411.7, + "us": 2411.8, "level": "full" }, - "generic": { - "us": 3064.4, + "generic (double)": { + "us": 2429.0, "level": "partial" }, "generic (strict)": { - "us": 3064.7, + "us": 3106.7, "level": "full" + }, + "generic": { + "us": 3112.1, + "level": "partial" } }, "excluded": { @@ -5504,35 +5932,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 888.9, + "us": 883.6, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 888.9, + "us": 883.6, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1444.3, + "us": 1462.3, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1444.3, + "us": 1462.3, "level": "full" }, "variants": { "parse_into structs": { - "us": 888.9, + "us": 883.6, "level": "full" }, "parser (reused)": { - "us": 1444.3, + "us": 1462.3, "level": "full" }, "parse": { - "us": 1447.1, + "us": 1476.7, "level": "full" } }, @@ -5543,55 +5971,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1600.8, + "us": 1600.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1117.3, + "us": 1121.3, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1581.4, + "us": 1576.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1484.1, + "us": 1486.4, "level": "no UTF-8" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1078.7, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1117.3, + "us": 1121.3, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1400.4, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1484.1, + "us": 1486.4, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1496.9, + "us": 1498.9, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 1530.3, + "us": 1536.7, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 1560.4, + "level": "full" + }, "Document (reused allocator)": { - "us": 1581.4, + "us": 1576.1, "level": "full" }, "insitu (copy)": { - "us": 1600.8, + "us": 1600.7, + "level": "full" + }, + "Document (string stream)": { + "us": 2357.1, "level": "full" }, "Document": { - "us": 2374.3, + "us": 2358.8, "level": "full" }, "Document (raw numbers)": { - "us": 2409.1, + "us": 2394.5, "level": "full" } } @@ -5677,99 +6121,107 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 740.2, + "us": 765.3, "level": "full" }, "best_any": { "variant": "parse", - "us": 740.2, + "us": 765.3, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 743.7, + "us": 760.3, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 743.7, + "us": 760.3, "level": "full" }, "variants": { - "parse": { - "us": 740.2, + "read (reused)": { + "us": 760.3, "level": "full" }, - "read (reused)": { - "us": 743.7, + "parse": { + "us": 765.3, "level": "full" }, "structs (from_json)": { - "us": 776.0, + "us": 796.0, + "level": "full" + }, + "parse_copy": { + "us": 886.0, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 5055.3, + "variant": "structs (from_json)", + "us": 5125.6, "level": "full" }, "best_any": { - "variant": "parse", - "us": 5055.3, + "variant": "structs (from_json)", + "us": 5125.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 5055.3, + "structs (from_json)": { + "us": 5125.6, "level": "full" }, - "structs (from_json)": { - "us": 5143.7, + "parse": { + "us": 5171.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "read", - "us": 995.9, + "variant": "insitu (copy)", + "us": 999.2, "level": "full" }, "best_any": { - "variant": "read", - "us": 995.9, + "variant": "insitu (copy)", + "us": 999.2, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 1007.8, + "us": 1012.9, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 1007.8, + "us": 1012.9, "level": "full" }, "variants": { - "read": { - "us": 995.9, + "insitu (copy untimed)": { + "us": 880.4, "level": "full" }, "insitu (copy)": { - "us": 995.9, + "us": 999.2, + "level": "full" + }, + "read": { + "us": 999.4, "level": "full" }, "read (raw numbers)": { - "us": 1003.0, + "us": 1008.9, "level": "full" }, "read (reused allocator)": { - "us": 1007.8, + "us": 1012.9, "level": "full" } } @@ -5777,47 +6229,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 755.0, + "us": 756.1, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 508.2, + "us": 509.4, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 754.4, + "us": 751.9, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 506.8, + "us": 509.0, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 506.8, + "us": 509.0, "level": "partial" }, "On-Demand": { - "us": 508.2, + "us": 509.4, "level": "partial" }, "On-Demand (key selectors)": { - "us": 510.4, + "us": 510.5, "level": "partial" }, "On-Demand structs": { - "us": 545.3, + "us": 548.8, "level": "partial" }, "DOM (reused)": { - "us": 754.4, + "us": 751.9, "level": "full" }, "DOM": { - "us": 755.0, + "us": 756.1, "level": "full" } } @@ -5826,14 +6278,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1040.1, + "us": 1042.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1040.1, + "us": 1042.6, "level": "no UTF-8" } } @@ -5841,43 +6293,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1453.2, + "us": 1434.9, "level": "full" }, "best_any": { "variant": "structs", - "us": 404.6, + "us": 409.5, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 404.6, + "us": 409.5, "level": "partial" }, "structs (validate_skipped)": { - "us": 1453.2, + "us": 1434.9, "level": "full" }, "generic (double, strict)": { - "us": 3922.1, + "us": 3911.3, "level": "full" }, "generic (double)": { - "us": 3932.6, + "us": 4056.8, + "level": "partial" + }, + "generic": { + "us": 5729.0, "level": "partial" }, "generic (strict)": { - "us": 5510.0, + "us": 5799.8, "level": "full" }, - "generic": { - "us": 5566.5, - "level": "partial" - }, "lazy_json": { - "us": 9013.5, + "us": 9001.1, "level": "partial" } }, @@ -5888,35 +6340,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 1383.0, + "us": 1379.9, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 1383.0, + "us": 1379.9, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1917.0, + "us": 1908.9, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1917.0, + "us": 1908.9, "level": "full" }, "variants": { "parse_into structs": { - "us": 1383.0, - "level": "full" - }, - "parser (reused)": { - "us": 1917.0, + "us": 1379.9, "level": "full" }, "parse": { - "us": 1921.7, + "us": 1907.9, + "level": "full" + }, + "parser (reused)": { + "us": 1908.9, "level": "full" } }, @@ -5927,55 +6379,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2216.5, + "us": 2245.1, "level": "full" }, "best_any": { "variant": "Document (no encoding check)", - "us": 1919.5, + "us": 1939.6, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1996.4, + "us": 1985.5, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 1931.8, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 1985.5, + "level": "full" }, "variants": { - "Document (no encoding check)": { - "us": 1919.5, + "insitu (copy untimed) (no encoding check)": { + "us": 1817.0, "level": "no UTF-8" }, - "Document (reused allocator) (no encoding check)": { - "us": 1931.8, + "Document (no encoding check)": { + "us": 1939.6, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 1932.5, + "us": 1968.9, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1996.4, + "us": 1985.5, + "level": "full" + }, + "Document (reused allocator) (no encoding check)": { + "us": 2018.4, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 2079.1, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 2127.0, "level": "full" }, "Document (raw numbers) (no encoding check)": { - "us": 2214.8, + "us": 2233.3, "level": "no UTF-8" }, "insitu (copy)": { - "us": 2216.5, + "us": 2245.1, "level": "full" }, "Document": { - "us": 2609.8, + "us": 2568.2, + "level": "full" + }, + "Document (string stream)": { + "us": 2616.9, "level": "full" }, "Document (raw numbers)": { - "us": 2781.6, + "us": 2848.5, "level": "full" } } @@ -6061,35 +6529,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 1358.0, + "us": 1390.5, "level": "full" }, "best_any": { "variant": "parse", - "us": 1358.0, + "us": 1390.5, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 1359.4, + "us": 1465.9, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 1359.4, + "us": 1465.9, "level": "full" }, "variants": { "parse": { - "us": 1358.0, + "us": 1390.5, "level": "full" }, "structs (from_json)": { - "us": 1358.8, + "us": 1416.3, "level": "full" }, "read (reused)": { - "us": 1359.4, + "us": 1465.9, + "level": "full" + }, + "parse_copy": { + "us": 1603.4, "level": "full" } } @@ -6097,23 +6569,23 @@ "nlohmann json": { "best": { "variant": "structs (from_json)", - "us": 12002.3, + "us": 11908.0, "level": "full" }, "best_any": { "variant": "structs (from_json)", - "us": 12002.3, + "us": 11908.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "structs (from_json)": { - "us": 12002.3, + "us": 11908.0, "level": "full" }, "parse": { - "us": 12169.0, + "us": 12035.9, "level": "full" } } @@ -6121,39 +6593,43 @@ "yyjson": { "best": { "variant": "read (raw numbers)", - "us": 2221.3, + "us": 2236.0, "level": "full" }, "best_any": { "variant": "read (raw numbers)", - "us": 2221.3, + "us": 2236.0, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 5470.4, + "us": 5554.3, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 5470.4, + "us": 5554.3, "level": "full" }, "variants": { "read (raw numbers)": { - "us": 2221.3, + "us": 2236.0, "level": "full" }, - "read (reused allocator)": { - "us": 5470.4, + "insitu (copy untimed)": { + "us": 5480.1, "level": "full" }, "read": { - "us": 5485.1, + "us": 5525.7, + "level": "full" + }, + "read (reused allocator)": { + "us": 5554.3, "level": "full" }, "insitu (copy)": { - "us": 5498.1, + "us": 5597.7, "level": "full" } } @@ -6161,47 +6637,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 3149.3, + "us": 3409.0, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 700.7, + "us": 700.0, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 3189.2, + "us": 3229.9, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 697.5, + "us": 698.1, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 697.5, + "us": 698.1, "level": "partial" }, "On-Demand": { - "us": 700.7, + "us": 700.0, "level": "partial" }, "On-Demand (key selectors)": { - "us": 738.1, + "us": 747.1, "level": "partial" }, "On-Demand structs": { - "us": 920.7, + "us": 921.4, "level": "partial" }, - "DOM": { - "us": 3149.3, + "DOM (reused)": { + "us": 3229.9, "level": "full" }, - "DOM (reused)": { - "us": 3189.2, + "DOM": { + "us": 3409.0, "level": "full" } } @@ -6210,14 +6686,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3708.3, + "us": 3694.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3708.3, + "us": 3694.8, "level": "no UTF-8" } } @@ -6225,43 +6701,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 1901.9, + "us": 1913.3, "level": "full" }, "best_any": { "variant": "structs", - "us": 431.8, + "us": 431.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 431.8, + "us": 431.3, "level": "partial" }, "structs (validate_skipped)": { - "us": 1901.9, + "us": 1913.3, "level": "full" }, "lazy_json": { - "us": 3620.8, + "us": 3043.2, "level": "partial" }, "generic (double)": { - "us": 10049.9, + "us": 10291.5, "level": "partial" }, "generic (double, strict)": { - "us": 10134.4, + "us": 10403.4, "level": "full" }, "generic": { - "us": 19176.3, + "us": 19729.3, "level": "partial" }, "generic (strict)": { - "us": 19219.5, + "us": 20097.5, "level": "full" } }, @@ -6271,36 +6747,36 @@ }, "Boost.JSON": { "best": { - "variant": "parse_into structs", - "us": 6905.7, + "variant": "parse", + "us": 7216.6, "level": "full" }, "best_any": { - "variant": "parse_into structs", - "us": 6905.7, + "variant": "parse", + "us": 7216.6, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 7635.1, + "us": 7211.5, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 7635.1, + "us": 7211.5, "level": "full" }, "variants": { - "parse_into structs": { - "us": 6905.7, - "level": "full" - }, "parser (reused)": { - "us": 7635.1, + "us": 7211.5, "level": "full" }, "parse": { - "us": 7638.7, + "us": 7216.6, + "level": "full" + }, + "parse_into structs": { + "us": 7453.0, "level": "full" } }, @@ -6311,55 +6787,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 11490.9, + "us": 11762.3, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 11482.5, + "variant": "Document (string stream) (no encoding check)", + "us": 11435.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 11597.4, + "us": 11421.3, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator)", - "us": 11597.4, + "us": 11421.3, "level": "full" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 11482.5, - "level": "no UTF-8" - }, - "insitu (copy)": { - "us": 11490.9, + "Document (reused allocator)": { + "us": 11421.3, "level": "full" }, - "Document (no encoding check)": { - "us": 11560.4, + "Document (string stream) (no encoding check)": { + "us": 11435.5, "level": "no UTF-8" }, - "Document (reused allocator)": { - "us": 11597.4, + "insitu (copy untimed) (no encoding check)": { + "us": 11462.8, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 11520.4, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 11547.2, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 11626.0, + "us": 11592.0, "level": "no UTF-8" }, + "insitu (copy)": { + "us": 11762.3, + "level": "full" + }, "Document": { - "us": 11860.2, + "us": 11791.5, + "level": "full" + }, + "Document (no encoding check)": { + "us": 11945.4, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 12137.6, "level": "full" }, "Document (raw numbers) (no encoding check)": { - "us": 13471.3, + "us": 13702.4, "level": "no UTF-8" }, "Document (raw numbers)": { - "us": 13907.8, + "us": 13880.3, "level": "full" } } @@ -6445,59 +6937,63 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 94846.1, + "us": 88201.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 94846.1, + "us": 88201.8, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 56581.7, + "us": 54267.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 56581.7, + "us": 54267.2, "level": "full" }, "variants": { "read (reused)": { - "us": 56581.7, + "us": 54267.2, "level": "full" }, "parse": { - "us": 94846.1, + "us": 88201.8, "level": "full" }, "structs (from_json)": { - "us": 110993.3, + "us": 101996.9, + "level": "full" + }, + "parse_copy": { + "us": 127312.7, "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 432006.0, + "variant": "structs (from_json)", + "us": 423361.7, "level": "full" }, "best_any": { - "variant": "parse", - "us": 432006.0, + "variant": "structs (from_json)", + "us": 423361.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 432006.0, + "structs (from_json)": { + "us": 423361.7, "level": "full" }, - "structs (from_json)": { - "us": 443437.1, + "parse": { + "us": 430906.6, "level": "full" } } @@ -6505,39 +7001,43 @@ "yyjson": { "best": { "variant": "read", - "us": 142095.9, + "us": 137442.8, "level": "full" }, "best_any": { "variant": "read", - "us": 142095.9, + "us": 137442.8, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 72269.1, + "us": 70365.8, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 72269.1, + "us": 70365.8, "level": "full" }, "variants": { "read (reused allocator)": { - "us": 72269.1, + "us": 70365.8, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 98636.9, "level": "full" }, "read": { - "us": 142095.9, + "us": 137442.8, "level": "full" }, "read (raw numbers)": { - "us": 143822.5, + "us": 138127.7, "level": "full" }, "insitu (copy)": { - "us": 146389.6, + "us": 142337.4, "level": "full" } } @@ -6545,47 +7045,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 129931.9, + "us": 123214.2, "level": "full" }, "best_any": { - "variant": "On-Demand (key selectors)", - "us": 51763.4, + "variant": "On-Demand", + "us": 48614.2, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 60237.2, + "us": 57246.2, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 30756.5, + "us": 29249.2, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 30756.5, - "level": "partial" - }, - "On-Demand (key selectors)": { - "us": 51763.4, + "us": 29249.2, "level": "partial" }, "On-Demand": { - "us": 51997.7, + "us": 48614.2, + "level": "partial" + }, + "On-Demand (key selectors)": { + "us": 49110.1, "level": "partial" }, "DOM (reused)": { - "us": 60237.2, + "us": 57246.2, "level": "full" }, "On-Demand structs": { - "us": 74977.1, + "us": 72096.7, "level": "partial" }, "DOM": { - "us": 129931.9, + "us": 123214.2, "level": "full" } } @@ -6594,14 +7094,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 111786.0, + "us": 108296.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 111786.0, + "us": 108296.7, "level": "no UTF-8" } } @@ -6609,43 +7109,43 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 87166.1, + "us": 91253.1, "level": "full" }, "best_any": { "variant": "structs", - "us": 66832.1, + "us": 66068.8, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 66832.1, + "us": 66068.8, "level": "partial" }, "structs (validate_skipped)": { - "us": 87166.1, + "us": 91253.1, "level": "full" }, "lazy_json": { - "us": 113899.9, + "us": 119018.0, "level": "partial" }, "generic (double, strict)": { - "us": 244263.1, + "us": 247084.3, "level": "full" }, "generic (double)": { - "us": 247754.5, + "us": 251551.1, "level": "partial" }, "generic (strict)": { - "us": 341613.8, + "us": 342271.8, "level": "full" }, "generic": { - "us": 348227.9, + "us": 346828.2, "level": "partial" } }, @@ -6656,35 +7156,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 102895.9, + "us": 99077.5, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 102895.9, + "us": 99077.5, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 149564.0, + "us": 144837.3, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 149564.0, + "us": 144837.3, "level": "full" }, "variants": { "parse_into structs": { - "us": 102895.9, + "us": 99077.5, "level": "full" }, "parser (reused)": { - "us": 149564.0, + "us": 144837.3, "level": "full" }, "parse": { - "us": 212463.2, + "us": 205149.1, "level": "full" } }, @@ -6695,55 +7195,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 221481.2, + "us": 222625.3, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 166715.2, + "us": 163654.2, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 202170.3, + "us": 197438.0, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 192286.8, + "us": 194537.4, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 166715.2, + "insitu (copy untimed) (no encoding check)": { + "us": 122353.6, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 163654.2, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 166650.0, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 176066.1, + "level": "full" + }, "Document (reused allocator) (no encoding check)": { - "us": 192286.8, - "level": "no UTF-8" - }, - "Document (no encoding check)": { - "us": 197517.8, - "level": "no UTF-8" - }, - "Document (raw numbers) (no encoding check)": { - "us": 201321.7, + "us": 194537.4, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 202170.3, + "us": 197438.0, "level": "full" }, + "Document (raw numbers) (no encoding check)": { + "us": 198332.6, + "level": "no UTF-8" + }, + "Document (no encoding check)": { + "us": 200011.2, + "level": "no UTF-8" + }, "insitu (copy)": { - "us": 221481.2, + "us": 222625.3, "level": "full" }, - "Document (raw numbers)": { - "us": 307658.9, + "Document (string stream)": { + "us": 279094.5, "level": "full" }, "Document": { - "us": 313108.9, + "us": 306019.9, + "level": "full" + }, + "Document (raw numbers)": { + "us": 316505.9, "level": "full" } } @@ -6859,29 +7375,33 @@ "structs (from_json)": { "us": 1.6, "level": "full" + }, + "parse_copy": { + "us": 1.7, + "level": "full" } } }, "nlohmann json": { "best": { - "variant": "parse", - "us": 17.4, + "variant": "structs (from_json)", + "us": 17.0, "level": "full" }, "best_any": { - "variant": "parse", - "us": 17.4, + "variant": "structs (from_json)", + "us": 17.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "parse": { - "us": 17.4, + "structs (from_json)": { + "us": 17.0, "level": "full" }, - "structs (from_json)": { - "us": 19.0, + "parse": { + "us": 17.1, "level": "full" } } @@ -6908,6 +7428,10 @@ "level": "full" }, "variants": { + "insitu (copy untimed)": { + "us": 1.7, + "level": "full" + }, "read (reused allocator)": { "us": 1.7, "level": "full" @@ -6921,7 +7445,7 @@ "level": "full" }, "read (raw numbers)": { - "us": 1.9, + "us": 1.8, "level": "full" } } @@ -6939,7 +7463,7 @@ }, "best_reused": { "variant": "DOM (reused)", - "us": 1.8, + "us": 1.6, "level": "full" }, "best_reused_any": { @@ -6965,7 +7489,7 @@ "level": "partial" }, "DOM (reused)": { - "us": 1.8, + "us": 1.6, "level": "full" }, "DOM": { @@ -7013,23 +7537,23 @@ "level": "full" }, "lazy_json": { - "us": 2.2, + "us": 2.3, + "level": "partial" + }, + "generic (double)": { + "us": 9.4, "level": "partial" }, "generic (double, strict)": { "us": 9.4, "level": "full" }, - "generic (double)": { - "us": 10.0, - "level": "partial" - }, "generic (strict)": { - "us": 13.2, + "us": 13.5, "level": "full" }, "generic": { - "us": 14.5, + "us": 13.6, "level": "partial" } }, @@ -7040,12 +7564,12 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 4.1, + "us": 3.9, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 4.1, + "us": 3.9, "level": "full" }, "best_reused": { @@ -7060,7 +7584,7 @@ }, "variants": { "parse_into structs": { - "us": 4.1, + "us": 3.9, "level": "full" }, "parser (reused)": { @@ -7068,7 +7592,7 @@ "level": "full" }, "parse": { - "us": 7.0, + "us": 6.7, "level": "full" } }, @@ -7079,55 +7603,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 7.5, + "us": 7.2, "level": "full" }, "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": 8.7, + "us": 8.1, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 7.9, + "us": 7.6, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 3.9, + "insitu (copy untimed) (no encoding check)": { + "us": 3.7, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 3.8, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 5.3, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 7.1, + "level": "full" + }, "insitu (copy)": { - "us": 7.5, + "us": 7.2, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 7.9, + "us": 7.6, "level": "no UTF-8" }, + "Document (reused allocator)": { + "us": 8.1, + "level": "full" + }, "Document (no encoding check)": { "us": 8.2, "level": "no UTF-8" }, - "Document (reused allocator)": { - "us": 8.7, - "level": "full" - }, "Document (raw numbers) (no encoding check)": { - "us": 8.7, + "us": 8.4, "level": "no UTF-8" }, + "Document (string stream)": { + "us": 11.5, + "level": "full" + }, "Document": { "us": 12.9, "level": "full" }, "Document (raw numbers)": { - "us": 13.9, + "us": 13.1, "level": "full" } } @@ -7212,100 +7752,108 @@ "twitter_min": { "nlohmann json_document": { "best": { - "variant": "parse", - "us": 281.9, + "variant": "structs (from_json)", + "us": 282.2, "level": "full" }, "best_any": { - "variant": "parse", - "us": 281.9, + "variant": "structs (from_json)", + "us": 282.2, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 278.1, + "us": 274.7, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 278.1, + "us": 274.7, "level": "full" }, "variants": { "read (reused)": { - "us": 278.1, - "level": "full" - }, - "parse": { - "us": 281.9, + "us": 274.7, "level": "full" }, "structs (from_json)": { + "us": 282.2, + "level": "full" + }, + "parse": { "us": 283.0, "level": "full" + }, + "parse_copy": { + "us": 310.2, + "level": "full" } } }, "nlohmann json": { "best": { "variant": "parse", - "us": 3183.5, + "us": 3197.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 3183.5, + "us": 3197.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 3183.5, + "us": 3197.9, "level": "full" }, "structs (from_json)": { - "us": 3335.5, + "us": 3219.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 341.0, + "variant": "read", + "us": 340.4, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 341.0, + "variant": "read", + "us": 340.4, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 343.0, + "us": 342.4, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 343.0, + "us": 342.4, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 341.0, - "level": "full" - }, - "read (reused allocator)": { - "us": 343.0, + "insitu (copy untimed)": { + "us": 311.6, "level": "full" }, "read": { - "us": 344.5, + "us": 340.4, + "level": "full" + }, + "insitu (copy)": { + "us": 341.5, + "level": "full" + }, + "read (reused allocator)": { + "us": 342.4, "level": "full" }, "read (raw numbers)": { - "us": 348.1, + "us": 346.2, "level": "full" } } @@ -7313,47 +7861,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 300.9, + "us": 302.7, "level": "full" }, "best_any": { - "variant": "On-Demand", - "us": 162.0, + "variant": "On-Demand (key selectors)", + "us": 163.0, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 301.8, + "us": 301.6, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 160.5, + "us": 161.1, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 160.5, - "level": "partial" - }, - "On-Demand": { - "us": 162.0, + "us": 161.1, "level": "partial" }, "On-Demand (key selectors)": { - "us": 163.5, + "us": 163.0, + "level": "partial" + }, + "On-Demand": { + "us": 165.0, "level": "partial" }, "On-Demand structs": { - "us": 167.1, + "us": 166.7, "level": "partial" }, - "DOM": { - "us": 300.9, + "DOM (reused)": { + "us": 301.6, "level": "full" }, - "DOM (reused)": { - "us": 301.8, + "DOM": { + "us": 302.7, "level": "full" } } @@ -7362,14 +7910,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 296.9, + "us": 296.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 296.9, + "us": 296.6, "level": "no UTF-8" } } @@ -7377,44 +7925,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 419.8, + "us": 419.5, "level": "full" }, "best_any": { "variant": "structs", - "us": 293.4, + "us": 295.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 293.4, + "us": 295.1, "level": "partial" }, "structs (validate_skipped)": { - "us": 419.8, + "us": 419.5, "level": "full" }, "lazy_json": { - "us": 448.6, - "level": "partial" - }, - "generic (double)": { - "us": 2194.6, + "us": 444.4, "level": "partial" }, "generic (double, strict)": { - "us": 2216.3, + "us": 2205.2, "level": "full" }, - "generic": { - "us": 2880.0, + "generic (double)": { + "us": 2222.0, "level": "partial" }, "generic (strict)": { - "us": 2888.0, + "us": 2927.1, "level": "full" + }, + "generic": { + "us": 2964.5, + "level": "partial" } }, "excluded": { @@ -7424,35 +7972,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 767.2, + "us": 767.6, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 767.2, + "us": 767.6, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1322.5, + "us": 1316.5, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1322.5, + "us": 1316.5, "level": "full" }, "variants": { "parse_into structs": { - "us": 767.2, + "us": 767.6, "level": "full" }, "parser (reused)": { - "us": 1322.5, + "us": 1316.5, "level": "full" }, "parse": { - "us": 1324.8, + "us": 1325.8, "level": "full" } }, @@ -7463,55 +8011,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1260.7, + "us": 1270.5, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 835.4, + "us": 845.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1503.0, + "us": 1507.4, "level": "full" }, "best_reused_any": { "variant": "Document (reused allocator) (no encoding check)", - "us": 1412.4, + "us": 1412.9, "level": "no UTF-8" }, "variants": { - "insitu (copy) (no encoding check)": { - "us": 835.4, + "insitu (copy untimed) (no encoding check)": { + "us": 818.1, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 845.1, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1171.1, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1237.8, + "level": "full" + }, "insitu (copy)": { - "us": 1260.7, + "us": 1270.5, "level": "full" }, "Document (reused allocator) (no encoding check)": { - "us": 1412.4, + "us": 1412.9, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 1435.3, + "us": 1446.7, "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 1476.9, + "us": 1501.0, "level": "no UTF-8" }, "Document (reused allocator)": { - "us": 1503.0, + "us": 1507.4, + "level": "full" + }, + "Document (string stream)": { + "us": 2027.8, "level": "full" }, "Document": { - "us": 2289.9, + "us": 2281.8, "level": "full" }, "Document (raw numbers)": { - "us": 2321.5, + "us": 2357.6, "level": "full" } } @@ -7597,35 +8161,39 @@ "nlohmann json_document": { "best": { "variant": "parse", - "us": 530.3, + "us": 547.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 530.3, + "us": 547.7, "level": "full" }, "best_reused": { "variant": "read (reused)", - "us": 530.2, + "us": 546.2, "level": "full" }, "best_reused_any": { "variant": "read (reused)", - "us": 530.2, + "us": 546.2, "level": "full" }, "variants": { "read (reused)": { - "us": 530.2, + "us": 546.2, "level": "full" }, "parse": { - "us": 530.3, + "us": 547.7, + "level": "full" + }, + "parse_copy": { + "us": 570.6, "level": "full" }, "structs (from_json)": { - "us": 562.8, + "us": 571.1, "level": "full" } } @@ -7633,63 +8201,67 @@ "nlohmann json": { "best": { "variant": "parse", - "us": 4722.3, + "us": 4968.0, "level": "full" }, "best_any": { "variant": "parse", - "us": 4722.3, + "us": 4968.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 4722.3, + "us": 4968.0, "level": "full" }, "structs (from_json)": { - "us": 4806.0, + "us": 5127.0, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy)", - "us": 516.7, + "variant": "read", + "us": 514.9, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 516.7, + "variant": "read", + "us": 514.9, "level": "full" }, "best_reused": { "variant": "read (reused allocator)", - "us": 517.1, + "us": 515.1, "level": "full" }, "best_reused_any": { "variant": "read (reused allocator)", - "us": 517.1, + "us": 515.1, "level": "full" }, "variants": { - "insitu (copy)": { - "us": 516.7, - "level": "full" - }, - "read (reused allocator)": { - "us": 517.1, + "insitu (copy untimed)": { + "us": 482.3, "level": "full" }, "read": { - "us": 517.5, + "us": 514.9, + "level": "full" + }, + "read (reused allocator)": { + "us": 515.1, "level": "full" }, "read (raw numbers)": { - "us": 533.1, + "us": 532.4, + "level": "full" + }, + "insitu (copy)": { + "us": 541.5, "level": "full" } } @@ -7697,47 +8269,47 @@ "simdjson": { "best": { "variant": "DOM", - "us": 592.7, + "us": 591.1, "level": "full" }, "best_any": { "variant": "On-Demand", - "us": 329.3, + "us": 330.6, "level": "partial" }, "best_reused": { "variant": "DOM (reused)", - "us": 592.7, + "us": 593.5, "level": "full" }, "best_reused_any": { "variant": "On-Demand (reused)", - "us": 328.5, + "us": 329.2, "level": "partial" }, "variants": { "On-Demand (reused)": { - "us": 328.5, + "us": 329.2, "level": "partial" }, "On-Demand": { - "us": 329.3, + "us": 330.6, "level": "partial" }, "On-Demand (key selectors)": { - "us": 335.4, + "us": 331.2, "level": "partial" }, "On-Demand structs": { - "us": 369.6, + "us": 381.5, "level": "partial" }, "DOM": { - "us": 592.7, + "us": 591.1, "level": "full" }, "DOM (reused)": { - "us": 592.7, + "us": 593.5, "level": "full" } } @@ -7746,14 +8318,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 707.0, + "us": 704.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 707.0, + "us": 704.0, "level": "no UTF-8" } } @@ -7761,44 +8333,44 @@ "Glaze": { "best": { "variant": "structs (validate_skipped)", - "us": 672.8, + "us": 712.3, "level": "full" }, "best_any": { "variant": "structs", - "us": 203.7, + "us": 208.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "structs": { - "us": 203.7, + "us": 208.3, "level": "partial" }, "structs (validate_skipped)": { - "us": 672.8, + "us": 712.3, "level": "full" }, "lazy_json": { - "us": 1456.3, - "level": "partial" - }, - "generic (double)": { - "us": 3187.6, + "us": 1545.7, "level": "partial" }, "generic (double, strict)": { - "us": 3209.8, + "us": 3344.9, "level": "full" }, - "generic (strict)": { - "us": 4833.1, - "level": "full" + "generic (double)": { + "us": 3474.6, + "level": "partial" }, "generic": { - "us": 4843.3, + "us": 5185.9, "level": "partial" + }, + "generic (strict)": { + "us": 5524.8, + "level": "full" } }, "excluded": { @@ -7808,35 +8380,35 @@ "Boost.JSON": { "best": { "variant": "parse_into structs", - "us": 1060.1, + "us": 1140.5, "level": "full" }, "best_any": { "variant": "parse_into structs", - "us": 1060.1, + "us": 1140.5, "level": "full" }, "best_reused": { "variant": "parser (reused)", - "us": 1584.4, + "us": 1617.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused)", - "us": 1584.4, + "us": 1617.2, "level": "full" }, "variants": { "parse_into structs": { - "us": 1060.1, - "level": "full" - }, - "parser (reused)": { - "us": 1584.4, + "us": 1140.5, "level": "full" }, "parse": { - "us": 1584.7, + "us": 1609.5, + "level": "full" + }, + "parser (reused)": { + "us": 1617.2, "level": "full" } }, @@ -7847,55 +8419,71 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 1638.1, + "us": 1662.8, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1425.2, + "us": 1569.5, "level": "no UTF-8" }, "best_reused": { "variant": "Document (reused allocator)", - "us": 1787.4, + "us": 1812.1, "level": "full" }, "best_reused_any": { - "variant": "Document (reused allocator) (no encoding check)", - "us": 1774.2, - "level": "no UTF-8" + "variant": "Document (reused allocator)", + "us": 1812.1, + "level": "full" }, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1412.0, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1425.2, + "us": 1569.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 1638.1, + "us": 1662.8, "level": "full" }, - "Document (no encoding check)": { - "us": 1737.4, + "insitu (copy untimed)": { + "us": 1665.6, + "level": "full" + }, + "Document (reused allocator)": { + "us": 1812.1, + "level": "full" + }, + "Document (string stream) (no encoding check)": { + "us": 1853.1, "level": "no UTF-8" }, "Document (reused allocator) (no encoding check)": { - "us": 1774.2, + "us": 1854.2, "level": "no UTF-8" }, - "Document (reused allocator)": { - "us": 1787.4, - "level": "full" + "Document (no encoding check)": { + "us": 1914.7, + "level": "no UTF-8" }, "Document (raw numbers) (no encoding check)": { - "us": 2037.4, + "us": 2121.9, "level": "no UTF-8" }, + "Document (string stream)": { + "us": 2257.7, + "level": "full" + }, "Document": { - "us": 2375.1, + "us": 2502.0, "level": "full" }, "Document (raw numbers)": { - "us": 2608.6, + "us": 2912.4, "level": "full" } } @@ -7983,23 +8571,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 534.2, + "us": 531.8, "level": "full" }, "best_any": { "variant": "editable", - "us": 534.2, + "us": 531.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable": { - "us": 534.2, + "us": 531.8, "level": "full" }, "editable (source numbers)": { - "us": 559.0, + "us": 569.2, "level": "full" } } @@ -8007,47 +8595,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2840.1, + "us": 2911.8, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2840.1, + "us": 2911.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 2840.1, + "us": 2911.8, "level": "full" }, "parse": { - "us": 3840.1, + "us": 3912.8, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 806.1, + "variant": "mut copy", + "us": 803.9, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 806.1, + "variant": "mut copy", + "us": 803.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 806.1, + "insitu (copy untimed) + mut copy": { + "us": 761.1, "level": "full" }, "mut copy": { - "us": 806.8, + "us": 803.9, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 804.0, "level": "full" } } @@ -8056,14 +8648,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 634.9, + "us": 636.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 634.9, + "us": 636.7, "level": "no UTF-8" } } @@ -8071,23 +8663,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3600.3, + "us": 3524.7, "level": "full" }, "best_any": { "variant": "generic", - "us": 3541.8, + "us": 3487.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 3541.8, + "us": 3487.4, "level": "partial" }, "generic (strict)": { - "us": 3600.3, + "us": 3524.7, "level": "full" } }, @@ -8099,19 +8691,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1921.1, + "us": 1962.7, "level": "full" }, "best_any": { "variant": "parse", - "us": 1921.1, + "us": 1962.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1921.1, + "us": 1962.7, "level": "full" } } @@ -8119,31 +8711,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2333.7, + "us": 2341.6, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1891.6, + "us": 1864.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) (no encoding check)": { + "us": 1837.8, + "level": "no UTF-8" + }, "insitu (copy) (no encoding check)": { - "us": 1891.6, + "us": 1864.1, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 2046.0, "level": "no UTF-8" }, "Document (no encoding check)": { - "us": 2111.1, + "us": 2114.7, "level": "no UTF-8" }, + "insitu (copy untimed)": { + "us": 2333.0, + "level": "full" + }, "insitu (copy)": { - "us": 2333.7, + "us": 2341.6, "level": "full" }, "Document": { - "us": 2985.1, + "us": 2970.0, + "level": "full" + }, + "Document (string stream)": { + "us": 3017.3, "level": "full" } } @@ -8217,23 +8825,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 1090.7, + "us": 1116.2, "level": "full" }, "best_any": { "variant": "editable", - "us": 1090.7, + "us": 1116.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable": { - "us": 1090.7, + "us": 1116.2, "level": "full" }, "editable (source numbers)": { - "us": 1116.3, + "us": 1140.7, "level": "full" } } @@ -8241,23 +8849,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 4985.1, + "us": 4999.1, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 4985.1, + "us": 4999.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 4985.1, + "us": 4999.1, "level": "full" }, "parse": { - "us": 5725.7, + "us": 5737.2, "level": "full" } } @@ -8265,23 +8873,27 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 1711.5, + "us": 1697.2, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 1711.5, + "us": 1697.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 1590.3, + "level": "full" + }, "mut copy": { - "us": 1711.5, + "us": 1697.2, "level": "full" }, "insitu (copy) + mut copy": { - "us": 1715.0, + "us": 1708.2, "level": "full" } } @@ -8290,14 +8902,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1558.4, + "us": 1559.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1558.4, + "us": 1559.1, "level": "no UTF-8" } } @@ -8305,24 +8917,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 6812.3, + "us": 6551.1, "level": "full" }, "best_any": { - "variant": "generic (strict)", - "us": 6812.3, - "level": "full" + "variant": "generic", + "us": 6451.0, + "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (strict)": { - "us": 6812.3, - "level": "full" - }, "generic": { - "us": 6826.0, + "us": 6451.0, "level": "partial" + }, + "generic (strict)": { + "us": 6551.1, + "level": "full" } }, "excluded": { @@ -8333,19 +8945,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 2957.3, + "us": 2936.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 2957.3, + "us": 2936.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 2957.3, + "us": 2936.1, "level": "full" } } @@ -8353,31 +8965,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 3188.1, + "us": 3242.4, "level": "full" }, "best_any": { - "variant": "Document (no encoding check)", - "us": 2898.1, + "variant": "insitu (copy) (no encoding check)", + "us": 2924.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "Document (no encoding check)": { - "us": 2898.1, + "insitu (copy untimed) (no encoding check)": { + "us": 2836.4, "level": "no UTF-8" }, "insitu (copy) (no encoding check)": { - "us": 2919.0, + "us": 2924.6, "level": "no UTF-8" }, + "Document (no encoding check)": { + "us": 2925.1, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 3066.4, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 3133.4, + "level": "full" + }, "insitu (copy)": { - "us": 3188.1, + "us": 3242.4, "level": "full" }, "Document": { - "us": 3573.1, + "us": 3522.6, + "level": "full" + }, + "Document (string stream)": { + "us": 3593.8, "level": "full" } } @@ -8451,23 +9079,23 @@ "nlohmann json_document": { "best": { "variant": "editable (source numbers)", - "us": 2605.8, + "us": 2702.4, "level": "full" }, "best_any": { "variant": "editable (source numbers)", - "us": 2605.8, + "us": 2702.4, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable (source numbers)": { - "us": 2605.8, + "us": 2702.4, "level": "full" }, "editable": { - "us": 5634.2, + "us": 5713.5, "level": "full" } } @@ -8475,23 +9103,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 15317.0, + "us": 15603.3, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 15317.0, + "us": 15603.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 15317.0, + "us": 15603.3, "level": "full" }, "parse": { - "us": 15869.0, + "us": 16014.3, "level": "full" } } @@ -8499,23 +9127,27 @@ "yyjson": { "best": { "variant": "insitu (copy) + mut copy", - "us": 9794.1, + "us": 10020.0, "level": "full" }, "best_any": { "variant": "insitu (copy) + mut copy", - "us": 9794.1, + "us": 10020.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 9860.1, + "level": "full" + }, "insitu (copy) + mut copy": { - "us": 9794.1, + "us": 10020.0, "level": "full" }, "mut copy": { - "us": 9813.6, + "us": 10092.3, "level": "full" } } @@ -8524,14 +9156,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 8793.4, + "us": 8936.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 8793.4, + "us": 8936.1, "level": "no UTF-8" } } @@ -8539,23 +9171,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 22770.9, + "us": 23644.2, "level": "full" }, "best_any": { "variant": "generic", - "us": 22359.5, + "us": 23383.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 22359.5, + "us": 23383.4, "level": "partial" }, "generic (strict)": { - "us": 22770.9, + "us": 23644.2, "level": "full" } }, @@ -8567,19 +9199,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 13679.4, + "us": 13413.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 13679.4, + "us": 13413.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 13679.4, + "us": 13413.8, "level": "full" } } @@ -8587,32 +9219,48 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 20423.7, + "us": 20517.7, "level": "full" }, "best_any": { - "variant": "insitu (copy)", - "us": 20423.7, - "level": "full" + "variant": "Document (string stream) (no encoding check)", + "us": 20320.1, + "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy)": { - "us": 20423.7, - "level": "full" - }, - "Document (no encoding check)": { - "us": 20426.8, + "Document (string stream) (no encoding check)": { + "us": 20320.1, "level": "no UTF-8" }, + "insitu (copy untimed) (no encoding check)": { + "us": 20404.6, + "level": "no UTF-8" + }, + "insitu (copy)": { + "us": 20517.7, + "level": "full" + }, + "insitu (copy untimed)": { + "us": 20565.1, + "level": "full" + }, "insitu (copy) (no encoding check)": { - "us": 20483.2, + "us": 20868.2, "level": "no UTF-8" }, "Document": { - "us": 20598.2, + "us": 21148.6, "level": "full" + }, + "Document (string stream)": { + "us": 21167.3, + "level": "full" + }, + "Document (no encoding check)": { + "us": 21213.5, + "level": "no UTF-8" } } }, @@ -8685,23 +9333,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 192273.7, + "us": 192363.1, "level": "full" }, "best_any": { "variant": "editable", - "us": 192273.7, + "us": 192363.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable": { - "us": 192273.7, + "us": 192363.1, "level": "full" }, "editable (source numbers)": { - "us": 196592.7, + "us": 192901.1, "level": "full" } } @@ -8709,23 +9357,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 649500.3, + "us": 604744.5, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 649500.3, + "us": 604744.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 649500.3, + "us": 604744.5, "level": "full" }, "parse": { - "us": 842186.7, + "us": 797374.8, "level": "full" } } @@ -8733,23 +9381,27 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 314080.6, + "us": 318307.9, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 314080.6, + "us": 318307.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { + "insitu (copy untimed) + mut copy": { + "us": 271226.6, + "level": "full" + }, "mut copy": { - "us": 314080.6, + "us": 318307.9, "level": "full" }, "insitu (copy) + mut copy": { - "us": 321483.9, + "us": 318834.1, "level": "full" } } @@ -8758,14 +9410,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 186660.6, + "us": 186232.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 186660.6, + "us": 186232.4, "level": "no UTF-8" } } @@ -8773,23 +9425,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 676289.0, + "us": 661940.8, "level": "full" }, "best_any": { "variant": "generic", - "us": 675224.8, + "us": 632543.1, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 675224.8, + "us": 632543.1, "level": "partial" }, "generic (strict)": { - "us": 676289.0, + "us": 661940.8, "level": "full" } }, @@ -8801,19 +9453,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 357635.8, + "us": 356243.6, "level": "full" }, "best_any": { "variant": "parse", - "us": 357635.8, + "us": 356243.6, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 357635.8, + "us": 356243.6, "level": "full" } } @@ -8821,31 +9473,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 354478.4, + "us": 362000.7, "level": "full" }, "best_any": { - "variant": "insitu (copy) (no encoding check)", - "us": 297772.8, + "variant": "Document (string stream) (no encoding check)", + "us": 296360.9, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 297772.8, + "insitu (copy untimed) (no encoding check)": { + "us": 271888.2, "level": "no UTF-8" }, + "Document (string stream) (no encoding check)": { + "us": 296360.9, + "level": "no UTF-8" + }, + "insitu (copy) (no encoding check)": { + "us": 302575.6, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 315892.3, + "level": "full" + }, "Document (no encoding check)": { - "us": 334231.2, + "us": 332533.5, "level": "no UTF-8" }, "insitu (copy)": { - "us": 354478.4, + "us": 362000.7, + "level": "full" + }, + "Document (string stream)": { + "us": 407503.6, "level": "full" }, "Document": { - "us": 432111.8, + "us": 452671.2, "level": "full" } } @@ -8935,7 +9603,7 @@ "level": "full" }, "editable (source numbers)": { - "us": 3.2, + "us": 3.3, "level": "full" } } @@ -8943,23 +9611,23 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 14.3, + "us": 13.5, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 14.3, + "us": 13.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 14.3, + "us": 13.5, "level": "full" }, "parse": { - "us": 20.4, + "us": 19.2, "level": "full" } } @@ -8967,23 +9635,27 @@ "yyjson": { "best": { "variant": "mut copy", - "us": 3.8, + "us": 3.7, "level": "full" }, "best_any": { "variant": "mut copy", - "us": 3.8, + "us": 3.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "mut copy": { - "us": 3.8, + "us": 3.7, "level": "full" }, "insitu (copy) + mut copy": { - "us": 3.8, + "us": 3.7, + "level": "full" + }, + "insitu (copy untimed) + mut copy": { + "us": 3.7, "level": "full" } } @@ -8992,14 +9664,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 3.4, + "us": 3.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 3.4, + "us": 3.3, "level": "no UTF-8" } } @@ -9007,23 +9679,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 15.9, + "us": 15.6, "level": "full" }, "best_any": { "variant": "generic", - "us": 15.8, + "us": 15.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 15.8, + "us": 15.3, "level": "partial" }, "generic (strict)": { - "us": 15.9, + "us": 15.6, "level": "full" } }, @@ -9035,19 +9707,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 9.2, + "us": 9.1, "level": "full" }, "best_any": { "variant": "parse", - "us": 9.2, + "us": 9.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 9.2, + "us": 9.1, "level": "full" } } @@ -9055,31 +9727,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 11.8, + "us": 11.1, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 7.7, + "us": 7.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { + "insitu (copy untimed) (no encoding check)": { "us": 7.7, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 7.8, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 9.2, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 11.0, + "level": "full" + }, "insitu (copy)": { - "us": 11.8, + "us": 11.1, "level": "full" }, "Document (no encoding check)": { - "us": 12.0, + "us": 12.1, "level": "no UTF-8" }, + "Document (string stream)": { + "us": 15.4, + "level": "full" + }, "Document": { - "us": 17.5, + "us": 17.0, "level": "full" } } @@ -9153,23 +9841,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 484.5, + "us": 480.1, "level": "full" }, "best_any": { "variant": "editable", - "us": 484.5, + "us": 480.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable": { - "us": 484.5, + "us": 480.1, "level": "full" }, "editable (source numbers)": { - "us": 504.9, + "us": 512.0, "level": "full" } } @@ -9177,47 +9865,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 2729.9, + "us": 2702.2, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 2729.9, + "us": 2702.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 2729.9, + "us": 2702.2, "level": "full" }, "parse": { - "us": 3703.3, + "us": 3686.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "mut copy", - "us": 734.8, + "variant": "insitu (copy) + mut copy", + "us": 726.3, "level": "full" }, "best_any": { - "variant": "mut copy", - "us": 734.8, + "variant": "insitu (copy) + mut copy", + "us": 726.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "mut copy": { - "us": 734.8, + "insitu (copy untimed) + mut copy": { + "us": 699.7, "level": "full" }, "insitu (copy) + mut copy": { - "us": 739.5, + "us": 726.3, + "level": "full" + }, + "mut copy": { + "us": 731.1, "level": "full" } } @@ -9226,14 +9918,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 518.0, + "us": 509.1, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 518.0, + "us": 509.1, "level": "no UTF-8" } } @@ -9241,24 +9933,24 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3261.8, + "us": 3289.0, "level": "full" }, "best_any": { - "variant": "generic (strict)", - "us": 3261.8, - "level": "full" + "variant": "generic", + "us": 3262.0, + "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { - "generic (strict)": { - "us": 3261.8, - "level": "full" - }, "generic": { - "us": 3278.1, + "us": 3262.0, "level": "partial" + }, + "generic (strict)": { + "us": 3289.0, + "level": "full" } }, "excluded": { @@ -9269,19 +9961,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 1846.8, + "us": 1787.8, "level": "full" }, "best_any": { "variant": "parse", - "us": 1846.8, + "us": 1787.8, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 1846.8, + "us": 1787.8, "level": "full" } } @@ -9289,31 +9981,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2019.3, + "us": 1992.5, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 1587.8, + "us": 1576.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 1587.8, + "insitu (copy untimed) (no encoding check)": { + "us": 1547.9, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 1576.0, + "level": "no UTF-8" + }, + "Document (string stream) (no encoding check)": { + "us": 1799.3, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 1950.2, + "level": "full" + }, "insitu (copy)": { - "us": 2019.3, + "us": 1992.5, "level": "full" }, "Document (no encoding check)": { - "us": 2064.3, + "us": 2055.3, "level": "no UTF-8" }, + "Document (string stream)": { + "us": 2652.6, + "level": "full" + }, "Document": { - "us": 2963.9, + "us": 2904.4, "level": "full" } } @@ -9387,23 +10095,23 @@ "nlohmann json_document": { "best": { "variant": "editable", - "us": 867.0, + "us": 879.7, "level": "full" }, "best_any": { "variant": "editable", - "us": 867.0, + "us": 879.7, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "editable": { - "us": 867.0, + "us": 879.7, "level": "full" }, "editable (source numbers)": { - "us": 895.6, + "us": 905.9, "level": "full" } } @@ -9411,47 +10119,51 @@ "nlohmann json": { "best": { "variant": "ordered_json", - "us": 4710.5, + "us": 4806.3, "level": "full" }, "best_any": { "variant": "ordered_json", - "us": 4710.5, + "us": 4806.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "ordered_json": { - "us": 4710.5, + "us": 4806.3, "level": "full" }, "parse": { - "us": 5395.1, + "us": 5720.2, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + mut copy", - "us": 1229.5, + "variant": "mut copy", + "us": 1218.5, "level": "full" }, "best_any": { - "variant": "insitu (copy) + mut copy", - "us": 1229.5, + "variant": "mut copy", + "us": 1218.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) + mut copy": { - "us": 1229.5, + "insitu (copy untimed) + mut copy": { + "us": 1183.3, "level": "full" }, "mut copy": { - "us": 1231.4, + "us": 1218.5, + "level": "full" + }, + "insitu (copy) + mut copy": { + "us": 1218.7, "level": "full" } } @@ -9460,14 +10172,14 @@ "best": null, "best_any": { "variant": "Document", - "us": 1222.8, + "us": 1212.8, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document": { - "us": 1222.8, + "us": 1212.8, "level": "no UTF-8" } } @@ -9475,23 +10187,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 5560.9, + "us": 5896.5, "level": "full" }, "best_any": { "variant": "generic", - "us": 5556.3, + "us": 5779.2, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 5556.3, + "us": 5779.2, "level": "partial" }, "generic (strict)": { - "us": 5560.9, + "us": 5896.5, "level": "full" } }, @@ -9503,19 +10215,19 @@ "Boost.JSON": { "best": { "variant": "parse", - "us": 2619.0, + "us": 2632.9, "level": "full" }, "best_any": { "variant": "parse", - "us": 2619.0, + "us": 2632.9, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse": { - "us": 2619.0, + "us": 2632.9, "level": "full" } } @@ -9523,31 +10235,47 @@ "RapidJSON": { "best": { "variant": "insitu (copy)", - "us": 2621.4, + "us": 2703.7, "level": "full" }, "best_any": { "variant": "insitu (copy) (no encoding check)", - "us": 2434.4, + "us": 2514.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { - "insitu (copy) (no encoding check)": { - "us": 2434.4, + "insitu (copy untimed) (no encoding check)": { + "us": 2453.3, "level": "no UTF-8" }, + "insitu (copy) (no encoding check)": { + "us": 2514.7, + "level": "no UTF-8" + }, + "insitu (copy untimed)": { + "us": 2616.7, + "level": "full" + }, "insitu (copy)": { - "us": 2621.4, + "us": 2703.7, "level": "full" }, "Document (no encoding check)": { - "us": 2716.5, + "us": 2759.3, "level": "no UTF-8" }, + "Document (string stream) (no encoding check)": { + "us": 2848.0, + "level": "no UTF-8" + }, + "Document (string stream)": { + "us": 3273.4, + "level": "full" + }, "Document": { - "us": 3370.4, + "us": 3433.3, "level": "full" } } @@ -9622,36 +10350,40 @@ "twitter": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 483.6, + "variant": "parse + dump", + "us": 482.7, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 483.6, + "variant": "parse + dump", + "us": 482.7, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 477.4, + "us": 505.9, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 477.4, + "us": 505.9, "level": "full" }, "variants": { + "parse + dump": { + "us": 482.7, + "level": "full" + }, "read + dump (reused)": { - "us": 477.4, + "us": 505.9, "level": "full" }, "parse + dump (source numbers)": { - "us": 483.6, + "us": 522.4, "level": "full" }, - "parse + dump": { - "us": 484.6, + "parse_copy + dump": { + "us": 564.1, "level": "full" } } @@ -9659,59 +10391,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 3753.4, + "us": 4143.3, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 3753.4, + "us": 4143.3, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 3753.4, + "us": 4143.3, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 632.7, + "variant": "read + write", + "us": 660.6, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 632.7, + "variant": "read + write", + "us": 660.6, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 634.4, + "us": 644.0, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 634.4, + "us": 644.0, "level": "full" }, "variants": { - "insitu (copy) + write": { - "us": 632.7, + "insitu (copy untimed) + write": { + "us": 591.7, "level": "full" }, "read + write (reused allocator)": { - "us": 634.4, - "level": "full" - }, - "read (raw numbers) + write": { - "us": 640.3, + "us": 644.0, "level": "full" }, "read + write": { - "us": 670.7, + "us": 660.6, + "level": "full" + }, + "read (raw numbers) + write": { + "us": 683.8, + "level": "full" + }, + "insitu (copy) + write": { + "us": 687.8, "level": "full" } } @@ -9719,35 +10455,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 795.4, + "us": 742.5, "level": "full" }, "best_any": { "variant": "minify", - "us": 122.6, + "us": 123.3, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 789.4, + "us": 733.5, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 789.4, + "us": 733.5, "level": "full" }, "variants": { "minify": { - "us": 122.6, + "us": 123.3, "level": "partial" }, "DOM (reused) + to_string": { - "us": 789.4, + "us": 733.5, "level": "full" }, "DOM + to_string": { - "us": 795.4, + "us": 742.5, "level": "full" } } @@ -9756,14 +10492,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 647.8, + "us": 695.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 647.8, + "us": 695.4, "level": "no UTF-8" } } @@ -9771,27 +10507,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3324.5, + "us": 3779.5, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 418.6, + "us": 422.3, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 418.6, + "us": 422.3, "level": "partial" }, "generic": { - "us": 3300.7, + "us": 3665.8, "level": "partial" }, "generic (strict)": { - "us": 3324.5, + "us": 3779.5, "level": "full" } }, @@ -9803,31 +10539,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1933.1, + "us": 2085.6, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1933.1, + "us": 2085.6, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1936.3, + "us": 2129.4, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1936.3, + "us": 2129.4, "level": "full" }, "variants": { "parse + serialize": { - "us": 1933.1, + "us": 2085.6, "level": "full" }, "parser (reused) + serialize": { - "us": 1936.3, + "us": 2129.4, "level": "full" } } @@ -9835,55 +10571,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 2715.6, + "us": 3014.9, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 1836.8, + "us": 1978.1, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2240.6, + "us": 2396.2, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2150.2, + "us": 2382.6, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 1836.8, + "us": 1978.1, + "level": "no UTF-8" + }, + "SAX to Writer (string stream) (no encoding check)": { + "us": 2000.4, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1861.9, + "us": 2052.2, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2138.9, + "us": 2257.7, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 2150.2, + "us": 2382.6, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 2240.6, + "us": 2396.2, "level": "full" }, "SAX to Writer": { - "us": 2715.6, + "us": 3014.9, + "level": "full" + }, + "SAX to Writer (string stream)": { + "us": 3034.3, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 2765.3, + "us": 3095.6, "level": "full" }, "Document + Writer": { - "us": 2999.1, + "us": 3262.6, "level": "full" } } @@ -9952,36 +10696,40 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 990.1, + "variant": "parse + dump", + "us": 1014.3, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 990.1, + "variant": "parse + dump", + "us": 1014.3, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 1005.5, + "us": 1015.4, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 1005.5, + "us": 1015.4, "level": "full" }, "variants": { - "parse + dump (source numbers)": { - "us": 990.1, - "level": "full" - }, "parse + dump": { - "us": 1004.1, + "us": 1014.3, "level": "full" }, "read + dump (reused)": { - "us": 1005.5, + "us": 1015.4, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 1021.2, + "level": "full" + }, + "parse_copy + dump": { + "us": 1126.3, "level": "full" } } @@ -9989,19 +10737,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 5668.8, + "us": 5702.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 5668.8, + "us": 5702.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 5668.8, + "us": 5702.5, "level": "full" } } @@ -10009,39 +10757,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 1267.6, + "us": 1261.8, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 1267.6, + "us": 1261.8, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 1351.1, + "us": 1351.3, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 1351.1, + "us": 1351.3, "level": "full" }, "variants": { - "read (raw numbers) + write": { - "us": 1267.6, + "insitu (copy untimed) + write": { + "us": 1205.1, "level": "full" }, - "read + write": { - "us": 1326.7, + "read (raw numbers) + write": { + "us": 1261.8, "level": "full" }, "insitu (copy) + write": { - "us": 1327.2, + "us": 1310.3, + "level": "full" + }, + "read + write": { + "us": 1314.9, "level": "full" }, "read + write (reused allocator)": { - "us": 1351.1, + "us": 1351.3, "level": "full" } } @@ -10049,35 +10801,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1395.7, + "us": 1392.7, "level": "full" }, "best_any": { "variant": "minify", - "us": 336.5, + "us": 336.8, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 1389.0, + "us": 1377.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 1389.0, + "us": 1377.4, "level": "full" }, "variants": { "minify": { - "us": 336.5, + "us": 336.8, "level": "partial" }, "DOM (reused) + to_string": { - "us": 1389.0, + "us": 1377.4, "level": "full" }, "DOM + to_string": { - "us": 1395.7, + "us": 1392.7, "level": "full" } } @@ -10086,14 +10838,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1550.7, + "us": 1540.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1550.7, + "us": 1540.7, "level": "no UTF-8" } } @@ -10101,27 +10853,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 6163.6, + "us": 6416.4, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 1112.3, + "us": 1144.4, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 1112.3, + "us": 1144.4, "level": "partial" }, "generic": { - "us": 6130.0, + "us": 6261.5, "level": "partial" }, "generic (strict)": { - "us": 6163.6, + "us": 6416.4, "level": "full" } }, @@ -10133,31 +10885,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2926.7, + "us": 2919.0, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2926.7, + "us": 2919.0, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 2920.5, + "us": 2931.1, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 2920.5, + "us": 2931.1, "level": "full" }, "variants": { - "parser (reused) + serialize": { - "us": 2920.5, + "parse + serialize": { + "us": 2919.0, "level": "full" }, - "parse + serialize": { - "us": 2926.7, + "parser (reused) + serialize": { + "us": 2931.1, "level": "full" } } @@ -10165,55 +10917,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer", - "us": 3081.9, + "us": 3012.3, "level": "full" }, "best_any": { "variant": "SAX to Writer (no encoding check)", - "us": 2508.5, + "us": 2492.7, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2965.7, + "us": 2994.2, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2910.0, + "us": 2981.0, "level": "no UTF-8" }, "variants": { "SAX to Writer (no encoding check)": { - "us": 2508.5, + "us": 2492.7, + "level": "no UTF-8" + }, + "SAX to Writer (string stream) (no encoding check)": { + "us": 2550.9, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2813.7, + "us": 2795.1, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2844.5, + "us": 2933.5, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 2910.0, + "us": 2981.0, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 2965.7, + "us": 2994.2, "level": "full" }, "SAX to Writer": { - "us": 3081.9, + "us": 3012.3, + "level": "full" + }, + "SAX to Writer (string stream)": { + "us": 3197.5, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 3329.0, + "us": 3321.1, "level": "full" }, "Document + Writer": { - "us": 3542.7, + "us": 3479.6, "level": "full" } } @@ -10283,35 +11043,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 2236.3, + "us": 2620.4, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 2236.3, + "us": 2620.4, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 5289.2, + "us": 5327.5, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 5289.2, + "us": 5327.5, "level": "full" }, "variants": { "parse + dump (source numbers)": { - "us": 2236.3, - "level": "full" - }, - "parse + dump": { - "us": 5260.5, + "us": 2620.4, "level": "full" }, "read + dump (reused)": { - "us": 5289.2, + "us": 5327.5, + "level": "full" + }, + "parse_copy + dump": { + "us": 5459.1, + "level": "full" + }, + "parse + dump": { + "us": 5559.5, "level": "full" } } @@ -10319,19 +11083,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 15646.8, + "us": 16463.2, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 15646.8, + "us": 16463.2, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 15646.8, + "us": 16463.2, "level": "full" } } @@ -10339,39 +11103,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 2942.0, + "us": 3106.3, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 2942.0, + "us": 3106.3, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 8887.0, + "us": 9285.9, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 8887.0, + "us": 9285.9, "level": "full" }, "variants": { "read (raw numbers) + write": { - "us": 2942.0, - "level": "full" - }, - "read + write (reused allocator)": { - "us": 8887.0, - "level": "full" - }, - "insitu (copy) + write": { - "us": 8944.4, + "us": 3106.3, "level": "full" }, "read + write": { - "us": 8947.6, + "us": 9008.1, + "level": "full" + }, + "insitu (copy untimed) + write": { + "us": 9225.8, + "level": "full" + }, + "insitu (copy) + write": { + "us": 9276.4, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 9285.9, "level": "full" } } @@ -10379,35 +11147,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 8341.9, + "us": 8808.4, "level": "full" }, "best_any": { "variant": "minify", - "us": 423.2, + "us": 433.3, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 8112.6, + "us": 8886.2, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 8112.6, + "us": 8886.2, "level": "full" }, "variants": { "minify": { - "us": 423.2, + "us": 433.3, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 8112.6, + "DOM + to_string": { + "us": 8808.4, "level": "full" }, - "DOM + to_string": { - "us": 8341.9, + "DOM (reused) + to_string": { + "us": 8886.2, "level": "full" } } @@ -10416,14 +11184,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 8645.6, + "us": 8837.7, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 8645.6, + "us": 8837.7, "level": "no UTF-8" } } @@ -10431,27 +11199,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 22576.5, + "us": 23764.9, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 2094.7, + "us": 2349.8, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 2094.7, + "us": 2349.8, "level": "partial" }, "generic": { - "us": 22473.3, + "us": 23104.6, "level": "partial" }, "generic (strict)": { - "us": 22576.5, + "us": 23764.9, "level": "full" } }, @@ -10463,31 +11231,31 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 13579.8, + "us": 13973.5, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 13579.8, + "us": 13973.5, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 13526.1, + "us": 13462.6, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 13526.1, + "us": 13462.6, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 13526.1, + "us": 13462.6, "level": "full" }, "parse + serialize": { - "us": 13579.8, + "us": 13973.5, "level": "full" } } @@ -10495,55 +11263,63 @@ "RapidJSON": { "best": { "variant": "SAX to Writer (raw numbers)", - "us": 15054.1, + "us": 15523.3, "level": "full" }, "best_any": { "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 14997.8, + "us": 15512.0, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 20500.1, + "us": 20813.2, "level": "full" }, "best_reused_any": { - "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 20436.5, - "level": "no UTF-8" + "variant": "Document + Writer (reused allocator)", + "us": 20813.2, + "level": "full" }, "variants": { "SAX to Writer (raw numbers) (no encoding check)": { - "us": 14997.8, + "us": 15512.0, "level": "no UTF-8" }, "SAX to Writer (raw numbers)": { - "us": 15054.1, + "us": 15523.3, + "level": "full" + }, + "Document + Writer (reused allocator)": { + "us": 20813.2, + "level": "full" + }, + "SAX to Writer (string stream) (no encoding check)": { + "us": 21036.2, + "level": "no UTF-8" + }, + "Document + Writer": { + "us": 21177.2, "level": "full" }, "Document + Writer (no encoding check)": { - "us": 20161.7, + "us": 21184.8, "level": "no UTF-8" }, + "SAX to Writer (string stream)": { + "us": 21318.4, + "level": "full" + }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 20436.5, + "us": 21359.3, "level": "no UTF-8" }, - "Document + Writer (reused allocator)": { - "us": 20500.1, - "level": "full" - }, - "Document + Writer": { - "us": 20610.1, - "level": "full" - }, "SAX to Writer (no encoding check)": { - "us": 21449.0, + "us": 21367.2, "level": "no UTF-8" }, "SAX to Writer": { - "us": 21783.5, + "us": 21562.2, "level": "full" } } @@ -10612,36 +11388,40 @@ "jeopardy": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 138808.2, + "variant": "parse + dump", + "us": 146320.2, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 138808.2, + "variant": "parse + dump", + "us": 146320.2, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 110572.1, + "us": 109060.0, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 110572.1, + "us": 109060.0, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 110572.1, - "level": "full" - }, - "parse + dump (source numbers)": { - "us": 138808.2, + "us": 109060.0, "level": "full" }, "parse + dump": { - "us": 142985.0, + "us": 146320.2, + "level": "full" + }, + "parse + dump (source numbers)": { + "us": 146609.8, + "level": "full" + }, + "parse_copy + dump": { + "us": 184753.0, "level": "full" } } @@ -10649,59 +11429,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 527354.2, + "us": 528092.1, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 527354.2, + "us": 528092.1, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 527354.2, + "us": 528092.1, "level": "full" } } }, "yyjson": { "best": { - "variant": "insitu (copy) + write", - "us": 194228.4, + "variant": "read (raw numbers) + write", + "us": 193396.6, "level": "full" }, "best_any": { - "variant": "insitu (copy) + write", - "us": 194228.4, + "variant": "read (raw numbers) + write", + "us": 193396.6, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 101369.5, + "us": 96788.4, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 101369.5, + "us": 96788.4, "level": "full" }, "variants": { "read + write (reused allocator)": { - "us": 101369.5, + "us": 96788.4, "level": "full" }, - "insitu (copy) + write": { - "us": 194228.4, + "insitu (copy untimed) + write": { + "us": 158577.0, "level": "full" }, "read (raw numbers) + write": { - "us": 197415.2, + "us": 193396.6, "level": "full" }, "read + write": { - "us": 203511.6, + "us": 195008.0, + "level": "full" + }, + "insitu (copy) + write": { + "us": 198721.1, "level": "full" } } @@ -10709,35 +11493,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 283279.5, + "us": 266718.5, "level": "full" }, "best_any": { "variant": "minify", - "us": 44889.9, + "us": 47040.3, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 217554.5, + "us": 207560.8, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 217554.5, + "us": 207560.8, "level": "full" }, "variants": { "minify": { - "us": 44889.9, + "us": 47040.3, "level": "partial" }, "DOM (reused) + to_string": { - "us": 217554.5, + "us": 207560.8, "level": "full" }, "DOM + to_string": { - "us": 283279.5, + "us": 266718.5, "level": "full" } } @@ -10746,14 +11530,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 162813.5, + "us": 168901.0, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 162813.5, + "us": 168901.0, "level": "no UTF-8" } } @@ -10761,27 +11545,27 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 476578.9, + "us": 458311.3, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 96282.2, + "us": 96405.0, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 96282.2, + "us": 96405.0, "level": "partial" }, "generic": { - "us": 457687.6, + "us": 455056.6, "level": "partial" }, "generic (strict)": { - "us": 476578.9, + "us": 458311.3, "level": "full" } }, @@ -10793,87 +11577,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 333217.2, + "us": 334468.1, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 333217.2, + "us": 334468.1, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 277347.6, + "us": 275271.4, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 277347.6, + "us": 275271.4, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 277347.6, + "us": 275271.4, "level": "full" }, "parse + serialize": { - "us": 333217.2, + "us": 334468.1, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 386777.9, + "variant": "SAX to Writer (string stream)", + "us": 355727.0, "level": "full" }, "best_any": { - "variant": "SAX to Writer (raw numbers) (no encoding check)", - "us": 277974.1, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 249234.8, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 330106.4, + "us": 323395.6, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 327572.5, + "us": 321331.9, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 249234.8, + "level": "no UTF-8" + }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 277974.1, + "us": 276686.1, "level": "no UTF-8" }, "SAX to Writer (no encoding check)": { - "us": 284149.9, + "us": 278843.9, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 327572.5, - "level": "no UTF-8" - }, - "Document + Writer (no encoding check)": { - "us": 327803.5, + "us": 321331.9, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 330106.4, + "us": 323395.6, + "level": "full" + }, + "Document + Writer (no encoding check)": { + "us": 327139.4, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 355727.0, "level": "full" }, "SAX to Writer": { - "us": 386777.9, + "us": 394249.3, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 395391.9, + "us": 398133.8, "level": "full" }, "Document + Writer": { - "us": 433958.5, + "us": 428999.8, "level": "full" } } @@ -10943,55 +11735,59 @@ "nlohmann json_document": { "best": { "variant": "parse + dump", - "us": 2.5, + "us": 2.4, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 2.5, + "us": 2.4, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 2.4, + "us": 2.3, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 2.4, + "us": 2.3, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 2.4, + "us": 2.3, "level": "full" }, "parse + dump": { - "us": 2.5, + "us": 2.4, "level": "full" }, "parse + dump (source numbers)": { "us": 2.5, "level": "full" + }, + "parse_copy + dump": { + "us": 2.6, + "level": "full" } } }, "nlohmann json": { "best": { "variant": "parse + dump", - "us": 19.3, + "us": 19.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 19.3, + "us": 19.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 19.3, + "us": 19.5, "level": "full" } } @@ -11009,17 +11805,21 @@ }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 2.8, + "us": 2.7, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 2.8, + "us": 2.7, "level": "full" }, "variants": { "read + write (reused allocator)": { - "us": 2.8, + "us": 2.7, + "level": "full" + }, + "insitu (copy untimed) + write": { + "us": 2.9, "level": "full" }, "read + write": { @@ -11039,7 +11839,7 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 4.7, + "us": 3.8, "level": "full" }, "best_any": { @@ -11049,12 +11849,12 @@ }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 4.3, + "us": 3.4, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 4.3, + "us": 3.4, "level": "full" }, "variants": { @@ -11063,11 +11863,11 @@ "level": "partial" }, "DOM (reused) + to_string": { - "us": 4.3, + "us": 3.4, "level": "full" }, "DOM + to_string": { - "us": 4.7, + "us": 3.8, "level": "full" } } @@ -11076,14 +11876,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 3.4, + "us": 3.3, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 3.4, + "us": 3.3, "level": "no UTF-8" } } @@ -11091,7 +11891,7 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 14.6, + "us": 14.7, "level": "full" }, "best_any": { @@ -11107,11 +11907,11 @@ "level": "partial" }, "generic": { - "us": 14.2, + "us": 14.3, "level": "partial" }, "generic (strict)": { - "us": 14.6, + "us": 14.7, "level": "full" } }, @@ -11123,44 +11923,44 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 9.4, + "us": 9.2, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 9.4, + "us": 9.2, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 9.3, + "us": 9.1, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 9.3, + "us": 9.1, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 9.3, + "us": 9.1, "level": "full" }, "parse + serialize": { - "us": 9.4, + "us": 9.2, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 15.2, + "variant": "SAX to Writer (string stream)", + "us": 13.9, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 10.2, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 7.5, "level": "no UTF-8" }, "best_reused": { @@ -11170,32 +11970,40 @@ }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 11.8, + "us": 11.6, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 7.5, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 10.2, + "us": 10.3, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 10.6, + "us": 10.3, "level": "no UTF-8" }, "Document + Writer (reused allocator) (no encoding check)": { - "us": 11.8, - "level": "no UTF-8" - }, - "Document + Writer (no encoding check)": { - "us": 12.1, + "us": 11.6, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { "us": 12.2, "level": "full" }, + "Document + Writer (no encoding check)": { + "us": 12.2, + "level": "no UTF-8" + }, + "SAX to Writer (string stream)": { + "us": 13.9, + "level": "full" + }, "SAX to Writer": { - "us": 15.2, + "us": 15.5, "level": "full" }, "SAX to Writer (raw numbers)": { @@ -11203,7 +12011,7 @@ "level": "full" }, "Document + Writer": { - "us": 17.4, + "us": 17.2, "level": "full" } } @@ -11273,35 +12081,39 @@ "nlohmann json_document": { "best": { "variant": "parse + dump (source numbers)", - "us": 424.0, + "us": 418.5, "level": "full" }, "best_any": { "variant": "parse + dump (source numbers)", - "us": 424.0, + "us": 418.5, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 423.2, + "us": 416.9, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 423.2, + "us": 416.9, "level": "full" }, "variants": { "read + dump (reused)": { - "us": 423.2, + "us": 416.9, "level": "full" }, "parse + dump (source numbers)": { - "us": 424.0, + "us": 418.5, "level": "full" }, "parse + dump": { - "us": 428.0, + "us": 425.5, + "level": "full" + }, + "parse_copy + dump": { + "us": 455.2, "level": "full" } } @@ -11309,59 +12121,63 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 3744.2, + "us": 3625.5, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 3744.2, + "us": 3625.5, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 3744.2, + "us": 3625.5, "level": "full" } } }, "yyjson": { "best": { - "variant": "read + write", - "us": 565.0, + "variant": "read (raw numbers) + write", + "us": 564.0, "level": "full" }, "best_any": { - "variant": "read + write", - "us": 565.0, + "variant": "read (raw numbers) + write", + "us": 564.0, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 556.1, + "us": 555.5, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 556.1, + "us": 555.5, "level": "full" }, "variants": { - "read + write (reused allocator)": { - "us": 556.1, + "insitu (copy untimed) + write": { + "us": 541.8, "level": "full" }, - "read + write": { - "us": 565.0, + "read + write (reused allocator)": { + "us": 555.5, "level": "full" }, "read (raw numbers) + write": { - "us": 579.8, + "us": 564.0, + "level": "full" + }, + "read + write": { + "us": 573.5, "level": "full" }, "insitu (copy) + write": { - "us": 582.2, + "us": 576.2, "level": "full" } } @@ -11369,7 +12185,7 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 774.3, + "us": 669.8, "level": "full" }, "best_any": { @@ -11379,12 +12195,12 @@ }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 789.0, + "us": 669.6, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 789.0, + "us": 669.6, "level": "full" }, "variants": { @@ -11392,12 +12208,12 @@ "us": 90.3, "level": "partial" }, - "DOM + to_string": { - "us": 774.3, + "DOM (reused) + to_string": { + "us": 669.6, "level": "full" }, - "DOM (reused) + to_string": { - "us": 789.0, + "DOM + to_string": { + "us": 669.8, "level": "full" } } @@ -11406,14 +12222,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 527.9, + "us": 527.6, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 527.9, + "us": 527.6, "level": "no UTF-8" } } @@ -11421,28 +12237,28 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3146.9, + "us": 3180.4, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 355.2, + "us": 354.9, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 355.2, + "us": 354.9, + "level": "partial" + }, + "generic": { + "us": 3168.5, "level": "partial" }, "generic (strict)": { - "us": 3146.9, + "us": 3180.4, "level": "full" - }, - "generic": { - "us": 3171.2, - "level": "partial" } }, "excluded": { @@ -11453,87 +12269,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 1856.6, + "us": 1798.7, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 1856.6, + "us": 1798.7, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 1805.2, + "us": 1807.0, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 1805.2, + "us": 1807.0, "level": "full" }, "variants": { - "parser (reused) + serialize": { - "us": 1805.2, + "parse + serialize": { + "us": 1798.7, "level": "full" }, - "parse + serialize": { - "us": 1856.6, + "parser (reused) + serialize": { + "us": 1807.0, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 2683.9, + "variant": "SAX to Writer (string stream)", + "us": 2431.4, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 1804.6, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 1572.4, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2189.6, + "us": 2188.7, "level": "full" }, "best_reused_any": { "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2095.6, + "us": 2094.2, "level": "no UTF-8" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 1572.4, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 1804.6, + "us": 1790.9, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 1847.7, - "level": "no UTF-8" - }, - "Document + Writer (reused allocator) (no encoding check)": { - "us": 2095.6, + "us": 1820.9, "level": "no UTF-8" }, "Document + Writer (no encoding check)": { - "us": 2118.1, + "us": 2087.8, + "level": "no UTF-8" + }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2094.2, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 2189.6, + "us": 2188.7, "level": "full" }, - "SAX to Writer": { - "us": 2683.9, + "SAX to Writer (string stream)": { + "us": 2431.4, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 2747.3, + "us": 2706.3, + "level": "full" + }, + "SAX to Writer": { + "us": 2711.8, "level": "full" }, "Document + Writer": { - "us": 2962.5, + "us": 2932.9, "level": "full" } } @@ -11602,36 +12426,40 @@ "citm_catalog_min": { "nlohmann json_document": { "best": { - "variant": "parse + dump (source numbers)", - "us": 779.6, + "variant": "parse + dump", + "us": 779.0, "level": "full" }, "best_any": { - "variant": "parse + dump (source numbers)", - "us": 779.6, + "variant": "parse + dump", + "us": 779.0, "level": "full" }, "best_reused": { "variant": "read + dump (reused)", - "us": 786.6, + "us": 786.3, "level": "full" }, "best_reused_any": { "variant": "read + dump (reused)", - "us": 786.6, + "us": 786.3, "level": "full" }, "variants": { - "parse + dump (source numbers)": { - "us": 779.6, + "parse + dump": { + "us": 779.0, "level": "full" }, "read + dump (reused)": { - "us": 786.6, + "us": 786.3, "level": "full" }, - "parse + dump": { - "us": 787.6, + "parse + dump (source numbers)": { + "us": 792.5, + "level": "full" + }, + "parse_copy + dump": { + "us": 812.1, "level": "full" } } @@ -11639,19 +12467,19 @@ "nlohmann json": { "best": { "variant": "parse + dump", - "us": 5464.9, + "us": 5352.0, "level": "full" }, "best_any": { "variant": "parse + dump", - "us": 5464.9, + "us": 5352.0, "level": "full" }, "best_reused": null, "best_reused_any": null, "variants": { "parse + dump": { - "us": 5464.9, + "us": 5352.0, "level": "full" } } @@ -11659,39 +12487,43 @@ "yyjson": { "best": { "variant": "read (raw numbers) + write", - "us": 797.1, + "us": 797.0, "level": "full" }, "best_any": { "variant": "read (raw numbers) + write", - "us": 797.1, + "us": 797.0, "level": "full" }, "best_reused": { "variant": "read + write (reused allocator)", - "us": 844.9, + "us": 830.6, "level": "full" }, "best_reused_any": { "variant": "read + write (reused allocator)", - "us": 844.9, + "us": 830.6, "level": "full" }, "variants": { + "insitu (copy untimed) + write": { + "us": 794.5, + "level": "full" + }, "read (raw numbers) + write": { - "us": 797.1, + "us": 797.0, "level": "full" }, "read + write": { - "us": 842.4, - "level": "full" - }, - "read + write (reused allocator)": { - "us": 844.9, + "us": 829.5, "level": "full" }, "insitu (copy) + write": { - "us": 851.0, + "us": 829.6, + "level": "full" + }, + "read + write (reused allocator)": { + "us": 830.6, "level": "full" } } @@ -11699,35 +12531,35 @@ "simdjson": { "best": { "variant": "DOM + to_string", - "us": 1217.9, + "us": 1211.1, "level": "full" }, "best_any": { "variant": "minify", - "us": 93.6, + "us": 92.4, "level": "partial" }, "best_reused": { "variant": "DOM (reused) + to_string", - "us": 1217.1, + "us": 1212.6, "level": "full" }, "best_reused_any": { "variant": "DOM (reused) + to_string", - "us": 1217.1, + "us": 1212.6, "level": "full" }, "variants": { "minify": { - "us": 93.6, + "us": 92.4, "level": "partial" }, - "DOM (reused) + to_string": { - "us": 1217.1, + "DOM + to_string": { + "us": 1211.1, "level": "full" }, - "DOM + to_string": { - "us": 1217.9, + "DOM (reused) + to_string": { + "us": 1212.6, "level": "full" } } @@ -11736,14 +12568,14 @@ "best": null, "best_any": { "variant": "Document + Serialize", - "us": 1205.0, + "us": 1214.4, "level": "no UTF-8" }, "best_reused": null, "best_reused_any": null, "variants": { "Document + Serialize": { - "us": 1205.0, + "us": 1214.4, "level": "no UTF-8" } } @@ -11751,28 +12583,28 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 5443.5, + "us": 5550.6, "level": "full" }, "best_any": { "variant": "minify_json", - "us": 620.1, + "us": 638.5, "level": "partial" }, "best_reused": null, "best_reused_any": null, "variants": { "minify_json": { - "us": 620.1, + "us": 638.5, + "level": "partial" + }, + "generic": { + "us": 5531.0, "level": "partial" }, "generic (strict)": { - "us": 5443.5, + "us": 5550.6, "level": "full" - }, - "generic": { - "us": 5458.9, - "level": "partial" } }, "excluded": { @@ -11783,87 +12615,95 @@ "Boost.JSON": { "best": { "variant": "parse + serialize", - "us": 2600.5, + "us": 2569.6, "level": "full" }, "best_any": { "variant": "parse + serialize", - "us": 2600.5, + "us": 2569.6, "level": "full" }, "best_reused": { "variant": "parser (reused) + serialize", - "us": 2593.5, + "us": 2545.2, "level": "full" }, "best_reused_any": { "variant": "parser (reused) + serialize", - "us": 2593.5, + "us": 2545.2, "level": "full" }, "variants": { "parser (reused) + serialize": { - "us": 2593.5, + "us": 2545.2, "level": "full" }, "parse + serialize": { - "us": 2600.5, + "us": 2569.6, "level": "full" } } }, "RapidJSON": { "best": { - "variant": "SAX to Writer", - "us": 2870.2, + "variant": "SAX to Writer (string stream)", + "us": 2640.3, "level": "full" }, "best_any": { - "variant": "SAX to Writer (no encoding check)", - "us": 2332.0, + "variant": "SAX to Writer (string stream) (no encoding check)", + "us": 2139.6, "level": "no UTF-8" }, "best_reused": { "variant": "Document + Writer (reused allocator)", - "us": 2785.6, + "us": 2804.7, "level": "full" }, "best_reused_any": { - "variant": "Document + Writer (reused allocator) (no encoding check)", - "us": 2772.5, - "level": "no UTF-8" + "variant": "Document + Writer (reused allocator)", + "us": 2804.7, + "level": "full" }, "variants": { + "SAX to Writer (string stream) (no encoding check)": { + "us": 2139.6, + "level": "no UTF-8" + }, "SAX to Writer (no encoding check)": { - "us": 2332.0, + "us": 2291.3, "level": "no UTF-8" }, "SAX to Writer (raw numbers) (no encoding check)": { - "us": 2628.1, + "us": 2566.0, "level": "no UTF-8" }, + "SAX to Writer (string stream)": { + "us": 2640.3, + "level": "full" + }, "Document + Writer (no encoding check)": { - "us": 2658.9, - "level": "no UTF-8" - }, - "Document + Writer (reused allocator) (no encoding check)": { - "us": 2772.5, + "us": 2801.3, "level": "no UTF-8" }, "Document + Writer (reused allocator)": { - "us": 2785.6, + "us": 2804.7, "level": "full" }, + "Document + Writer (reused allocator) (no encoding check)": { + "us": 2840.1, + "level": "no UTF-8" + }, "SAX to Writer": { - "us": 2870.2, + "us": 2930.6, "level": "full" }, "SAX to Writer (raw numbers)": { - "us": 3158.2, + "us": 3114.9, "level": "full" }, "Document + Writer": { - "us": 3317.5, + "us": 3338.1, "level": "full" } } @@ -11951,7 +12791,7 @@ "level": "n/a" }, "dump": { - "us": 150.9, + "us": 149.9, "level": "n/a" } } @@ -11959,19 +12799,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 437.0, + "us": 470.6, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 437.0, + "us": 470.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 437.0, + "us": 470.6, "level": "n/a" } } @@ -11979,19 +12819,19 @@ "yyjson": { "best": { "variant": "write", - "us": 204.9, + "us": 204.2, "level": "n/a" }, "best_any": { "variant": "write", - "us": 204.9, + "us": 204.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 204.9, + "us": 204.2, "level": "n/a" } } @@ -11999,19 +12839,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 457.3, + "us": 358.6, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 457.3, + "us": 358.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 457.3, + "us": 358.6, "level": "n/a" } } @@ -12019,19 +12859,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 669.1, + "us": 717.1, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 669.1, + "us": 717.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 669.1, + "us": 717.1, "level": "n/a" } } @@ -12039,19 +12879,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 257.8, + "us": 255.6, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 257.8, + "us": 255.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 257.8, + "us": 255.6, "level": "n/a" } } @@ -12059,23 +12899,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 332.4, + "us": 360.0, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 332.4, + "us": 360.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 332.4, + "us": 360.0, "level": "n/a" }, "generic (strict)": { - "us": 367.9, + "us": 365.6, "level": "n/a" } }, @@ -12087,19 +12927,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 464.1, + "us": 479.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 464.1, + "us": 479.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 464.1, + "us": 479.7, "level": "n/a" } } @@ -12168,24 +13008,24 @@ "citm_catalog": { "nlohmann json_document": { "best": { - "variant": "dump (source numbers)", - "us": 254.7, + "variant": "dump", + "us": 260.4, "level": "n/a" }, "best_any": { - "variant": "dump (source numbers)", - "us": 254.7, + "variant": "dump", + "us": 260.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { - "dump (source numbers)": { - "us": 254.7, + "dump": { + "us": 260.4, "level": "n/a" }, - "dump": { - "us": 270.2, + "dump (source numbers)": { + "us": 267.1, "level": "n/a" } } @@ -12193,19 +13033,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 631.0, + "us": 644.1, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 631.0, + "us": 644.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 631.0, + "us": 644.1, "level": "n/a" } } @@ -12213,19 +13053,19 @@ "yyjson": { "best": { "variant": "write", - "us": 334.4, + "us": 327.0, "level": "n/a" }, "best_any": { "variant": "write", - "us": 334.4, + "us": 327.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 334.4, + "us": 327.0, "level": "n/a" } } @@ -12233,19 +13073,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 617.8, + "us": 636.8, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 617.8, + "us": 636.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 617.8, + "us": 636.8, "level": "n/a" } } @@ -12253,19 +13093,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 1025.0, + "us": 1033.1, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 1025.0, + "us": 1033.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 1025.0, + "us": 1033.1, "level": "n/a" } } @@ -12273,19 +13113,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 536.4, + "us": 541.0, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 536.4, + "us": 541.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 536.4, + "us": 541.0, "level": "n/a" } } @@ -12293,23 +13133,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 654.6, + "us": 660.0, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 654.6, + "us": 660.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 654.6, + "us": 660.0, "level": "n/a" }, "generic (strict)": { - "us": 681.3, + "us": 699.0, "level": "n/a" } }, @@ -12321,19 +13161,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 998.8, + "us": 1015.9, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 998.8, + "us": 1015.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 998.8, + "us": 1015.9, "level": "n/a" } } @@ -12403,23 +13243,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 870.3, + "us": 998.5, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 870.3, + "us": 998.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 870.3, + "us": 998.5, "level": "n/a" }, "dump": { - "us": 3827.3, + "us": 3861.0, "level": "n/a" } } @@ -12427,19 +13267,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 4027.2, + "us": 4343.5, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 4027.2, + "us": 4343.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 4027.2, + "us": 4343.5, "level": "n/a" } } @@ -12447,19 +13287,19 @@ "yyjson": { "best": { "variant": "write", - "us": 3525.1, + "us": 3748.2, "level": "n/a" }, "best_any": { "variant": "write", - "us": 3525.1, + "us": 3748.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 3525.1, + "us": 3748.2, "level": "n/a" } } @@ -12467,19 +13307,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 4906.3, + "us": 4998.6, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 4906.3, + "us": 4998.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 4906.3, + "us": 4998.6, "level": "n/a" } } @@ -12487,19 +13327,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 9077.6, + "us": 9017.1, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 9077.6, + "us": 9017.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 9077.6, + "us": 9017.1, "level": "n/a" } } @@ -12507,19 +13347,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 5070.1, + "us": 5119.7, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 5070.1, + "us": 5119.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 5070.1, + "us": 5119.7, "level": "n/a" } } @@ -12527,23 +13367,23 @@ "Glaze": { "best": { "variant": "generic (strict)", - "us": 3676.1, + "us": 3714.1, "level": "n/a" }, "best_any": { "variant": "generic (strict)", - "us": 3676.1, + "us": 3714.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic (strict)": { - "us": 3676.1, + "us": 3714.1, "level": "n/a" }, "generic": { - "us": 3676.2, + "us": 3736.5, "level": "n/a" } }, @@ -12555,19 +13395,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 6201.5, + "us": 6153.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 6201.5, + "us": 6153.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 6201.5, + "us": 6153.7, "level": "n/a" } } @@ -12637,23 +13477,23 @@ "nlohmann json_document": { "best": { "variant": "dump", - "us": 66099.4, + "us": 63958.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 66099.4, + "us": 63958.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 66099.4, + "us": 63958.0, "level": "n/a" }, "dump (source numbers)": { - "us": 66176.9, + "us": 64736.5, "level": "n/a" } } @@ -12661,19 +13501,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 119028.0, + "us": 114096.0, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 119028.0, + "us": 114096.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 119028.0, + "us": 114096.0, "level": "n/a" } } @@ -12681,19 +13521,19 @@ "yyjson": { "best": { "variant": "write", - "us": 71876.8, + "us": 65989.4, "level": "n/a" }, "best_any": { "variant": "write", - "us": 71876.8, + "us": 65989.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 71876.8, + "us": 65989.4, "level": "n/a" } } @@ -12701,19 +13541,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 175750.0, + "us": 154364.5, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 175750.0, + "us": 154364.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 175750.0, + "us": 154364.5, "level": "n/a" } } @@ -12721,19 +13561,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 140116.2, + "us": 134259.5, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 140116.2, + "us": 134259.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 140116.2, + "us": 134259.5, "level": "n/a" } } @@ -12741,19 +13581,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 71190.7, + "us": 69546.0, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 71190.7, + "us": 69546.0, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 71190.7, + "us": 69546.0, "level": "n/a" } } @@ -12761,23 +13601,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 128044.4, + "us": 124598.1, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 128044.4, + "us": 124598.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 128044.4, + "us": 124598.1, "level": "n/a" }, "generic (strict)": { - "us": 140818.9, + "us": 132481.0, "level": "n/a" } }, @@ -12789,19 +13629,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 142515.6, + "us": 139022.5, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 142515.6, + "us": 139022.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 142515.6, + "us": 139022.5, "level": "n/a" } } @@ -12870,24 +13710,24 @@ "status": { "nlohmann json_document": { "best": { - "variant": "dump (source numbers)", + "variant": "dump", "us": 0.8, "level": "n/a" }, "best_any": { - "variant": "dump (source numbers)", + "variant": "dump", "us": 0.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { - "dump (source numbers)": { + "dump": { "us": 0.8, "level": "n/a" }, - "dump": { - "us": 0.9, + "dump (source numbers)": { + "us": 0.8, "level": "n/a" } } @@ -12895,19 +13735,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 2.0, + "us": 1.9, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 2.0, + "us": 1.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 2.0, + "us": 1.9, "level": "n/a" } } @@ -12915,19 +13755,19 @@ "yyjson": { "best": { "variant": "write", - "us": 1.3, + "us": 1.2, "level": "n/a" }, "best_any": { "variant": "write", - "us": 1.3, + "us": 1.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 1.3, + "us": 1.2, "level": "n/a" } } @@ -12935,19 +13775,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 2.8, + "us": 1.9, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 2.8, + "us": 1.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 2.8, + "us": 1.9, "level": "n/a" } } @@ -12975,19 +13815,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 1.7, + "us": 1.6, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 1.7, + "us": 1.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 1.7, + "us": 1.6, "level": "n/a" } } @@ -12995,19 +13835,19 @@ "Glaze": { "best": { "variant": "generic", - "us": 1.8, + "us": 1.7, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 1.8, + "us": 1.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 1.8, + "us": 1.7, "level": "n/a" }, "generic (strict)": { @@ -13105,23 +13945,23 @@ "nlohmann json_document": { "best": { "variant": "dump (source numbers)", - "us": 143.4, + "us": 142.8, "level": "n/a" }, "best_any": { "variant": "dump (source numbers)", - "us": 143.4, + "us": 142.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump (source numbers)": { - "us": 143.4, + "us": 142.8, "level": "n/a" }, "dump": { - "us": 148.1, + "us": 146.1, "level": "n/a" } } @@ -13129,19 +13969,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 444.3, + "us": 437.3, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 444.3, + "us": 437.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 444.3, + "us": 437.3, "level": "n/a" } } @@ -13149,19 +13989,19 @@ "yyjson": { "best": { "variant": "write", - "us": 199.5, + "us": 195.6, "level": "n/a" }, "best_any": { "variant": "write", - "us": 199.5, + "us": 195.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 199.5, + "us": 195.6, "level": "n/a" } } @@ -13169,19 +14009,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 461.0, + "us": 358.1, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 461.0, + "us": 358.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 461.0, + "us": 358.1, "level": "n/a" } } @@ -13189,19 +14029,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 658.5, + "us": 662.4, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 658.5, + "us": 662.4, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 658.5, + "us": 662.4, "level": "n/a" } } @@ -13209,19 +14049,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 237.9, + "us": 236.2, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 237.9, + "us": 236.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 237.9, + "us": 236.2, "level": "n/a" } } @@ -13229,23 +14069,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 334.7, + "us": 331.3, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 334.7, + "us": 331.3, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 334.7, + "us": 331.3, "level": "n/a" }, "generic (strict)": { - "us": 367.8, + "us": 366.6, "level": "n/a" } }, @@ -13257,19 +14097,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 479.6, + "us": 478.9, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 479.6, + "us": 478.9, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 479.6, + "us": 478.9, "level": "n/a" } } @@ -13338,24 +14178,24 @@ "citm_catalog_min": { "nlohmann json_document": { "best": { - "variant": "dump (source numbers)", - "us": 249.9, + "variant": "dump", + "us": 269.5, "level": "n/a" }, "best_any": { - "variant": "dump (source numbers)", - "us": 249.9, + "variant": "dump", + "us": 269.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { - "dump (source numbers)": { - "us": 249.9, + "dump": { + "us": 269.5, "level": "n/a" }, - "dump": { - "us": 267.8, + "dump (source numbers)": { + "us": 277.0, "level": "n/a" } } @@ -13363,19 +14203,19 @@ "nlohmann json": { "best": { "variant": "dump", - "us": 636.0, + "us": 666.2, "level": "n/a" }, "best_any": { "variant": "dump", - "us": 636.0, + "us": 666.2, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "dump": { - "us": 636.0, + "us": 666.2, "level": "n/a" } } @@ -13383,19 +14223,19 @@ "yyjson": { "best": { "variant": "write", - "us": 332.4, + "us": 343.8, "level": "n/a" }, "best_any": { "variant": "write", - "us": 332.4, + "us": 343.8, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "write": { - "us": 332.4, + "us": 343.8, "level": "n/a" } } @@ -13403,19 +14243,19 @@ "simdjson": { "best": { "variant": "to_string", - "us": 620.1, + "us": 670.5, "level": "n/a" }, "best_any": { "variant": "to_string", - "us": 620.1, + "us": 670.5, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "to_string": { - "us": 620.1, + "us": 670.5, "level": "n/a" } } @@ -13423,19 +14263,19 @@ "RapidJSON": { "best": { "variant": "Writer", - "us": 1024.6, + "us": 1096.6, "level": "n/a" }, "best_any": { "variant": "Writer", - "us": 1024.6, + "us": 1096.6, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Writer": { - "us": 1024.6, + "us": 1096.6, "level": "n/a" } } @@ -13443,19 +14283,19 @@ "sonic-cpp": { "best": { "variant": "Serialize", - "us": 526.0, + "us": 525.1, "level": "n/a" }, "best_any": { "variant": "Serialize", - "us": 526.0, + "us": 525.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "Serialize": { - "us": 526.0, + "us": 525.1, "level": "n/a" } } @@ -13463,23 +14303,23 @@ "Glaze": { "best": { "variant": "generic", - "us": 657.6, + "us": 680.1, "level": "n/a" }, "best_any": { "variant": "generic", - "us": 657.6, + "us": 680.1, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "generic": { - "us": 657.6, + "us": 680.1, "level": "n/a" }, "generic (strict)": { - "us": 688.1, + "us": 693.2, "level": "n/a" } }, @@ -13491,19 +14331,19 @@ "Boost.JSON": { "best": { "variant": "serialize", - "us": 1004.1, + "us": 1070.7, "level": "n/a" }, "best_any": { "variant": "serialize", - "us": 1004.1, + "us": 1070.7, "level": "n/a" }, "best_reused": null, "best_reused_any": null, "variants": { "serialize": { - "us": 1004.1, + "us": 1070.7, "level": "n/a" } } diff --git a/tests/benchmarks/json_view/others/README.md b/tests/benchmarks/json_view/others/README.md index 7c339c858..fc32d3de4 100644 --- a/tests/benchmarks/json_view/others/README.md +++ b/tests/benchmarks/json_view/others/README.md @@ -43,6 +43,10 @@ files use the select and edit of their originals. The input is a `const std::string` holding the file, with at least 64 bytes of spare capacity (`reserve`), so libraries that need padding (simdjson) can use it without a copy. A variant that modifies the input (in-situ parsing: yyjson `YYJSON_READ_INSITU`, RapidJSON `ParseInsitu`, simd-json) copies it inside the timed call; its name says `(copy)`. +The C++ in-situ variants also run as `(copy untimed)`: the copy is made before the timer starts and freed after it +stops, as for a program that reads a file into a buffer it owns and no longer needs. They are reported but never +chosen as a library's best. `json_document`'s `parse_copy` is the opposite case: a document that owns a copy of its +text. Each timed call starts from the text and frees everything it built, except variants named `(reused)` or `(reused allocator)`, which keep a parser, document or allocator across calls (simdjson's reused parsers, `json_document::read()`, Boost.JSON's reset `parser` and `basic_parser`, yyjson's dynamic allocator, RapidJSON's @@ -107,11 +111,11 @@ Level on the Mac in brackets where it is not `full` (`P` = partial, `U` = no UTF | library | validate | sum | select | edit | minify | write | |---|---|---|---|---|---|---| -| nlohmann json_document | `accept`, `parse`, `read (reused)` | `parse`, `read (reused)` | `parse`, `structs (from_json)`, `read (reused)` | `editable`, `editable (source numbers)` (`json_editable_document`: set/erase, `dump` with `number_format::source`) | `parse + dump`, `parse + dump (source numbers)`, `read + dump (reused)` | `dump`, `dump (source numbers)` | +| nlohmann json_document | `accept`, `parse`, `read (reused)` | `parse`, `parse_copy`, `read (reused)` | `parse`, `parse_copy`, `structs (from_json)`, `read (reused)` | `editable`, `editable (source numbers)` (`json_editable_document`: set/erase, `dump` with `number_format::source`) | `parse + dump`, `parse_copy + dump`, `parse + dump (source numbers)`, `read + dump (reused)` | `dump`, `dump (source numbers)` | | nlohmann json | `accept`, `parse` | `parse`, `sax` | `parse`, `structs (from_json)` | `parse`, `ordered_json` | `parse + dump` | `dump` | -| yyjson | `read`, `insitu (copy)`, `read (raw numbers)`, `read (reused allocator)` | `read`, `insitu (copy)`, `read (reused allocator)` | `read`, `insitu (copy)`, `read (raw numbers)`, `read (reused allocator)` | `mut copy`, `insitu (copy) + mut copy` (`yyjson_doc_mut_copy`) | `read + write`, `insitu (copy) + write`, `read (raw numbers) + write`, `read + write (reused allocator)` | `write` | +| yyjson | `read`, `insitu (copy)`, `insitu (copy untimed)`, `read (raw numbers)`, `read (reused allocator)` | `read`, `insitu (copy)`, `insitu (copy untimed)`, `read (reused allocator)` | `read`, `insitu (copy)`, `insitu (copy untimed)`, `read (raw numbers)`, `read (reused allocator)` | `mut copy`, `insitu (copy) + mut copy` (`yyjson_doc_mut_copy`), `insitu (copy untimed) + mut copy` | `read + write`, `insitu (copy) + write`, `insitu (copy untimed) + write`, `read (raw numbers) + write`, `read + write (reused allocator)` | `write` | | simdjson | `DOM`, `DOM (reused)` | `DOM`, `DOM (reused)`, `On-Demand`, `On-Demand (reused)` | `DOM`, `DOM (reused)`, `On-Demand` [P], `On-Demand (reused)` [P], `On-Demand structs` [P], `On-Demand (key selectors)` [P] | n/a (no mutable document) | `DOM + to_string`, `DOM (reused) + to_string`, `minify` [P] | `to_string` | -| RapidJSON | `SAX` (null handler), `Document`, `insitu (copy)`, `SAX (raw numbers)`, `Document (reused allocator)` | `Document`, `SAX`, `insitu (copy)`, `Document (reused allocator)` | `Document`, `insitu (copy)`, `Document (raw numbers)`, `Document (reused allocator)` | `Document`, `insitu (copy)` | `Document + Writer`, `SAX to Writer`, `SAX to Writer (raw numbers)`, `Document + Writer (reused allocator)` | `Writer` | +| RapidJSON | `SAX` (null handler), `Document`, `insitu (copy)`, `insitu (copy untimed)`, `SAX (string stream)`, `SAX (default precision)`, `SAX (string stream, default precision)`, `SAX (raw numbers)`, `Document (reused allocator)` | `Document`, `SAX`, `insitu (copy)`, `insitu (copy untimed)`, `SAX (string stream)`, `Document (reused allocator)` | `Document`, `insitu (copy)`, `insitu (copy untimed)`, `Document (string stream)`, `Document (raw numbers)`, `Document (reused allocator)` | `Document`, `insitu (copy)`, `insitu (copy untimed)`, `Document (string stream)` | `Document + Writer`, `SAX to Writer`, `SAX to Writer (string stream)`, `SAX to Writer (raw numbers)`, `Document + Writer (reused allocator)` | `Writer` | | RapidJSON, `(no encoding check)` | the same [U] | the same [U] | the same [U] | the same [U] | the same [U] | | | sonic-cpp | `Document` [U] | `Document` [U] | `Document` [U] | `Document` [U] | `Document + Serialize` [U] | `Serialize` | | Glaze | `validate_json`, `generic` [P], `generic (double)` [P], `generic (strict)`, `generic (double, strict)` | `generic` [P], `generic (double)` [P], `generic (strict)`, `generic (double, strict)`, `lazy_json` [P], `lazy_json (string_view)` (x) | `structs` [P], `structs (validate_skipped)`, `generic` [P], `generic (double)` [P], `generic (strict)`, `generic (double, strict)`, `lazy_json` [P], `lazy_json (string_view)` (x) | `generic` [P], `generic (double)` (x), `generic (strict)`, `generic (double, strict)` (x) | `generic` [P], `generic (double)` (x), `generic (strict)`, `generic (double, strict)` (x), `minify_json` [P] | `generic`, `generic (double)` (x), `generic (strict)`, `generic (double, strict)` (x) | @@ -140,7 +144,10 @@ described struct, so their members are not counted. `key selectors` are simdjson `DeserializeSeed` that sums without building a value; `SAX` and `sax` are the libraries' event interfaces with a summing (or, for `validate`, an empty) handler. RapidJSON parses with `kParseFullPrecisionFlag` (correctly rounded floats; without it, sums and written floats are wrong) and Boost.JSON with `number_precision::precise`, as every other -library rounds correctly by default. +library rounds correctly by default; only `validate`, which reads no number, also has RapidJSON's `(default +precision)`. RapidJSON's `Document::Parse(data, size)` and our `SAX` read through `EncodedInputStream`; +`(string stream)` reads the NUL-terminated string through `StringStream`, as `Document::Parse(const char*)` does, +where RapidJSON has a SIMD string scanner (used only without `kParseValidateEncodingFlag`). Variants named `(raw numbers)` or `(numbers: none)` use a library's mode that validates numbers without converting them (yyjson `YYJSON_READ_NUMBER_AS_RAW`, RapidJSON `kParseNumbersAsStringsFlag`, Boost.JSON @@ -159,7 +166,7 @@ control characters, e.g. U+0001, unescaped, which is not JSON; `gsoc-2018.json` |---|---|---| | `json_document`, `json` | this checkout | | | yyjson | 0.13.0 | | -| simdjson | 5.0.8 | | +| simdjson | 5.1.1 | the single-header files of the tag | | sonic-cpp | 1.0.2 | | | RapidJSON | master 24b5e7a8b27f (2025-02-05) | | | Glaze | 9.1.0 | `generic_u64` and `generic` (owning DOMs, member order kept) | @@ -173,7 +180,8 @@ SHA-256 of the downloads: 30edf9e47c417f653546c39295fdb66ba5f89fb37eb3780122c6ee66605e5837 sonic-cpp v1.0.2.tar.gz 2d2601a82d2d3b7e143a3c8d43ef616671391034bc46891a9816b79cf2d3e7a8 rapidjson 24b5e7a8b27f42fa16b96fc70aade9106cf7102f.tar.gz 34e0f62a2bc11ab20d601e8ca1cc2b2079503aa45119a19133d89d19b94a0fae yyjson 0.13.0.tar.gz -356cc3a2d6a3d0d45bf5eba813e58ef4f2f6d9cc2a25d8aada2563bc13755789 simdjson-v5.0.8.tar.gz +f3e5ee5f39051960b5ce65762ee4b6919caf270675eb52240ebd92f21a5bcefd simdjson v5.1.1 singleheader/simdjson.h +3ea5f501cef6c2e16e28095b566feeb56021ca473aaf50aad32102f45d734195 simdjson v5.1.1 singleheader/simdjson.cpp c4a3b310ddd2472416e091067166b0713be97c63f38c212c484ada022fd296ce boost_1_92_0.tar.gz ``` @@ -189,13 +197,13 @@ at most the given number). All libraries except yyjson and simdjson are used header-only. With the downloads unpacked into `DL` (`compare.py --download` fetches yyjson and Boost into its build directory, and simdjson 4.6.11, so take simdjson -5.0.8 from its release archive): +5.1.1's `singleheader` files from its tag): ```sh cc -O3 -DNDEBUG -c $DL/yyjson-0.13.0/src/yyjson.c -o yyjson.o -c++ -std=c++17 -O3 -DNDEBUG -c $DL/simdjson-5.0.8/singleheader/simdjson.cpp -o simdjson.o +c++ -std=c++17 -O3 -DNDEBUG -c $DL/simdjson-5.1.1/singleheader/simdjson.cpp -o simdjson.o c++ -std=c++23 -O3 -DNDEBUG -DRAPIDJSON_NEON \ - -I ../../../../include -I $DL/yyjson-0.13.0/src -I $DL/simdjson-5.0.8/singleheader -I $DL/boost_1_92_0 \ + -I ../../../../include -I $DL/yyjson-0.13.0/src -I $DL/simdjson-5.1.1/singleheader -I $DL/boost_1_92_0 \ -I $DL/glaze-9.1.0/include -I $DL/rapidjson/include -I $DL/sonic/include \ bench_all.cpp yyjson.o simdjson.o -o bench_all ./bench_all 30 > mac-cpp-1.log diff --git a/tests/benchmarks/json_view/others/bench_all.cpp b/tests/benchmarks/json_view/others/bench_all.cpp index 1116426d8..3115c173c 100644 --- a/tests/benchmarks/json_view/others/bench_all.cpp +++ b/tests/benchmarks/json_view/others/bench_all.cpp @@ -21,6 +21,7 @@ // Usage: bench_all [rounds] [document] [use case] // bench_all --files [rounds] [document] [use case] (every *.json file of dir: validate, sum, minify, write) // bench_all --conformance (every validate variant on every *.json file of dir) +// BENCH_ONLY=[,...] times only the variants whose name starts with one of them (e.g. "nlohmann ") #include #include @@ -357,6 +358,79 @@ struct yy_insitu } }; +// "(copy untimed)": an in-situ way whose input copy is made before the timer starts and freed after it stops, as for +// a program that reads a file into a buffer it owns and no longer needs; never chosen as a library's best. Outside +// the timing loop (the checks and probes), take() copies the input itself. +struct input_copies +{ + std::vector bufs; + std::size_t next = 0; + void make(const std::string& s, int n) + { + clear(); + for (int i = 0; i < n; ++i) + { + char* b = static_cast(std::malloc(s.size() + YYJSON_PADDING_SIZE)); + std::memcpy(b, s.data(), s.size()); + std::memset(b + s.size(), 0, YYJSON_PADDING_SIZE); + bufs.push_back(b); + } + } + void clear() + { + for (char* b : bufs) + { + std::free(b); + } + bufs.clear(); + next = 0; + } +}; +static input_copies g_copies; + +struct taken_copy +{ + char* buf = nullptr; + bool owned = false; + explicit taken_copy(const std::string& s) + { + if (g_copies.next < g_copies.bufs.size()) + { + buf = g_copies.bufs[g_copies.next++]; + return; + } + owned = true; + buf = static_cast(std::malloc(s.size() + YYJSON_PADDING_SIZE)); + std::memcpy(buf, s.data(), s.size()); + std::memset(buf + s.size(), 0, YYJSON_PADDING_SIZE); + } + taken_copy(const taken_copy&) = delete; + taken_copy& operator=(const taken_copy&) = delete; + ~taken_copy() + { + if (owned) + { + std::free(buf); + } + } +}; + +// yyjson in situ on a copy made before the timer +struct yy_insitu_untimed +{ + taken_copy c; + yyjson_doc* doc = nullptr; + explicit yy_insitu_untimed(const std::string& s) + : c(s), doc(yyjson_read_opts(c.buf, s.size(), YYJSON_READ_INSITU, nullptr, nullptr)) + {} + yy_insitu_untimed(const yy_insitu_untimed&) = delete; + yy_insitu_untimed& operator=(const yy_insitu_untimed&) = delete; + ~yy_insitu_untimed() + { + yyjson_doc_free(doc); + } +}; + // ---- simdjson DOM and On-Demand // after the type switch, the unchecked accessors (value_unsafe()) instead of the throwing conversions (int64_t(e), // as in the 3.13.0 post; measured the same) @@ -579,6 +653,16 @@ static bool rj_read(const std::string& s, Handler& h) return !reader.Parse(is, h).IsError(); } +// RapidJSON's Reader on the NUL-terminated string, as Document::Parse(const char*) does it: StringStream has +// RapidJSON's SIMD string scanner, which skips the encoding check +template +static bool rj_read_cstr(const std::string& s, Handler& h) +{ + rapidjson::StringStream is(s.c_str()); + rapidjson::Reader reader; + return !reader.Parse(is, h).IsError(); +} + // RapidJSON's Writer writes a raw number (kParseNumbersAsStringsFlag) as a string: write its text instead struct rj_raw_writer : rapidjson::Writer { @@ -2706,6 +2790,7 @@ struct variant std::string name; // ": " std::function fn; bool any_order = false; // sum: visits objects in key order, so its sum may differ in the last bits + bool untimed_copy = false; // takes its input copy from g_copies, made before the timer starts }; struct context @@ -2732,6 +2817,7 @@ static std::vector validate_variants(context& c) {"nlohmann json: parse", [](const std::string & s, result & r) { json j = json::parse(s); r.acc = static_cast(j.size()); return true; }}, {"yyjson: read", [](const std::string & s, result&) { yyjson_doc* d = yyjson_read(s.data(), s.size(), 0); const bool ok = d != nullptr; yyjson_doc_free(d); return ok; }}, {"yyjson: insitu (copy)", [](const std::string & s, result&) { yy_insitu d(s); return d.doc != nullptr; }}, + {"yyjson: insitu (copy untimed)", [](const std::string & s, result&) { yy_insitu_untimed d(s); return d.doc != nullptr; }, false, true}, {"yyjson: read (raw numbers)", [](const std::string & s, result&) { yyjson_doc* d = yyjson_read(s.data(), s.size(), yy_raw); const bool ok = d != nullptr; yyjson_doc_free(d); return ok; }}, {"yyjson: read (reused allocator)", [&c](const std::string & s, result&) { yyjson_doc* d = yyjson_read_opts(const_cast(s.data()), s.size(), 0, c.yy.a, nullptr); const bool ok = d != nullptr; yyjson_doc_free(d); return ok; }}, {"simdjson: DOM", [](const std::string & s, result&) { simdjson::dom::parser p; return !p.parse(s).error(); }}, @@ -2758,11 +2844,13 @@ static std::vector sum_variants(context& c) return { {"nlohmann json_document: parse", [](const std::string & s, result & r) { auto d = json_document::parse(s); walk(d.root(), r.st); return true; }}, + {"nlohmann json_document: parse_copy", [](const std::string & s, result & r) { auto d = json_document::parse_copy(s); walk(d.root(), r.st); return true; }}, {"nlohmann json_document: read (reused)", [&c](const std::string & s, result & r) { c.reused.read(s); walk(c.reused.root(), r.st); return true; }}, {"nlohmann json: parse", [](const std::string & s, result & r) { json j = json::parse(s); walk(j, r.st); return true; }, true}, {"nlohmann json: sax", [](const std::string & s, result & r) { json_sum_sax h{&r.st}; return json::sax_parse(s, &h); }}, {"yyjson: read", [](const std::string & s, result & r) { yyjson_doc* d = yyjson_read(s.data(), s.size(), 0); if (d == nullptr) { return false; } walk(yyjson_doc_get_root(d), r.st); yyjson_doc_free(d); return true; }}, {"yyjson: insitu (copy)", [](const std::string & s, result & r) { yy_insitu d(s); if (d.doc == nullptr) { return false; } walk(yyjson_doc_get_root(d.doc), r.st); return true; }}, + {"yyjson: insitu (copy untimed)", [](const std::string & s, result & r) { yy_insitu_untimed d(s); if (d.doc == nullptr) { return false; } walk(yyjson_doc_get_root(d.doc), r.st); return true; }, false, true}, {"yyjson: read (reused allocator)", [&c](const std::string & s, result & r) { yyjson_doc* d = yyjson_read_opts(const_cast(s.data()), s.size(), 0, c.yy.a, nullptr); if (d == nullptr) { return false; } walk(yyjson_doc_get_root(d), r.st); yyjson_doc_free(d); return true; }}, {"simdjson: DOM", [](const std::string & s, result & r) { simdjson::dom::parser p; auto e = p.parse(s); if (e.error()) { return false; } walk(e.value_unsafe(), r.st); return true; }}, {"simdjson: DOM (reused)", [&c](const std::string & s, result & r) { auto e = c.sj.parse(s); if (e.error()) { return false; } walk(e.value_unsafe(), r.st); return true; }}, @@ -2790,12 +2878,14 @@ static std::vector select_variants(context& c) return { {"nlohmann json_document: parse", [n](const std::string & s, result & r) { auto d = json_document::parse(s); r.acc = pick(n, d.root()); return true; }}, + {"nlohmann json_document: parse_copy", [n](const std::string & s, result & r) { auto d = json_document::parse_copy(s); r.acc = pick(n, d.root()); return true; }}, {"nlohmann json_document: read (reused)", [&c, n](const std::string & s, result & r) { c.reused.read(s); r.acc = pick(n, c.reused.root()); return true; }}, {"nlohmann json: parse", [n](const std::string & s, result & r) { json j = json::parse(s); r.acc = pick(n, &j); return true; }}, {"nlohmann json_document: structs (from_json)", [n](const std::string & s, result & r) { auto d = json_document::parse(s); r.acc = pick_nlohmann_structs(n, d.root()); return true; }}, {"nlohmann json: structs (from_json)", [n](const std::string & s, result & r) { r.acc = pick_nlohmann_structs(n, json::parse(s)); return true; }}, {"yyjson: read", [n](const std::string & s, result & r) { yyjson_doc* d = yyjson_read(s.data(), s.size(), 0); if (d == nullptr) { return false; } r.acc = pick(n, yyjson_doc_get_root(d)); yyjson_doc_free(d); return true; }}, {"yyjson: insitu (copy)", [n](const std::string & s, result & r) { yy_insitu d(s); if (d.doc == nullptr) { return false; } r.acc = pick(n, yyjson_doc_get_root(d.doc)); return true; }}, + {"yyjson: insitu (copy untimed)", [n](const std::string & s, result & r) { yy_insitu_untimed d(s); if (d.doc == nullptr) { return false; } r.acc = pick(n, yyjson_doc_get_root(d.doc)); return true; }, false, true}, {"yyjson: read (raw numbers)", [n](const std::string & s, result & r) { yyjson_doc* d = yyjson_read(s.data(), s.size(), yy_raw); if (d == nullptr) { return false; } r.acc = pick(n, yyjson_doc_get_root(d)); yyjson_doc_free(d); return true; }}, {"yyjson: read (reused allocator)", [&c, n](const std::string & s, result & r) { yyjson_doc* d = yyjson_read_opts(const_cast(s.data()), s.size(), 0, c.yy.a, nullptr); if (d == nullptr) { return false; } r.acc = pick(n, yyjson_doc_get_root(d)); yyjson_doc_free(d); return true; }}, {"simdjson: DOM", [n](const std::string & s, result & r) { simdjson::dom::parser p; auto e = p.parse(s); if (e.error()) { return false; } r.acc = pick(n, e.value_unsafe()); return true; }}, @@ -2833,6 +2923,7 @@ static std::vector edit_variants(context& c) {"nlohmann json: ordered_json", [n](const std::string & s, result & r) { ordered_json j = ordered_json::parse(s); edit(n, j); return emit(r, j.dump()); }}, {"yyjson: mut copy", [n](const std::string & s, result & r) { yyjson_doc* d = yyjson_read(s.data(), s.size(), 0); const bool ok = edit_yyjson(n, d, r); yyjson_doc_free(d); return ok; }}, {"yyjson: insitu (copy) + mut copy", [n](const std::string & s, result & r) { yy_insitu d(s); return edit_yyjson(n, d.doc, r); }}, + {"yyjson: insitu (copy untimed) + mut copy", [n](const std::string & s, result & r) { yy_insitu_untimed d(s); return edit_yyjson(n, d.doc, r); }, false, true}, {"sonic-cpp: Document", [n](const std::string & s, result & r) { return edit_sonic(n, s, r); }}, #if !BENCH_NO_GLAZE {"Glaze: generic", [n](const std::string & s, result & r) { return edit_glaze(n, s, r); }}, @@ -2849,11 +2940,13 @@ static std::vector minify_variants(context& c) return { {"nlohmann json_document: parse + dump", [](const std::string & s, result & r) { auto d = json_document::parse(s); return emit(r, d.root().dump()); }}, + {"nlohmann json_document: parse_copy + dump", [](const std::string & s, result & r) { auto d = json_document::parse_copy(s); return emit(r, d.root().dump()); }}, {"nlohmann json_document: parse + dump (source numbers)", [](const std::string & s, result & r) { auto d = json_document::parse(s); return emit(r, d.root().dump(-1, ' ', false, json_view::number_format::source)); }}, {"nlohmann json_document: read + dump (reused)", [&c](const std::string & s, result & r) { c.reused.read(s); return emit(r, c.reused.root().dump()); }}, {"nlohmann json: parse + dump", [](const std::string & s, result & r) { json j = json::parse(s); return emit(r, j.dump()); }}, {"yyjson: read + write", [](const std::string & s, result & r) { yyjson_doc* d = yyjson_read(s.data(), s.size(), 0); if (d == nullptr) { return false; } std::size_t n = 0; char* o = yyjson_write(d, 0, &n); const bool ok = o != nullptr && emit(r, o, n); std::free(o); yyjson_doc_free(d); return ok; }}, {"yyjson: insitu (copy) + write", [](const std::string & s, result & r) { yy_insitu d(s); if (d.doc == nullptr) { return false; } std::size_t n = 0; char* o = yyjson_write(d.doc, 0, &n); const bool ok = o != nullptr && emit(r, o, n); std::free(o); return ok; }}, + {"yyjson: insitu (copy untimed) + write", [](const std::string & s, result & r) { yy_insitu_untimed d(s); if (d.doc == nullptr) { return false; } std::size_t n = 0; char* o = yyjson_write(d.doc, 0, &n); const bool ok = o != nullptr && emit(r, o, n); std::free(o); return ok; }, false, true}, // the raw number text is written verbatim {"yyjson: read (raw numbers) + write", [](const std::string & s, result & r) { yyjson_doc* d = yyjson_read(s.data(), s.size(), yy_raw); if (d == nullptr) { return false; } std::size_t n = 0; char* o = yyjson_write(d, 0, &n); const bool ok = o != nullptr && emit(r, o, n); std::free(o); yyjson_doc_free(d); return ok; }}, {"yyjson: read + write (reused allocator)", [&c](const std::string & s, result & r) { yyjson_alc* a = c.yy.a; yyjson_doc* d = yyjson_read_opts(const_cast(s.data()), s.size(), 0, a, nullptr); if (d == nullptr) { return false; } std::size_t n = 0; char* o = yyjson_write_opts(d, 0, a, &n, nullptr); const bool ok = o != nullptr && emit(r, o, n); if (o != nullptr) { a->free(a->ctx, o); } yyjson_doc_free(d); return ok; }}, @@ -2887,9 +2980,14 @@ static void add_rapidjson(std::vector& vs, const std::string& uc, const rj_reuse* const rp = &rr; if (uc == "validate") { + // validate reads no number, so the default (not correctly rounded) precision is allowed here vs.push_back({std::string("RapidJSON: SAX") + sfx, [](const std::string & s, result&) { rapidjson::BaseReaderHandler<> h; return rj_read(s, h); }}); vs.push_back({std::string("RapidJSON: Document") + sfx, [](const std::string & s, result&) { rapidjson::Document d; d.Parse(s.data(), s.size()); return !d.HasParseError(); }}); vs.push_back({std::string("RapidJSON: insitu (copy)") + sfx, [](const std::string & s, result&) { std::string b = s; rapidjson::Document d; d.ParseInsitu(&b[0]); return !d.HasParseError(); }}); + vs.push_back({std::string("RapidJSON: insitu (copy untimed)") + sfx, [](const std::string & s, result&) { taken_copy b(s); rapidjson::Document d; d.ParseInsitu(b.buf); return !d.HasParseError(); }, false, true}); + vs.push_back({std::string("RapidJSON: SAX (string stream)") + sfx, [](const std::string & s, result&) { rapidjson::BaseReaderHandler<> h; return rj_read_cstr(s, h); }}); + vs.push_back({std::string("RapidJSON: SAX (default precision)") + sfx, [](const std::string & s, result&) { rapidjson::BaseReaderHandler<> h; return rj_read(s, h); }}); + vs.push_back({std::string("RapidJSON: SAX (string stream, default precision)") + sfx, [](const std::string & s, result&) { rapidjson::BaseReaderHandler<> h; return rj_read_cstr(s, h); }}); vs.push_back({std::string("RapidJSON: SAX (raw numbers)") + sfx, [](const std::string & s, result&) { rapidjson::BaseReaderHandler<> h; return rj_read(s, h); }}); vs.push_back({std::string("RapidJSON: Document (reused allocator)") + sfx, [rp](const std::string & s, result&) { return rp->parse(s, [](const rapidjson::Value&) { return true; }); }}); } @@ -2898,12 +2996,16 @@ static void add_rapidjson(std::vector& vs, const std::string& uc, const vs.push_back({std::string("RapidJSON: Document") + sfx, [](const std::string & s, result & r) { rapidjson::Document d; d.Parse(s.data(), s.size()); if (d.HasParseError()) { return false; } walk(d, r.st); return true; }}); vs.push_back({std::string("RapidJSON: SAX") + sfx, [](const std::string & s, result & r) { rj_sum h(&r.st); return rj_read(s, h); }}); vs.push_back({std::string("RapidJSON: insitu (copy)") + sfx, [](const std::string & s, result & r) { std::string b = s; rapidjson::Document d; d.ParseInsitu(&b[0]); if (d.HasParseError()) { return false; } walk(d, r.st); return true; }}); + vs.push_back({std::string("RapidJSON: insitu (copy untimed)") + sfx, [](const std::string & s, result & r) { taken_copy b(s); rapidjson::Document d; d.ParseInsitu(b.buf); if (d.HasParseError()) { return false; } walk(d, r.st); return true; }, false, true}); + vs.push_back({std::string("RapidJSON: SAX (string stream)") + sfx, [](const std::string & s, result & r) { rj_sum h(&r.st); return rj_read_cstr(s, h); }}); vs.push_back({std::string("RapidJSON: Document (reused allocator)") + sfx, [rp](const std::string & s, result & r) { return rp->parse(s, [&r](const rapidjson::Value & d) { walk(d, r.st); return true; }); }}); } else if (uc == "select") { vs.push_back({std::string("RapidJSON: Document") + sfx, [n](const std::string & s, result & r) { rapidjson::Document d; d.Parse(s.data(), s.size()); if (d.HasParseError()) { return false; } r.acc = pick(n, &d); return true; }}); vs.push_back({std::string("RapidJSON: insitu (copy)") + sfx, [n](const std::string & s, result & r) { std::string b = s; rapidjson::Document d; d.ParseInsitu(&b[0]); if (d.HasParseError()) { return false; } r.acc = pick(n, &d); return true; }}); + vs.push_back({std::string("RapidJSON: insitu (copy untimed)") + sfx, [n](const std::string & s, result & r) { taken_copy b(s); rapidjson::Document d; d.ParseInsitu(b.buf); if (d.HasParseError()) { return false; } r.acc = pick(n, &d); return true; }, false, true}); + vs.push_back({std::string("RapidJSON: Document (string stream)") + sfx, [n](const std::string & s, result & r) { rapidjson::Document d; d.Parse(s.c_str()); if (d.HasParseError()) { return false; } r.acc = pick(n, &d); return true; }}); vs.push_back({std::string("RapidJSON: Document (raw numbers)") + sfx, [n](const std::string & s, result & r) { rapidjson::Document d; d.Parse(s.data(), s.size()); if (d.HasParseError()) { return false; } r.acc = pick(n, &d); return true; }}); vs.push_back({std::string("RapidJSON: Document (reused allocator)") + sfx, [n, rp](const std::string & s, result & r) { return rp->parse(s, [&](const rapidjson::Value & d) { r.acc = pick(n, &d); return true; }); }}); } @@ -2911,11 +3013,14 @@ static void add_rapidjson(std::vector& vs, const std::string& uc, const { vs.push_back({std::string("RapidJSON: Document") + sfx, [n](const std::string & s, result & r) { rapidjson::Document d; d.Parse(s.data(), s.size()); return !d.HasParseError() && edit_rapidjson(n, d, r); }}); vs.push_back({std::string("RapidJSON: insitu (copy)") + sfx, [n](const std::string & s, result & r) { std::string b = s; rapidjson::Document d; d.ParseInsitu(&b[0]); return !d.HasParseError() && edit_rapidjson(n, d, r); }}); + vs.push_back({std::string("RapidJSON: insitu (copy untimed)") + sfx, [n](const std::string & s, result & r) { taken_copy b(s); rapidjson::Document d; d.ParseInsitu(b.buf); return !d.HasParseError() && edit_rapidjson(n, d, r); }, false, true}); + vs.push_back({std::string("RapidJSON: Document (string stream)") + sfx, [n](const std::string & s, result & r) { rapidjson::Document d; d.Parse(s.c_str()); return !d.HasParseError() && edit_rapidjson(n, d, r); }}); } else if (uc == "minify") { vs.push_back({std::string("RapidJSON: Document + Writer") + sfx, [](const std::string & s, result & r) { rapidjson::Document d; d.Parse(s.data(), s.size()); if (d.HasParseError()) { return false; } rapidjson::StringBuffer sb; rapidjson::Writer w(sb); return d.Accept(w) && emit(r, sb.GetString(), sb.GetSize()); }}); vs.push_back({std::string("RapidJSON: SAX to Writer") + sfx, [](const std::string & s, result & r) { rapidjson::StringBuffer sb; rapidjson::Writer w(sb); return rj_read(s, w) && emit(r, sb.GetString(), sb.GetSize()); }}); + vs.push_back({std::string("RapidJSON: SAX to Writer (string stream)") + sfx, [](const std::string & s, result & r) { rapidjson::StringBuffer sb; rapidjson::Writer w(sb); return rj_read_cstr(s, w) && emit(r, sb.GetString(), sb.GetSize()); }}); vs.push_back({std::string("RapidJSON: SAX to Writer (raw numbers)") + sfx, [](const std::string & s, result & r) { rapidjson::StringBuffer sb; rj_raw_writer w(sb); return rj_read(s, w) && emit(r, sb.GetString(), sb.GetSize()); }}); vs.push_back({std::string("RapidJSON: Document + Writer (reused allocator)") + sfx, [rp](const std::string & s, result & r) { return rp->parse(s, [&r](const rapidjson::Value & d) { rapidjson::StringBuffer sb; rapidjson::Writer w(sb); return d.Accept(w) && emit(r, sb.GetString(), sb.GetSize()); }); }}); } @@ -3286,6 +3391,22 @@ int main(int argc, char** argv) add_rapidjson(all, uc, dc.base, "", rj); add_rapidjson(all, uc, dc.base, " (no encoding check)", rj); } + // BENCH_ONLY=[,...]: only the variants whose name starts with one of them (A/B runs of two + // nlohmann headers, or a few libraries) + if (const char* const only = std::getenv("BENCH_ONLY")) + { + std::vector prefixes; + std::string rest = only; + for (std::size_t comma; (comma = rest.find(',')) != std::string::npos; rest.erase(0, comma + 1)) + { + prefixes.push_back(rest.substr(0, comma)); + } + prefixes.push_back(rest); + all.erase(std::remove_if(all.begin(), all.end(), [&](const variant& v) + { + return std::none_of(prefixes.begin(), prefixes.end(), [&](const std::string& p) { return v.name.compare(0, p.size(), p) == 0; }); + }), all.end()); + } // the reference result, from json_document (sum, select) or json (edit, minify, write) stats ref_st; @@ -3401,8 +3522,16 @@ int main(int argc, char** argv) for (const std::size_t k : order) { result res; + if (vs[k].untimed_copy) + { + g_copies.make(s, 1); + } run(vs[k], s, res); // untimed: the previous variant's leftovers are cleaned up here g_sink = res.st.num + res.acc; + if (vs[k].untimed_copy) + { + g_copies.make(s, dc.batch); + } const auto t0 = std::chrono::steady_clock::now(); for (int b = 0; b < dc.batch; ++b) { @@ -3410,6 +3539,7 @@ int main(int argc, char** argv) g_sink = run(vs[k], s, rt) ? rt.st.num + rt.acc : -1; } best[k] = std::min(best[k], std::chrono::duration(std::chrono::steady_clock::now() - t0).count() / dc.batch); + g_copies.clear(); } } std::printf("%-13s %-9s", dc.name.c_str(), uc.c_str()); diff --git a/tests/benchmarks/json_view/others/summarize.py b/tests/benchmarks/json_view/others/summarize.py index 5fb706ca0..fd9a5c9b0 100755 --- a/tests/benchmarks/json_view/others/summarize.py +++ b/tests/benchmarks/json_view/others/summarize.py @@ -17,8 +17,9 @@ error, or crashes on any probe), or "n/a" (write: no input to validate; counts a worst it got for any file. Prints, for every use case and file, (a) per library the best "full" variant and, if faster, the best variant at any level, with their ratios to the best "full" nlohmann json_document variant (variants named "(reused)" or "(reused allocator)" keep a parser, - document or allocator across calls and are never chosen as a library's best), and in a "reused:" line the - library's best reused variant in the same way, + document or allocator across calls and are never chosen as a library's best; neither are "(copy untimed)" + variants, which copy their input before the timer starts), and in a "reused:" line the library's best reused + variant in the same way, (b) all variants with their levels and times, (c) the variants below "full" with what the probes found, and the variants excluded for wrong results. --json writes {use case: {file: {library: {"best": {"variant", "us", "level"} or null, "best_any": {...}, @@ -54,6 +55,10 @@ def is_reused(name): return re.search(r"\(reused[ )]", name) is not None +def is_untimed_copy(name): + return "(copy untimed)" in name + + def worse(a, b): return a if a is not None and (b is None or RANK[a] >= RANK[b]) else b @@ -159,7 +164,7 @@ def main(): return {"variant": variant(x[0]), "us": x[1], "level": levels[(uc, x[0])]} if x else None for lib, vs in libs.items(): - b, a = pick({n: t for n, t in vs.items() if not is_reused(n)}) + b, a = pick({n: t for n, t in vs.items() if not is_reused(n) and not is_untimed_copy(n)}) rb, ra = pick({n: t for n, t in vs.items() if is_reused(n)}) entry[lib] = { "best": described(b),