Rerun on develop 7fc8312c64 with the open pull requests #6029, #6031,
#6033 and #6039 merged, measured on November 7: the suite (median of 12
runs, now 3.3x), the timeline (358 commits, #6031 shown as a pending
step on the candidate, #6028 labeled, a tick for November), the compile
times, the stream gap, the allocator check and the comparison on the
Mac and on x86-64, including the held-out files.
The comparison now leaves out the "copy untimed" variants, as the post
describes, and the held-out chart no longer counts json::accept() as
another library. Appendix D, the Intel column of Appendix B and the
GCC 16/Clang 23 check on the Mac are still from November 3.
Signed-off-by: Niels Lohmann <mail@nlohmann.me>
No files matched your search
@@ -1,34 +1,34 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--blog" viewBox="0 0 560 250" role="img" aria-labelledby="nj-blog-dist nj-blog-dist-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-dist">Speedup of 3.13.0 over 3.12.0 for all 182 benchmarks of the suite</title>
|
||||
<desc id="nj-blog-dist-d">Bars counting the benchmarks per speedup range: below 1x: 1; 1 to 1.5x: 22; 1.5 to 2x: 12; 2 to 3x: 60; 3 to 5x: 58; 5 to 10x: 25; 10x or more: 4. Median 2.9x, geometric mean 3.0x.</desc>
|
||||
<desc id="nj-blog-dist-d">Bars counting the benchmarks per speedup range: below 1x: 2; 1 to 1.5x: 21; 1.5 to 2x: 18; 2 to 3x: 52; 3 to 5x: 48; 5 to 10x: 31; 10x or more: 10. Median 2.9x, geometric mean 3.3x.</desc>
|
||||
<line class="nj-charts-grid" x1="52" y1="196" x2="548" y2="196"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="46" y="200">0</text>
|
||||
<line class="nj-charts-grid" x1="52" y1="144.571" x2="548" y2="144.571"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="46" y="148.571">20</text>
|
||||
<line class="nj-charts-grid" x1="52" y1="93.1429" x2="548" y2="93.1429"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="46" y="97.1429">40</text>
|
||||
<line class="nj-charts-grid" x1="52" y1="41.7143" x2="548" y2="41.7143"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="46" y="45.7143">60</text>
|
||||
<rect class="nj-charts-c2" x="60.0" y="193.4" width="54.9" height="2.6" rx="3"><title>below 1×: 1</title></rect>
|
||||
<text class="nj-charts-val" x="87.4" y="188.4" text-anchor="middle">1</text>
|
||||
<line class="nj-charts-grid" x1="52" y1="136" x2="548" y2="136"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="46" y="140">20</text>
|
||||
<line class="nj-charts-grid" x1="52" y1="76" x2="548" y2="76"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="46" y="80">40</text>
|
||||
<line class="nj-charts-grid" x1="52" y1="16" x2="548" y2="16"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="46" y="20">60</text>
|
||||
<rect class="nj-charts-c2" x="60.0" y="190.0" width="54.9" height="6.0" rx="3"><title>below 1×: 2</title></rect>
|
||||
<text class="nj-charts-val" x="87.4" y="185.0" text-anchor="middle">2</text>
|
||||
<text class="nj-charts-tick" x="87.4" y="212.0">below 1×</text>
|
||||
<rect class="nj-charts-c1" x="130.9" y="139.4" width="54.9" height="56.6" rx="3"><title>1 to 1.5×: 22</title></rect>
|
||||
<text class="nj-charts-val" x="158.3" y="134.4" text-anchor="middle">22</text>
|
||||
<rect class="nj-charts-c1" x="130.9" y="133.0" width="54.9" height="63.0" rx="3"><title>1 to 1.5×: 21</title></rect>
|
||||
<text class="nj-charts-val" x="158.3" y="128.0" text-anchor="middle">21</text>
|
||||
<text class="nj-charts-tick" x="158.3" y="212.0">1 to 1.5×</text>
|
||||
<rect class="nj-charts-c1" x="201.7" y="165.1" width="54.9" height="30.9" rx="3"><title>1.5 to 2×: 12</title></rect>
|
||||
<text class="nj-charts-val" x="229.1" y="160.1" text-anchor="middle">12</text>
|
||||
<rect class="nj-charts-c1" x="201.7" y="142.0" width="54.9" height="54.0" rx="3"><title>1.5 to 2×: 18</title></rect>
|
||||
<text class="nj-charts-val" x="229.1" y="137.0" text-anchor="middle">18</text>
|
||||
<text class="nj-charts-tick" x="229.1" y="212.0">1.5 to 2×</text>
|
||||
<rect class="nj-charts-c1" x="272.6" y="41.7" width="54.9" height="154.3" rx="3"><title>2 to 3×: 60</title></rect>
|
||||
<text class="nj-charts-val" x="300.0" y="36.7" text-anchor="middle">60</text>
|
||||
<rect class="nj-charts-c1" x="272.6" y="40.0" width="54.9" height="156.0" rx="3"><title>2 to 3×: 52</title></rect>
|
||||
<text class="nj-charts-val" x="300.0" y="35.0" text-anchor="middle">52</text>
|
||||
<text class="nj-charts-tick" x="300.0" y="212.0">2 to 3×</text>
|
||||
<rect class="nj-charts-c1" x="343.4" y="46.9" width="54.9" height="149.1" rx="3"><title>3 to 5×: 58</title></rect>
|
||||
<text class="nj-charts-val" x="370.9" y="41.9" text-anchor="middle">58</text>
|
||||
<rect class="nj-charts-c1" x="343.4" y="52.0" width="54.9" height="144.0" rx="3"><title>3 to 5×: 48</title></rect>
|
||||
<text class="nj-charts-val" x="370.9" y="47.0" text-anchor="middle">48</text>
|
||||
<text class="nj-charts-tick" x="370.9" y="212.0">3 to 5×</text>
|
||||
<rect class="nj-charts-c1" x="414.3" y="131.7" width="54.9" height="64.3" rx="3"><title>5 to 10×: 25</title></rect>
|
||||
<text class="nj-charts-val" x="441.7" y="126.7" text-anchor="middle">25</text>
|
||||
<rect class="nj-charts-c1" x="414.3" y="103.0" width="54.9" height="93.0" rx="3"><title>5 to 10×: 31</title></rect>
|
||||
<text class="nj-charts-val" x="441.7" y="98.0" text-anchor="middle">31</text>
|
||||
<text class="nj-charts-tick" x="441.7" y="212.0">5 to 10×</text>
|
||||
<rect class="nj-charts-c1" x="485.1" y="185.7" width="54.9" height="10.3" rx="3"><title>10× or more: 4</title></rect>
|
||||
<text class="nj-charts-val" x="512.6" y="180.7" text-anchor="middle">4</text>
|
||||
<rect class="nj-charts-c1" x="485.1" y="166.0" width="54.9" height="30.0" rx="3"><title>10× or more: 10</title></rect>
|
||||
<text class="nj-charts-val" x="512.6" y="161.0" text-anchor="middle">10</text>
|
||||
<text class="nj-charts-tick" x="512.6" y="212.0">10× or more</text>
|
||||
<line class="nj-charts-axis" x1="52" y1="196" x2="548" y2="196"/>
|
||||
<text class="nj-charts-tick" x="300" y="240">speedup over 3.12.0, more is better</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 3.1 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--blog" viewBox="0 0 620 482" role="img" aria-labelledby="nj-blog-heldout nj-blog-heldout-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-heldout">Validating 19 files 3.13.0 was not tuned on: json_document's time relative to the fastest other library per file</title>
|
||||
<desc id="nj-blog-heldout-d">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).</desc>
|
||||
<desc id="nj-blog-heldout-d">Dot plot per file, less is better; below 1.0 json_document is the fastest fully validating library. mesh: Mac 0.72, x86-64 0.44 (serde_json (Rust)); semanticscholar-corpus: Mac 0.78, x86-64 0.63 (sonic-rs (Rust)); gsoc-2018: Mac 0.59, x86-64 0.64 (Boost.J​SON); marine_ik: Mac 0.62, x86-64 0.64 (Boost.J​SON); twitter_api_compact_response: Mac 0.91, x86-64 0.66 (yyjson); twitterescaped: Mac 0.94, x86-64 0.76 (simdjson); update-center: Mac 0.88, x86-64 0.77 (simdjson); github_events: Mac 0.78, x86-64 0.78 (simdjson); twitter_api_response: Mac 0.95, x86-64 0.81 (simdjson); twitter_timeline: Mac 0.99, x86-64 0.82 (yyjson); numbers: Mac 0.72, x86-64 0.82 (Boost.J​SON); random: Mac 0.82, x86-64 0.86 (simdjson); repeat: Mac 0.65, x86-64 0.89 (simdjson); apache_builds: Mac 1.08, x86-64 0.90 (simdjson); instruments: Mac 0.92, x86-64 0.91 (simdjson); google_maps_api_compact_response: Mac 0.87, x86-64 0.92 (yyjson); mesh.pretty: Mac 0.88, x86-64 0.93 (Boost.J​SON); tree-pretty: Mac 0.96, x86-64 0.94 (simdjson); google_maps_api_response: Mac 0.91, x86-64 1.00 (simdjson).</desc>
|
||||
<line class="nj-charts-grid" x1="262" y1="50" x2="262" y2="438"/>
|
||||
<text class="nj-charts-tick" x="262" y="454">0.4×</text>
|
||||
<line class="nj-charts-grid" x1="291.867" y1="50" x2="291.867" y2="438"/>
|
||||
@@ -22,80 +22,80 @@
|
||||
<circle class="nj-charts-ojson-dot" cx="134.2" cy="14" r="5"/><text class="nj-charts-leg" x="144.2" y="18.5">x86-64, G​CC 16.2</text>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="48">next on x86-64</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="68" text-anchor="end">mesh</text>
|
||||
<circle class="nj-charts-json-dot" cx="344.8" cy="60.5" r="4.5"><title>mesh, Apple M1 Max: 0.68× the time of Glaze</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="273.6" cy="67.5" r="4.5"><title>mesh, x86-64, G​CC 16.2: 0.44× the time of serde_json (Rust)</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="357.0" cy="60.5" r="4.5"><title>mesh, Apple M1 Max: 0.72× the time of Glaze</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="273.8" cy="67.5" r="4.5"><title>mesh, x86-64, G​CC 16.2: 0.44× the time of serde_json (Rust)</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="68">serde_json (Rust)</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="88" text-anchor="end">marine_ik</text>
|
||||
<circle class="nj-charts-json-dot" cx="319.5" cy="80.5" r="4.5"><title>marine_ik, Apple M1 Max: 0.59× the time of Glaze</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="334.2" cy="87.5" r="4.5"><title>marine_ik, x86-64, G​CC 16.2: 0.64× the time of Boost.J​SON</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="88">Boost.J​SON</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="108" text-anchor="end">semanticscholar-corpus</text>
|
||||
<circle class="nj-charts-json-dot" cx="377.9" cy="100.5" r="4.5"><title>semanticscholar-corpus, Apple M1 Max: 0.79× the time of sonic-rs (Rust)</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="336.0" cy="107.5" r="4.5"><title>semanticscholar-corpus, x86-64, G​CC 16.2: 0.65× the time of sonic-rs (Rust)</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="108">sonic-rs (Rust)</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="128" text-anchor="end">gsoc-2018</text>
|
||||
<circle class="nj-charts-json-dot" cx="322.9" cy="120.5" r="4.5"><title>gsoc-2018, Apple M1 Max: 0.60× the time of sonic-rs (Rust)</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="338.8" cy="127.5" r="4.5"><title>gsoc-2018, x86-64, G​CC 16.2: 0.66× the time of Boost.J​SON</title></circle>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="88" text-anchor="end">semanticscholar-corpus</text>
|
||||
<circle class="nj-charts-json-dot" cx="376.0" cy="80.5" r="4.5"><title>semanticscholar-corpus, Apple M1 Max: 0.78× the time of sonic-rs (Rust)</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="331.5" cy="87.5" r="4.5"><title>semanticscholar-corpus, x86-64, G​CC 16.2: 0.63× the time of sonic-rs (Rust)</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="88">sonic-rs (Rust)</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="108" text-anchor="end">gsoc-2018</text>
|
||||
<circle class="nj-charts-json-dot" cx="318.5" cy="100.5" r="4.5"><title>gsoc-2018, Apple M1 Max: 0.59× the time of sonic-rs (Rust)</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="332.3" cy="107.5" r="4.5"><title>gsoc-2018, x86-64, G​CC 16.2: 0.64× the time of Boost.J​SON</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="108">Boost.J​SON</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="128" text-anchor="end">marine_ik</text>
|
||||
<circle class="nj-charts-json-dot" cx="326.2" cy="120.5" r="4.5"><title>marine_ik, Apple M1 Max: 0.62× the time of Glaze</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="333.7" cy="127.5" r="4.5"><title>marine_ik, x86-64, G​CC 16.2: 0.64× the time of Boost.J​SON</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="128">Boost.J​SON</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="148" text-anchor="end">twitter_api_compact_response</text>
|
||||
<circle class="nj-charts-json-dot" cx="414.0" cy="140.5" r="4.5"><title>twitter_api_compact_response, Apple M1 Max: 0.91× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="352.1" cy="147.5" r="4.5"><title>twitter_api_compact_response, x86-64, G​CC 16.2: 0.70× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="148">simdjson</text>
|
||||
<circle class="nj-charts-ojson-dot" cx="340.0" cy="147.5" r="4.5"><title>twitter_api_compact_response, x86-64, G​CC 16.2: 0.66× the time of yyjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="148">yyjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="168" text-anchor="end">twitterescaped</text>
|
||||
<circle class="nj-charts-json-dot" cx="419.5" cy="160.5" r="4.5"><title>twitterescaped, Apple M1 Max: 0.93× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="370.8" cy="167.5" r="4.5"><title>twitterescaped, x86-64, G​CC 16.2: 0.76× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="423.0" cy="160.5" r="4.5"><title>twitterescaped, Apple M1 Max: 0.94× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="368.5" cy="167.5" r="4.5"><title>twitterescaped, x86-64, G​CC 16.2: 0.76× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="168">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="188" text-anchor="end">numbers</text>
|
||||
<circle class="nj-charts-json-dot" cx="343.3" cy="180.5" r="4.5"><title>numbers, Apple M1 Max: 0.67× the time of Boost.J​SON</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="373.1" cy="187.5" r="4.5"><title>numbers, x86-64, G​CC 16.2: 0.77× the time of Boost.J​SON</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="188">Boost.J​SON</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="188" text-anchor="end">update-center</text>
|
||||
<circle class="nj-charts-json-dot" cx="404.3" cy="180.5" r="4.5"><title>update-center, Apple M1 Max: 0.88× the time of sonic-rs (Rust)</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="372.0" cy="187.5" r="4.5"><title>update-center, x86-64, G​CC 16.2: 0.77× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="188">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="208" text-anchor="end">github_events</text>
|
||||
<circle class="nj-charts-json-dot" cx="379.5" cy="200.5" r="4.5"><title>github_events, Apple M1 Max: 0.79× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="373.4" cy="207.5" r="4.5"><title>github_events, x86-64, G​CC 16.2: 0.77× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="375.6" cy="200.5" r="4.5"><title>github_events, Apple M1 Max: 0.78× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="375.2" cy="207.5" r="4.5"><title>github_events, x86-64, G​CC 16.2: 0.78× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="208">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="228" text-anchor="end">update-center</text>
|
||||
<circle class="nj-charts-json-dot" cx="405.1" cy="220.5" r="4.5"><title>update-center, Apple M1 Max: 0.88× the time of sonic-rs (Rust)</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="377.7" cy="227.5" r="4.5"><title>update-center, x86-64, G​CC 16.2: 0.79× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="228" text-anchor="end">twitter_api_response</text>
|
||||
<circle class="nj-charts-json-dot" cx="427.3" cy="220.5" r="4.5"><title>twitter_api_response, Apple M1 Max: 0.95× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="384.1" cy="227.5" r="4.5"><title>twitter_api_response, x86-64, G​CC 16.2: 0.81× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="228">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="248" text-anchor="end">twitter_timeline</text>
|
||||
<circle class="nj-charts-json-dot" cx="431.6" cy="240.5" r="4.5"><title>twitter_timeline, Apple M1 Max: 0.97× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="381.3" cy="247.5" r="4.5"><title>twitter_timeline, x86-64, G​CC 16.2: 0.80× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="437.3" cy="240.5" r="4.5"><title>twitter_timeline, Apple M1 Max: 0.99× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="386.2" cy="247.5" r="4.5"><title>twitter_timeline, x86-64, G​CC 16.2: 0.82× the time of yyjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="248">yyjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="268" text-anchor="end">twitter_api_response</text>
|
||||
<circle class="nj-charts-json-dot" cx="420.4" cy="260.5" r="4.5"><title>twitter_api_response, Apple M1 Max: 0.93× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="384.1" cy="267.5" r="4.5"><title>twitter_api_response, x86-64, G​CC 16.2: 0.81× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="268">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="288" text-anchor="end">google_maps_api_compact_response</text>
|
||||
<circle class="nj-charts-json-dot" cx="399.2" cy="280.5" r="4.5"><title>google_maps_api_compact_response, Apple M1 Max: 0.86× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="384.2" cy="287.5" r="4.5"><title>google_maps_api_compact_response, x86-64, G​CC 16.2: 0.81× the time of yyjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="288">yyjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="268" text-anchor="end">numbers</text>
|
||||
<circle class="nj-charts-json-dot" cx="358.0" cy="260.5" r="4.5"><title>numbers, Apple M1 Max: 0.72× the time of Glaze</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="386.3" cy="267.5" r="4.5"><title>numbers, x86-64, G​CC 16.2: 0.82× the time of Boost.J​SON</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="268">Boost.J​SON</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="288" text-anchor="end">random</text>
|
||||
<circle class="nj-charts-json-dot" cx="388.2" cy="280.5" r="4.5"><title>random, Apple M1 Max: 0.82× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="400.0" cy="287.5" r="4.5"><title>random, x86-64, G​CC 16.2: 0.86× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="288">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="308" text-anchor="end">repeat</text>
|
||||
<circle class="nj-charts-json-dot" cx="336.7" cy="300.5" r="4.5"><title>repeat, Apple M1 Max: 0.65× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="388.2" cy="307.5" r="4.5"><title>repeat, x86-64, G​CC 16.2: 0.82× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="409.2" cy="307.5" r="4.5"><title>repeat, x86-64, G​CC 16.2: 0.89× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="308">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="328" text-anchor="end">random</text>
|
||||
<circle class="nj-charts-json-dot" cx="383.7" cy="320.5" r="4.5"><title>random, Apple M1 Max: 0.81× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="404.9" cy="327.5" r="4.5"><title>random, x86-64, G​CC 16.2: 0.88× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="328" text-anchor="end">apache_builds</text>
|
||||
<circle class="nj-charts-json-dot" cx="465.2" cy="320.5" r="4.5"><title>apache_builds, Apple M1 Max: 1.08× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="412.0" cy="327.5" r="4.5"><title>apache_builds, x86-64, G​CC 16.2: 0.90× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="328">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="348" text-anchor="end">apache_builds</text>
|
||||
<circle class="nj-charts-json-dot" cx="463.6" cy="340.5" r="4.5"><title>apache_builds, Apple M1 Max: 1.08× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="412.4" cy="347.5" r="4.5"><title>apache_builds, x86-64, G​CC 16.2: 0.90× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="348" text-anchor="end">instruments</text>
|
||||
<circle class="nj-charts-json-dot" cx="417.1" cy="340.5" r="4.5"><title>instruments, Apple M1 Max: 0.92× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="415.6" cy="347.5" r="4.5"><title>instruments, x86-64, G​CC 16.2: 0.91× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="348">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="368" text-anchor="end">instruments</text>
|
||||
<circle class="nj-charts-json-dot" cx="412.5" cy="360.5" r="4.5"><title>instruments, Apple M1 Max: 0.90× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="416.2" cy="367.5" r="4.5"><title>instruments, x86-64, G​CC 16.2: 0.92× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="368">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="368" text-anchor="end">google_maps_api_compact_response</text>
|
||||
<circle class="nj-charts-json-dot" cx="403.3" cy="360.5" r="4.5"><title>google_maps_api_compact_response, Apple M1 Max: 0.87× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="416.8" cy="367.5" r="4.5"><title>google_maps_api_compact_response, x86-64, G​CC 16.2: 0.92× the time of yyjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="368">yyjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="388" text-anchor="end">mesh.pretty</text>
|
||||
<circle class="nj-charts-json-dot" cx="398.9" cy="380.5" r="4.5"><title>mesh.pretty, Apple M1 Max: 0.86× the time of Glaze</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="418.6" cy="387.5" r="4.5"><title>mesh.pretty, x86-64, G​CC 16.2: 0.92× the time of Boost.J​SON</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="405.5" cy="380.5" r="4.5"><title>mesh.pretty, Apple M1 Max: 0.88× the time of Glaze</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="419.6" cy="387.5" r="4.5"><title>mesh.pretty, x86-64, G​CC 16.2: 0.93× the time of Boost.J​SON</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="388">Boost.J​SON</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="408" text-anchor="end">tree-pretty</text>
|
||||
<circle class="nj-charts-json-dot" cx="420.1" cy="400.5" r="4.5"><title>tree-pretty, Apple M1 Max: 0.93× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="429.3" cy="407.5" r="4.5"><title>tree-pretty, x86-64, G​CC 16.2: 0.96× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="427.9" cy="400.5" r="4.5"><title>tree-pretty, Apple M1 Max: 0.96× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="424.3" cy="407.5" r="4.5"><title>tree-pretty, x86-64, G​CC 16.2: 0.94× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="408">simdjson</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="252" y="428" text-anchor="end">google_maps_api_response</text>
|
||||
<circle class="nj-charts-json-dot" cx="419.0" cy="420.5" r="4.5"><title>google_maps_api_response, Apple M1 Max: 0.93× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="439.0" cy="427.5" r="4.5"><title>google_maps_api_response, x86-64, G​CC 16.2: 0.99× the time of simdjson</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="415.8" cy="420.5" r="4.5"><title>google_maps_api_response, Apple M1 Max: 0.91× the time of yyjson</title></circle>
|
||||
<circle class="nj-charts-ojson-dot" cx="441.2" cy="427.5" r="4.5"><title>google_maps_api_response, x86-64, G​CC 16.2: 1.00× the time of simdjson</title></circle>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="500" y="428">simdjson</text>
|
||||
<line class="nj-charts-ref" x1="441.2" y1="50" x2="441.2" y2="438"/>
|
||||
<text class="nj-charts-tick" x="441.2" y="44">as fast as the next</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -1,87 +1,97 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--blog" viewBox="0 0 560 604" role="img" aria-labelledby="nj-blog-overview nj-blog-overview-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-overview">Speedup of 3.13.0 over 3.12.0 per workload, Apple M1 Max, Apple clang</title>
|
||||
<desc id="nj-blog-overview-d">Horizontal bars of the speedup, more is better. twitter.json 3.1x; citm_catalog.json 4.2x; canada.json 3.4x; canada.json, indented 6.5x; citm, ordered_json 6.8x; twitter, std::ifstream 2.5x; citm, FILE* 4.7x; citm, accept() 7.1x; dump() twitter 6.7x; dump() canada 3.0x; dump(4) citm 4.7x; to_cbor() twitter 4.6x; twitter, memory 3.4x; twitter, FILE* 6.6x; diff() canada 10x; iterate canada 2.7x; copy + destroy citm 1.13x; == citm 1.06x.</desc>
|
||||
<desc id="nj-blog-overview-d">Horizontal bars of the speedup, more is better. twitter.json 3.5x; citm_catalog.json 5.1x; canada.json 4.1x; canada.json, indented 7.4x; citm, ordered_json 8.2x; twitter, std::ifstream 2.5x; citm, FILE* 15x; citm, accept() 14x; dump() twitter 6.6x; dump() canada 2.9x; dump(4) citm 4.6x; to_cbor() twitter 4.4x; twitter, memory 3.5x; twitter, FILE* 9.2x; diff() canada 10x; iterate canada 1.96x; copy + destroy citm 1.11x; == citm 1.01x.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="20">Parsing</text>
|
||||
<text class="nj-charts-panel" x="8" y="244">Writing</text>
|
||||
<text class="nj-charts-panel" x="8" y="372">Reading C​BOR</text>
|
||||
<text class="nj-charts-panel" x="8" y="452">Values</text>
|
||||
<line class="nj-charts-grid" x1="220" y1="8" x2="220" y2="560"/>
|
||||
<text class="nj-charts-tick" x="220" y="576">1×</text>
|
||||
<line class="nj-charts-grid" x1="250" y1="8" x2="250" y2="560"/>
|
||||
<text class="nj-charts-tick" x="250" y="576">2×</text>
|
||||
<line class="nj-charts-grid" x1="280" y1="8" x2="280" y2="560"/>
|
||||
<text class="nj-charts-tick" x="280" y="576">3×</text>
|
||||
<line class="nj-charts-grid" x1="310" y1="8" x2="310" y2="560"/>
|
||||
<text class="nj-charts-tick" x="310" y="576">4×</text>
|
||||
<line class="nj-charts-grid" x1="340" y1="8" x2="340" y2="560"/>
|
||||
<text class="nj-charts-tick" x="340" y="576">5×</text>
|
||||
<line class="nj-charts-grid" x1="370" y1="8" x2="370" y2="560"/>
|
||||
<text class="nj-charts-tick" x="370" y="576">6×</text>
|
||||
<line class="nj-charts-grid" x1="400" y1="8" x2="400" y2="560"/>
|
||||
<text class="nj-charts-tick" x="400" y="576">7×</text>
|
||||
<line class="nj-charts-grid" x1="430" y1="8" x2="430" y2="560"/>
|
||||
<text class="nj-charts-tick" x="430" y="576">8×</text>
|
||||
<line class="nj-charts-grid" x1="460" y1="8" x2="460" y2="560"/>
|
||||
<text class="nj-charts-tick" x="460" y="576">9×</text>
|
||||
<line class="nj-charts-grid" x1="490" y1="8" x2="490" y2="560"/>
|
||||
<text class="nj-charts-tick" x="490" y="576">10×</text>
|
||||
<line class="nj-charts-grid" x1="210.625" y1="8" x2="210.625" y2="560"/>
|
||||
<text class="nj-charts-tick" x="210.625" y="576">1×</text>
|
||||
<line class="nj-charts-grid" x1="231.25" y1="8" x2="231.25" y2="560"/>
|
||||
<text class="nj-charts-tick" x="231.25" y="576">2×</text>
|
||||
<line class="nj-charts-grid" x1="251.875" y1="8" x2="251.875" y2="560"/>
|
||||
<text class="nj-charts-tick" x="251.875" y="576">3×</text>
|
||||
<line class="nj-charts-grid" x1="272.5" y1="8" x2="272.5" y2="560"/>
|
||||
<text class="nj-charts-tick" x="272.5" y="576">4×</text>
|
||||
<line class="nj-charts-grid" x1="293.125" y1="8" x2="293.125" y2="560"/>
|
||||
<text class="nj-charts-tick" x="293.125" y="576">5×</text>
|
||||
<line class="nj-charts-grid" x1="313.75" y1="8" x2="313.75" y2="560"/>
|
||||
<text class="nj-charts-tick" x="313.75" y="576">6×</text>
|
||||
<line class="nj-charts-grid" x1="334.375" y1="8" x2="334.375" y2="560"/>
|
||||
<text class="nj-charts-tick" x="334.375" y="576">7×</text>
|
||||
<line class="nj-charts-grid" x1="355" y1="8" x2="355" y2="560"/>
|
||||
<text class="nj-charts-tick" x="355" y="576">8×</text>
|
||||
<line class="nj-charts-grid" x1="375.625" y1="8" x2="375.625" y2="560"/>
|
||||
<text class="nj-charts-tick" x="375.625" y="576">9×</text>
|
||||
<line class="nj-charts-grid" x1="396.25" y1="8" x2="396.25" y2="560"/>
|
||||
<text class="nj-charts-tick" x="396.25" y="576">10×</text>
|
||||
<line class="nj-charts-grid" x1="416.875" y1="8" x2="416.875" y2="560"/>
|
||||
<text class="nj-charts-tick" x="416.875" y="576">11×</text>
|
||||
<line class="nj-charts-grid" x1="437.5" y1="8" x2="437.5" y2="560"/>
|
||||
<text class="nj-charts-tick" x="437.5" y="576">12×</text>
|
||||
<line class="nj-charts-grid" x1="458.125" y1="8" x2="458.125" y2="560"/>
|
||||
<text class="nj-charts-tick" x="458.125" y="576">13×</text>
|
||||
<line class="nj-charts-grid" x1="478.75" y1="8" x2="478.75" y2="560"/>
|
||||
<text class="nj-charts-tick" x="478.75" y="576">14×</text>
|
||||
<line class="nj-charts-grid" x1="499.375" y1="8" x2="499.375" y2="560"/>
|
||||
<text class="nj-charts-tick" x="499.375" y="576">15×</text>
|
||||
<line class="nj-charts-grid" x1="520" y1="8" x2="520" y2="560"/>
|
||||
<text class="nj-charts-tick" x="520" y="576">11×</text>
|
||||
<text class="nj-charts-tick" x="520" y="576">16×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="42" text-anchor="end">twitter.json</text>
|
||||
<path class="nj-charts-c1" d="M190 30 H280.2 Q284.2 30 284.2 34 V41 Q284.2 45 280.2 45 H190 Z"><title>twitter.json: 3.1×</title></path>
|
||||
<text class="nj-charts-val" x="289.2" y="42">3.1×</text>
|
||||
<path class="nj-charts-c1" d="M190 30 H257.981 Q261.981 30 261.981 34 V41 Q261.981 45 257.981 45 H190 Z"><title>twitter.json: 3.5×</title></path>
|
||||
<text class="nj-charts-val" x="266.981" y="42">3.5×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="66" text-anchor="end">citm_catalog.json</text>
|
||||
<path class="nj-charts-c1" d="M190 54 H313.5 Q317.5 54 317.5 58 V65 Q317.5 69 313.5 69 H190 Z"><title>citm_catalog.json: 4.2×</title></path>
|
||||
<text class="nj-charts-val" x="322.5" y="66">4.2×</text>
|
||||
<path class="nj-charts-c1" d="M190 54 H291.394 Q295.394 54 295.394 58 V65 Q295.394 69 291.394 69 H190 Z"><title>citm_catalog.json: 5.1×</title></path>
|
||||
<text class="nj-charts-val" x="300.394" y="66">5.1×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="90" text-anchor="end">canada.json</text>
|
||||
<path class="nj-charts-c1" d="M190 78 H286.5 Q290.5 78 290.5 82 V89 Q290.5 93 286.5 93 H190 Z"><title>canada.json: 3.4×</title></path>
|
||||
<text class="nj-charts-val" x="295.5" y="90">3.4×</text>
|
||||
<path class="nj-charts-c1" d="M190 78 H270.15 Q274.15 78 274.15 82 V89 Q274.15 93 270.15 93 H190 Z"><title>canada.json: 4.1×</title></path>
|
||||
<text class="nj-charts-val" x="279.15" y="90">4.1×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="114" text-anchor="end">canada.json, indented</text>
|
||||
<path class="nj-charts-c1" d="M190 102 H381.3 Q385.3 102 385.3 106 V113 Q385.3 117 381.3 117 H190 Z"><title>canada.json, indented: 6.5×</title></path>
|
||||
<text class="nj-charts-val" x="390.3" y="114">6.5×</text>
|
||||
<path class="nj-charts-c1" d="M190 102 H338.831 Q342.831 102 342.831 106 V113 Q342.831 117 338.831 117 H190 Z"><title>canada.json, indented: 7.4×</title></path>
|
||||
<text class="nj-charts-val" x="347.831" y="114">7.4×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="138" text-anchor="end">citm, ordered_json</text>
|
||||
<path class="nj-charts-c1" d="M190 126 H391.5 Q395.5 126 395.5 130 V137 Q395.5 141 391.5 141 H190 Z"><title>citm, ordered_json: 6.8×</title></path>
|
||||
<text class="nj-charts-val" x="400.5" y="138">6.8×</text>
|
||||
<path class="nj-charts-c1" d="M190 126 H354.712 Q358.712 126 358.712 130 V137 Q358.712 141 354.712 141 H190 Z"><title>citm, ordered_json: 8.2×</title></path>
|
||||
<text class="nj-charts-val" x="363.712" y="138">8.2×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="162" text-anchor="end">twitter, std::ifstream</text>
|
||||
<path class="nj-charts-c1" d="M190 150 H261 Q265 150 265 154 V161 Q265 165 261 165 H190 Z"><title>twitter, std::ifstream: 2.5×</title></path>
|
||||
<text class="nj-charts-val" x="270" y="162">2.5×</text>
|
||||
<path class="nj-charts-c1" d="M190 150 H236.738 Q240.738 150 240.738 154 V161 Q240.738 165 236.738 165 H190 Z"><title>twitter, std::ifstream: 2.5×</title></path>
|
||||
<text class="nj-charts-val" x="245.738" y="162">2.5×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="186" text-anchor="end">citm, FILE*</text>
|
||||
<path class="nj-charts-c1" d="M190 174 H328.2 Q332.2 174 332.2 178 V185 Q332.2 189 328.2 189 H190 Z"><title>citm, FILE*: 4.7×</title></path>
|
||||
<text class="nj-charts-val" x="337.2" y="186">4.7×</text>
|
||||
<path class="nj-charts-c1" d="M190 174 H494.137 Q498.137 174 498.137 178 V185 Q498.137 189 494.137 189 H190 Z"><title>citm, FILE*: 15×</title></path>
|
||||
<text class="nj-charts-val" x="503.137" y="186">15×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="210" text-anchor="end">citm, accept()</text>
|
||||
<path class="nj-charts-c1" d="M190 198 H398.1 Q402.1 198 402.1 202 V209 Q402.1 213 398.1 213 H190 Z"><title>citm, accept(): 7.1×</title></path>
|
||||
<text class="nj-charts-val" x="407.1" y="210">7.1×</text>
|
||||
<path class="nj-charts-c1" d="M190 198 H467.738 Q471.738 198 471.738 202 V209 Q471.738 213 467.738 213 H190 Z"><title>citm, accept(): 14×</title></path>
|
||||
<text class="nj-charts-val" x="476.738" y="210">14×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="266" text-anchor="end">dump() twitter</text>
|
||||
<path class="nj-charts-c1" d="M190 254 H387 Q391 254 391 258 V265 Q391 269 387 269 H190 Z"><title>dump() twitter: 6.7×</title></path>
|
||||
<text class="nj-charts-val" x="396" y="266">6.7×</text>
|
||||
<path class="nj-charts-c1" d="M190 254 H322.125 Q326.125 254 326.125 258 V265 Q326.125 269 322.125 269 H190 Z"><title>dump() twitter: 6.6×</title></path>
|
||||
<text class="nj-charts-val" x="331.125" y="266">6.6×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="290" text-anchor="end">dump() canada</text>
|
||||
<path class="nj-charts-c1" d="M190 278 H275.4 Q279.4 278 279.4 282 V289 Q279.4 293 275.4 293 H190 Z"><title>dump() canada: 3.0×</title></path>
|
||||
<text class="nj-charts-val" x="284.4" y="290">3.0×</text>
|
||||
<path class="nj-charts-c1" d="M190 278 H245.812 Q249.812 278 249.812 282 V289 Q249.812 293 245.812 293 H190 Z"><title>dump() canada: 2.9×</title></path>
|
||||
<text class="nj-charts-val" x="254.812" y="290">2.9×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="314" text-anchor="end">dump(4) citm</text>
|
||||
<path class="nj-charts-c1" d="M190 302 H327 Q331 302 331 306 V313 Q331 317 327 317 H190 Z"><title>dump(4) citm: 4.7×</title></path>
|
||||
<text class="nj-charts-val" x="336" y="314">4.7×</text>
|
||||
<path class="nj-charts-c1" d="M190 302 H281.288 Q285.288 302 285.288 306 V313 Q285.288 317 281.288 317 H190 Z"><title>dump(4) citm: 4.6×</title></path>
|
||||
<text class="nj-charts-val" x="290.288" y="314">4.6×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="338" text-anchor="end">to_cbor() twitter</text>
|
||||
<path class="nj-charts-c1" d="M190 326 H323.7 Q327.7 326 327.7 330 V337 Q327.7 341 323.7 341 H190 Z"><title>to_cbor() twitter: 4.6×</title></path>
|
||||
<text class="nj-charts-val" x="332.7" y="338">4.6×</text>
|
||||
<path class="nj-charts-c1" d="M190 326 H276.956 Q280.956 326 280.956 330 V337 Q280.956 341 276.956 341 H190 Z"><title>to_cbor() twitter: 4.4×</title></path>
|
||||
<text class="nj-charts-val" x="285.956" y="338">4.4×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="394" text-anchor="end">twitter, memory</text>
|
||||
<path class="nj-charts-c1" d="M190 382 H287.7 Q291.7 382 291.7 386 V393 Q291.7 397 287.7 397 H190 Z"><title>twitter, memory: 3.4×</title></path>
|
||||
<text class="nj-charts-val" x="296.7" y="394">3.4×</text>
|
||||
<path class="nj-charts-c1" d="M190 382 H258.6 Q262.6 382 262.6 386 V393 Q262.6 397 258.6 397 H190 Z"><title>twitter, memory: 3.5×</title></path>
|
||||
<text class="nj-charts-val" x="267.6" y="394">3.5×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="418" text-anchor="end">twitter, FILE*</text>
|
||||
<path class="nj-charts-c1" d="M190 406 H383.7 Q387.7 406 387.7 410 V417 Q387.7 421 383.7 421 H190 Z"><title>twitter, FILE*: 6.6×</title></path>
|
||||
<text class="nj-charts-val" x="392.7" y="418">6.6×</text>
|
||||
<path class="nj-charts-c1" d="M190 406 H376.369 Q380.369 406 380.369 410 V417 Q380.369 421 376.369 421 H190 Z"><title>twitter, FILE*: 9.2×</title></path>
|
||||
<text class="nj-charts-val" x="385.369" y="418">9.2×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="474" text-anchor="end">diff() canada</text>
|
||||
<path class="nj-charts-c1" d="M190 462 H499.8 Q503.8 462 503.8 466 V473 Q503.8 477 499.8 477 H190 Z"><title>diff() canada: 10×</title></path>
|
||||
<text class="nj-charts-val" x="508.8" y="474">10×</text>
|
||||
<path class="nj-charts-c1" d="M190 462 H401.325 Q405.325 462 405.325 466 V473 Q405.325 477 401.325 477 H190 Z"><title>diff() canada: 10×</title></path>
|
||||
<text class="nj-charts-val" x="410.325" y="474">10×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="498" text-anchor="end">iterate canada</text>
|
||||
<path class="nj-charts-c1" d="M190 486 H267.9 Q271.9 486 271.9 490 V497 Q271.9 501 267.9 501 H190 Z"><title>iterate canada: 2.7×</title></path>
|
||||
<text class="nj-charts-val" x="276.9" y="498">2.7×</text>
|
||||
<path class="nj-charts-c1" d="M190 486 H226.425 Q230.425 486 230.425 490 V497 Q230.425 501 226.425 501 H190 Z"><title>iterate canada: 1.96×</title></path>
|
||||
<text class="nj-charts-val" x="235.425" y="498">1.96×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="522" text-anchor="end">copy + destroy citm</text>
|
||||
<path class="nj-charts-c1" d="M190 510 H219.9 Q223.9 510 223.9 514 V521 Q223.9 525 219.9 525 H190 Z"><title>copy + destroy citm: 1.13×</title></path>
|
||||
<text class="nj-charts-val" x="228.9" y="522">1.13×</text>
|
||||
<path class="nj-charts-c1" d="M190 510 H208.894 Q212.894 510 212.894 514 V521 Q212.894 525 208.894 525 H190 Z"><title>copy + destroy citm: 1.11×</title></path>
|
||||
<text class="nj-charts-val" x="217.894" y="522">1.11×</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-tick--r" x="182" y="546" text-anchor="end">== citm</text>
|
||||
<path class="nj-charts-c1" d="M190 534 H217.8 Q221.8 534 221.8 538 V545 Q221.8 549 217.8 549 H190 Z"><title>== citm: 1.06×</title></path>
|
||||
<text class="nj-charts-val" x="226.8" y="546">1.06×</text>
|
||||
<line class="nj-charts-ref" x1="220" y1="8" x2="220" y2="560"/>
|
||||
<path class="nj-charts-c1" d="M190 534 H206.831 Q210.831 534 210.831 538 V545 Q210.831 549 206.831 549 H190 Z"><title>== citm: 1.01×</title></path>
|
||||
<text class="nj-charts-val" x="215.831" y="546">1.01×</text>
|
||||
<line class="nj-charts-ref" x1="210.625" y1="8" x2="210.625" y2="560"/>
|
||||
<line class="nj-charts-zero" x1="190" y1="8" x2="190" y2="560"/>
|
||||
<text class="nj-charts-tick" x="355" y="594">speedup over 3.12.0 (3.12.0 = 1×), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 8.1 KiB After Width: | Height: | Size: 9.1 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--blog" viewBox="0 0 600 618" role="img" aria-labelledby="nj-blog-price nj-blog-price-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-price">Compile time of two programs with 3.13.0, alone, with a precompiled header and as a module, compared with 3.12.0</title>
|
||||
<desc id="nj-blog-price-d">Horizontal bars of the change in compile time against 3.12.0, less is better. Apple clang 21, -O0 (debug), count_numbers, 3.13.0: +38%; Apple clang 21, -O0 (debug), count_numbers, 3.13.0, precompiled header: -28%; Apple clang 21, -O0 (debug), count_numbers, 3.13.0, module: -4%; Apple clang 21, -O0 (debug), server_config, 3.13.0: +34%; Apple clang 21, -O0 (debug), server_config, 3.13.0, precompiled header: -23%; Apple clang 21, -O0 (debug), server_config, 3.13.0, module: +2%; Apple clang 21, -O2, count_numbers, 3.13.0: +49%; Apple clang 21, -O2, count_numbers, 3.13.0, precompiled header: +5%; Apple clang 21, -O2, count_numbers, 3.13.0, module: +21%; Apple clang 21, -O2, server_config, 3.13.0: +45%; Apple clang 21, -O2, server_config, 3.13.0, precompiled header: +10%; Apple clang 21, -O2, server_config, 3.13.0, module: +24%; G​CC 16, -O0 (debug), count_numbers, 3.13.0: +62%; G​CC 16, -O0 (debug), count_numbers, 3.13.0, precompiled header: +10%; G​CC 16, -O0 (debug), count_numbers, 3.13.0, module: +8%; G​CC 16, -O0 (debug), server_config, 3.13.0: +47%; G​CC 16, -O0 (debug), server_config, 3.13.0, precompiled header: +14%; G​CC 16, -O0 (debug), server_config, 3.13.0, module: +15%; G​CC 16, -O2, count_numbers, 3.13.0: +58%; G​CC 16, -O2, count_numbers, 3.13.0, precompiled header: +28%; G​CC 16, -O2, count_numbers, 3.13.0, module: +25%; G​CC 16, -O2, server_config, 3.13.0: +51%; G​CC 16, -O2, server_config, 3.13.0, precompiled header: +28%; G​CC 16, -O2, server_config, 3.13.0, module: +30%.</desc>
|
||||
<desc id="nj-blog-price-d">Horizontal bars of the change in compile time against 3.12.0, less is better. Apple clang 21, -O0 (debug), count_numbers, 3.13.0: +36%; Apple clang 21, -O0 (debug), count_numbers, 3.13.0, precompiled header: -23%; Apple clang 21, -O0 (debug), count_numbers, 3.13.0, module: -5%; Apple clang 21, -O0 (debug), server_config, 3.13.0: +36%; Apple clang 21, -O0 (debug), server_config, 3.13.0, precompiled header: -20%; Apple clang 21, -O0 (debug), server_config, 3.13.0, module: +8%; Apple clang 21, -O2, count_numbers, 3.13.0: +43%; Apple clang 21, -O2, count_numbers, 3.13.0, precompiled header: -1%; Apple clang 21, -O2, count_numbers, 3.13.0, module: +12%; Apple clang 21, -O2, server_config, 3.13.0: +42%; Apple clang 21, -O2, server_config, 3.13.0, precompiled header: +12%; Apple clang 21, -O2, server_config, 3.13.0, module: +22%; G​CC 16, -O0 (debug), count_numbers, 3.13.0: +68%; G​CC 16, -O0 (debug), count_numbers, 3.13.0, precompiled header: +12%; G​CC 16, -O0 (debug), count_numbers, 3.13.0, module: +13%; G​CC 16, -O0 (debug), server_config, 3.13.0: +50%; G​CC 16, -O0 (debug), server_config, 3.13.0, precompiled header: +15%; G​CC 16, -O0 (debug), server_config, 3.13.0, module: +16%; G​CC 16, -O2, count_numbers, 3.13.0: +60%; G​CC 16, -O2, count_numbers, 3.13.0, precompiled header: +28%; G​CC 16, -O2, count_numbers, 3.13.0, module: +27%; G​CC 16, -O2, server_config, 3.13.0: +52%; G​CC 16, -O2, server_config, 3.13.0, precompiled header: +29%; G​CC 16, -O2, server_config, 3.13.0, module: +31%.</desc>
|
||||
<rect class="nj-charts-c2" x="8" y="6" width="12" height="12" rx="3"/>
|
||||
<text class="nj-charts-leg" x="26" y="16.5">3.13.0</text>
|
||||
<rect class="nj-charts-c1" x="97.2" y="6" width="12" height="12" rx="3"/>
|
||||
@@ -15,19 +15,19 @@
|
||||
<line class="nj-charts-grid" x1="457.5" y1="74" x2="457.5" y2="170"/>
|
||||
<line class="nj-charts-grid" x1="525.833" y1="74" x2="525.833" y2="170"/>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="142" y="101" text-anchor="end">count_numbers</text>
|
||||
<path class="nj-charts-c2" d="M320.833 78 H446.667 Q450.667 78 450.667 82 V85 Q450.667 89 446.667 89 H320.833 Z"><title>count_numbers, Apple clang 21, -O0 (debug), 3.13.0: 1,320 ms against 955 ms with 3.12.0 (+38%)</title></path>
|
||||
<text class="nj-charts-val" x="455.667" y="87.5">+38%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 92 H229.167 Q225.167 92 225.167 96 V99 Q225.167 103 229.167 103 H320.833 Z"><title>count_numbers, Apple clang 21, -O0 (debug), 3.13.0, precompiled header: 688 ms against 955 ms with 3.12.0 (−28%)</title></path>
|
||||
<text class="nj-charts-val" x="220.167" y="101.5" text-anchor="end">−28%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 106 H311.167 Q307.167 106 307.167 110 V113 Q307.167 117 311.167 117 H320.833 Z"><title>count_numbers, Apple clang 21, -O0 (debug), 3.13.0, module: 918 ms against 955 ms with 3.12.0 (−4%)</title></path>
|
||||
<text class="nj-charts-val" x="302.167" y="115.5" text-anchor="end">−4%</text>
|
||||
<path class="nj-charts-c2" d="M320.833 78 H439.833 Q443.833 78 443.833 82 V85 Q443.833 89 439.833 89 H320.833 Z"><title>count_numbers, Apple clang 21, -O0 (debug), 3.13.0: 1,131 ms against 831 ms with 3.12.0 (+36%)</title></path>
|
||||
<text class="nj-charts-val" x="448.833" y="87.5">+36%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 92 H246.25 Q242.25 92 242.25 96 V99 Q242.25 103 246.25 103 H320.833 Z"><title>count_numbers, Apple clang 21, -O0 (debug), 3.13.0, precompiled header: 639 ms against 831 ms with 3.12.0 (−23%)</title></path>
|
||||
<text class="nj-charts-val" x="237.25" y="101.5" text-anchor="end">−23%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 106 H307.75 Q303.75 106 303.75 110 V113 Q303.75 117 307.75 117 H320.833 Z"><title>count_numbers, Apple clang 21, -O0 (debug), 3.13.0, module: 790 ms against 831 ms with 3.12.0 (−5%)</title></path>
|
||||
<text class="nj-charts-val" x="298.75" y="115.5" text-anchor="end">−5%</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="142" y="150" text-anchor="end">server_config</text>
|
||||
<path class="nj-charts-c2" d="M320.833 127 H433 Q437 127 437 131 V134 Q437 138 433 138 H320.833 Z"><title>server_config, Apple clang 21, -O0 (debug), 3.13.0: 1,496 ms against 1,113 ms with 3.12.0 (+34%)</title></path>
|
||||
<text class="nj-charts-val" x="442" y="136.5">+34%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 141 H246.25 Q242.25 141 242.25 145 V148 Q242.25 152 246.25 152 H320.833 Z"><title>server_config, Apple clang 21, -O0 (debug), 3.13.0, precompiled header: 863 ms against 1,113 ms with 3.12.0 (−23%)</title></path>
|
||||
<text class="nj-charts-val" x="237.25" y="150.5" text-anchor="end">−23%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 155 H323.667 Q327.667 155 327.667 159 V162 Q327.667 166 323.667 166 H320.833 Z"><title>server_config, Apple clang 21, -O0 (debug), 3.13.0, module: 1,136 ms against 1,113 ms with 3.12.0 (+2%)</title></path>
|
||||
<text class="nj-charts-val" x="332.667" y="164.5">+2%</text>
|
||||
<path class="nj-charts-c2" d="M320.833 127 H439.833 Q443.833 127 443.833 131 V134 Q443.833 138 439.833 138 H320.833 Z"><title>server_config, Apple clang 21, -O0 (debug), 3.13.0: 1,312 ms against 963 ms with 3.12.0 (+36%)</title></path>
|
||||
<text class="nj-charts-val" x="448.833" y="136.5">+36%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 141 H256.5 Q252.5 141 252.5 145 V148 Q252.5 152 256.5 152 H320.833 Z"><title>server_config, Apple clang 21, -O0 (debug), 3.13.0, precompiled header: 774 ms against 963 ms with 3.12.0 (−20%)</title></path>
|
||||
<text class="nj-charts-val" x="247.5" y="150.5" text-anchor="end">−20%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 155 H344.167 Q348.167 155 348.167 159 V162 Q348.167 166 344.167 166 H320.833 Z"><title>server_config, Apple clang 21, -O0 (debug), 3.13.0, module: 1,036 ms against 963 ms with 3.12.0 (+8%)</title></path>
|
||||
<text class="nj-charts-val" x="353.167" y="164.5">+8%</text>
|
||||
<text class="nj-charts-panel" x="8" y="198">Apple clang 21, -O2</text>
|
||||
<line class="nj-charts-grid" x1="184.167" y1="204" x2="184.167" y2="300"/>
|
||||
<line class="nj-charts-grid" x1="252.5" y1="204" x2="252.5" y2="300"/>
|
||||
@@ -35,19 +35,19 @@
|
||||
<line class="nj-charts-grid" x1="457.5" y1="204" x2="457.5" y2="300"/>
|
||||
<line class="nj-charts-grid" x1="525.833" y1="204" x2="525.833" y2="300"/>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="142" y="231" text-anchor="end">count_numbers</text>
|
||||
<path class="nj-charts-c2" d="M320.833 208 H484.25 Q488.25 208 488.25 212 V215 Q488.25 219 484.25 219 H320.833 Z"><title>count_numbers, Apple clang 21, -O2, 3.13.0: 2,081 ms against 1,393 ms with 3.12.0 (+49%)</title></path>
|
||||
<text class="nj-charts-val" x="493.25" y="217.5">+49%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 222 H333.917 Q337.917 222 337.917 226 V229 Q337.917 233 333.917 233 H320.833 Z"><title>count_numbers, Apple clang 21, -O2, 3.13.0, precompiled header: 1,458 ms against 1,393 ms with 3.12.0 (+5%)</title></path>
|
||||
<text class="nj-charts-val" x="342.917" y="231.5">+5%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 236 H388.583 Q392.583 236 392.583 240 V243 Q392.583 247 388.583 247 H320.833 Z"><title>count_numbers, Apple clang 21, -O2, 3.13.0, module: 1,685 ms against 1,393 ms with 3.12.0 (+21%)</title></path>
|
||||
<text class="nj-charts-val" x="397.583" y="245.5">+21%</text>
|
||||
<path class="nj-charts-c2" d="M320.833 208 H463.75 Q467.75 208 467.75 212 V215 Q467.75 219 463.75 219 H320.833 Z"><title>count_numbers, Apple clang 21, -O2, 3.13.0: 1,898 ms against 1,328 ms with 3.12.0 (+43%)</title></path>
|
||||
<text class="nj-charts-val" x="472.75" y="217.5">+43%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 222 H320.833 Q317.417 222 317.417 225.417 V229.583 Q317.417 233 320.833 233 H320.833 Z"><title>count_numbers, Apple clang 21, -O2, 3.13.0, precompiled header: 1,312 ms against 1,328 ms with 3.12.0 (−1%)</title></path>
|
||||
<text class="nj-charts-val" x="312.417" y="231.5" text-anchor="end">−1%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 236 H357.833 Q361.833 236 361.833 240 V243 Q361.833 247 357.833 247 H320.833 Z"><title>count_numbers, Apple clang 21, -O2, 3.13.0, module: 1,491 ms against 1,328 ms with 3.12.0 (+12%)</title></path>
|
||||
<text class="nj-charts-val" x="366.833" y="245.5">+12%</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="142" y="280" text-anchor="end">server_config</text>
|
||||
<path class="nj-charts-c2" d="M320.833 257 H470.583 Q474.583 257 474.583 261 V264 Q474.583 268 470.583 268 H320.833 Z"><title>server_config, Apple clang 21, -O2, 3.13.0: 2,546 ms against 1,754 ms with 3.12.0 (+45%)</title></path>
|
||||
<text class="nj-charts-val" x="479.583" y="266.5">+45%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 271 H351 Q355 271 355 275 V278 Q355 282 351 282 H320.833 Z"><title>server_config, Apple clang 21, -O2, 3.13.0, precompiled header: 1,925 ms against 1,754 ms with 3.12.0 (+10%)</title></path>
|
||||
<text class="nj-charts-val" x="360" y="280.5">+10%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 285 H398.833 Q402.833 285 402.833 289 V292 Q402.833 296 398.833 296 H320.833 Z"><title>server_config, Apple clang 21, -O2, 3.13.0, module: 2,169 ms against 1,754 ms with 3.12.0 (+24%)</title></path>
|
||||
<text class="nj-charts-val" x="407.833" y="294.5">+24%</text>
|
||||
<path class="nj-charts-c2" d="M320.833 257 H460.333 Q464.333 257 464.333 261 V264 Q464.333 268 460.333 268 H320.833 Z"><title>server_config, Apple clang 21, -O2, 3.13.0: 2,251 ms against 1,584 ms with 3.12.0 (+42%)</title></path>
|
||||
<text class="nj-charts-val" x="469.333" y="266.5">+42%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 271 H357.833 Q361.833 271 361.833 275 V278 Q361.833 282 357.833 282 H320.833 Z"><title>server_config, Apple clang 21, -O2, 3.13.0, precompiled header: 1,779 ms against 1,584 ms with 3.12.0 (+12%)</title></path>
|
||||
<text class="nj-charts-val" x="366.833" y="280.5">+12%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 285 H392 Q396 285 396 289 V292 Q396 296 392 296 H320.833 Z"><title>server_config, Apple clang 21, -O2, 3.13.0, module: 1,926 ms against 1,584 ms with 3.12.0 (+22%)</title></path>
|
||||
<text class="nj-charts-val" x="401" y="294.5">+22%</text>
|
||||
<text class="nj-charts-panel" x="8" y="328">G​CC 16, -O0 (debug)</text>
|
||||
<line class="nj-charts-grid" x1="184.167" y1="334" x2="184.167" y2="430"/>
|
||||
<line class="nj-charts-grid" x1="252.5" y1="334" x2="252.5" y2="430"/>
|
||||
@@ -55,19 +55,19 @@
|
||||
<line class="nj-charts-grid" x1="457.5" y1="334" x2="457.5" y2="430"/>
|
||||
<line class="nj-charts-grid" x1="525.833" y1="334" x2="525.833" y2="430"/>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="142" y="361" text-anchor="end">count_numbers</text>
|
||||
<path class="nj-charts-c2" d="M320.833 338 H528.667 Q532.667 338 532.667 342 V345 Q532.667 349 528.667 349 H320.833 Z"><title>count_numbers, G​CC 16, -O0 (debug), 3.13.0: 2,548 ms against 1,569 ms with 3.12.0 (+62%)</title></path>
|
||||
<text class="nj-charts-val" x="537.667" y="347.5">+62%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 352 H351 Q355 352 355 356 V359 Q355 363 351 363 H320.833 Z"><title>count_numbers, G​CC 16, -O0 (debug), 3.13.0, precompiled header: 1,725 ms against 1,569 ms with 3.12.0 (+10%)</title></path>
|
||||
<text class="nj-charts-val" x="360" y="361.5">+10%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 366 H344.167 Q348.167 366 348.167 370 V373 Q348.167 377 344.167 377 H320.833 Z"><title>count_numbers, G​CC 16, -O0 (debug), 3.13.0, module: 1,700 ms against 1,569 ms with 3.12.0 (+8%)</title></path>
|
||||
<text class="nj-charts-val" x="353.167" y="375.5">+8%</text>
|
||||
<path class="nj-charts-c2" d="M320.833 338 H549.167 Q553.167 338 553.167 342 V345 Q553.167 349 549.167 349 H320.833 Z"><title>count_numbers, G​CC 16, -O0 (debug), 3.13.0: 2,385 ms against 1,416 ms with 3.12.0 (+68%)</title></path>
|
||||
<text class="nj-charts-val" x="558.167" y="347.5">+68%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 352 H357.833 Q361.833 352 361.833 356 V359 Q361.833 363 357.833 363 H320.833 Z"><title>count_numbers, G​CC 16, -O0 (debug), 3.13.0, precompiled header: 1,593 ms against 1,416 ms with 3.12.0 (+12%)</title></path>
|
||||
<text class="nj-charts-val" x="366.833" y="361.5">+12%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 366 H361.25 Q365.25 366 365.25 370 V373 Q365.25 377 361.25 377 H320.833 Z"><title>count_numbers, G​CC 16, -O0 (debug), 3.13.0, module: 1,604 ms against 1,416 ms with 3.12.0 (+13%)</title></path>
|
||||
<text class="nj-charts-val" x="370.25" y="375.5">+13%</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="142" y="410" text-anchor="end">server_config</text>
|
||||
<path class="nj-charts-c2" d="M320.833 387 H477.417 Q481.417 387 481.417 391 V394 Q481.417 398 477.417 398 H320.833 Z"><title>server_config, G​CC 16, -O0 (debug), 3.13.0: 2,985 ms against 2,025 ms with 3.12.0 (+47%)</title></path>
|
||||
<text class="nj-charts-val" x="486.417" y="396.5">+47%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 401 H364.667 Q368.667 401 368.667 405 V408 Q368.667 412 364.667 412 H320.833 Z"><title>server_config, G​CC 16, -O0 (debug), 3.13.0, precompiled header: 2,302 ms against 2,025 ms with 3.12.0 (+14%)</title></path>
|
||||
<text class="nj-charts-val" x="373.667" y="410.5">+14%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 415 H368.083 Q372.083 415 372.083 419 V422 Q372.083 426 368.083 426 H320.833 Z"><title>server_config, G​CC 16, -O0 (debug), 3.13.0, module: 2,326 ms against 2,025 ms with 3.12.0 (+15%)</title></path>
|
||||
<text class="nj-charts-val" x="377.083" y="424.5">+15%</text>
|
||||
<path class="nj-charts-c2" d="M320.833 387 H487.667 Q491.667 387 491.667 391 V394 Q491.667 398 487.667 398 H320.833 Z"><title>server_config, G​CC 16, -O0 (debug), 3.13.0: 2,820 ms against 1,878 ms with 3.12.0 (+50%)</title></path>
|
||||
<text class="nj-charts-val" x="496.667" y="396.5">+50%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 401 H368.083 Q372.083 401 372.083 405 V408 Q372.083 412 368.083 412 H320.833 Z"><title>server_config, G​CC 16, -O0 (debug), 3.13.0, precompiled header: 2,152 ms against 1,878 ms with 3.12.0 (+15%)</title></path>
|
||||
<text class="nj-charts-val" x="377.083" y="410.5">+15%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 415 H371.5 Q375.5 415 375.5 419 V422 Q375.5 426 371.5 426 H320.833 Z"><title>server_config, G​CC 16, -O0 (debug), 3.13.0, module: 2,180 ms against 1,878 ms with 3.12.0 (+16%)</title></path>
|
||||
<text class="nj-charts-val" x="380.5" y="424.5">+16%</text>
|
||||
<text class="nj-charts-panel" x="8" y="458">G​CC 16, -O2</text>
|
||||
<line class="nj-charts-grid" x1="184.167" y1="464" x2="184.167" y2="560"/>
|
||||
<line class="nj-charts-grid" x1="252.5" y1="464" x2="252.5" y2="560"/>
|
||||
@@ -75,19 +75,19 @@
|
||||
<line class="nj-charts-grid" x1="457.5" y1="464" x2="457.5" y2="560"/>
|
||||
<line class="nj-charts-grid" x1="525.833" y1="464" x2="525.833" y2="560"/>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="142" y="491" text-anchor="end">count_numbers</text>
|
||||
<path class="nj-charts-c2" d="M320.833 468 H515 Q519 468 519 472 V475 Q519 479 515 479 H320.833 Z"><title>count_numbers, G​CC 16, -O2, 3.13.0: 3,702 ms against 2,336 ms with 3.12.0 (+58%)</title></path>
|
||||
<text class="nj-charts-val" x="524" y="477.5">+58%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 482 H412.5 Q416.5 482 416.5 486 V489 Q416.5 493 412.5 493 H320.833 Z"><title>count_numbers, G​CC 16, -O2, 3.13.0, precompiled header: 2,987 ms against 2,336 ms with 3.12.0 (+28%)</title></path>
|
||||
<path class="nj-charts-c2" d="M320.833 468 H521.833 Q525.833 468 525.833 472 V475 Q525.833 479 521.833 479 H320.833 Z"><title>count_numbers, G​CC 16, -O2, 3.13.0: 3,464 ms against 2,159 ms with 3.12.0 (+60%)</title></path>
|
||||
<text class="nj-charts-val" x="530.833" y="477.5">+60%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 482 H412.5 Q416.5 482 416.5 486 V489 Q416.5 493 412.5 493 H320.833 Z"><title>count_numbers, G​CC 16, -O2, 3.13.0, precompiled header: 2,765 ms against 2,159 ms with 3.12.0 (+28%)</title></path>
|
||||
<text class="nj-charts-val" x="421.5" y="491.5">+28%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 496 H402.25 Q406.25 496 406.25 500 V503 Q406.25 507 402.25 507 H320.833 Z"><title>count_numbers, G​CC 16, -O2, 3.13.0, module: 2,913 ms against 2,336 ms with 3.12.0 (+25%)</title></path>
|
||||
<text class="nj-charts-val" x="411.25" y="505.5">+25%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 496 H409.083 Q413.083 496 413.083 500 V503 Q413.083 507 409.083 507 H320.833 Z"><title>count_numbers, G​CC 16, -O2, 3.13.0, module: 2,740 ms against 2,159 ms with 3.12.0 (+27%)</title></path>
|
||||
<text class="nj-charts-val" x="418.083" y="505.5">+27%</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-code" x="142" y="540" text-anchor="end">server_config</text>
|
||||
<path class="nj-charts-c2" d="M320.833 517 H491.083 Q495.083 517 495.083 521 V524 Q495.083 528 491.083 528 H320.833 Z"><title>server_config, G​CC 16, -O2, 3.13.0: 4,714 ms against 3,122 ms with 3.12.0 (+51%)</title></path>
|
||||
<text class="nj-charts-val" x="500.083" y="526.5">+51%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 531 H412.5 Q416.5 531 416.5 535 V538 Q416.5 542 412.5 542 H320.833 Z"><title>server_config, G​CC 16, -O2, 3.13.0, precompiled header: 4,006 ms against 3,122 ms with 3.12.0 (+28%)</title></path>
|
||||
<text class="nj-charts-val" x="421.5" y="540.5">+28%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 545 H419.333 Q423.333 545 423.333 549 V552 Q423.333 556 419.333 556 H320.833 Z"><title>server_config, G​CC 16, -O2, 3.13.0, module: 4,055 ms against 3,122 ms with 3.12.0 (+30%)</title></path>
|
||||
<text class="nj-charts-val" x="428.333" y="554.5">+30%</text>
|
||||
<path class="nj-charts-c2" d="M320.833 517 H494.5 Q498.5 517 498.5 521 V524 Q498.5 528 494.5 528 H320.833 Z"><title>server_config, G​CC 16, -O2, 3.13.0: 4,388 ms against 2,878 ms with 3.12.0 (+52%)</title></path>
|
||||
<text class="nj-charts-val" x="503.5" y="526.5">+52%</text>
|
||||
<path class="nj-charts-c1" d="M320.833 531 H415.917 Q419.917 531 419.917 535 V538 Q419.917 542 415.917 542 H320.833 Z"><title>server_config, G​CC 16, -O2, 3.13.0, precompiled header: 3,722 ms against 2,878 ms with 3.12.0 (+29%)</title></path>
|
||||
<text class="nj-charts-val" x="424.917" y="540.5">+29%</text>
|
||||
<path class="nj-charts-c3" d="M320.833 545 H422.75 Q426.75 545 426.75 549 V552 Q426.75 556 422.75 556 H320.833 Z"><title>server_config, G​CC 16, -O2, 3.13.0, module: 3,774 ms against 2,878 ms with 3.12.0 (+31%)</title></path>
|
||||
<text class="nj-charts-val" x="431.75" y="554.5">+31%</text>
|
||||
<line class="nj-charts-ref" x1="320.833" y1="52" x2="320.833" y2="574"/>
|
||||
<text class="nj-charts-tick" x="184.167" y="590">−40%</text>
|
||||
<text class="nj-charts-tick" x="252.5" y="590">−20%</text>
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 13 KiB |
@@ -1,45 +1,53 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--timeline" viewBox="0 0 340 270" role="img" aria-labelledby="nj-blog-tl-accept_twitter nj-blog-tl-accept_twitter-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-tl-accept_twitter">accept() twitter.json: speedup over 3.12.0 by commit</title>
|
||||
<desc id="nj-blog-tl-accept_twitter-d">accept() twitter.json: speedup over 3.12.0 at each of 353 commits, ending at 5.1x. Labeled steps, by theme: 4, 1, 4, 4, 2, 2.</desc>
|
||||
<desc id="nj-blog-tl-accept_twitter-d">accept() twitter.json: speedup over 3.12.0 at each of 360 commits, ending at 10x. Labeled steps, by theme: 4, 1, 4, 4, 2, 2, 1.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="18">accept() twitter.json</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="212">1×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="160.667" x2="330" y2="160.667"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="164.667">2×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="113.333" x2="330" y2="113.333"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="117.333">4×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="172.5" x2="330" y2="172.5"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="176.5">2×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="137" x2="330" y2="137"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="141">4×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="101.5" x2="330" y2="101.5"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="105.5">8×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="66" x2="330" y2="66"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">8×</text>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">16×</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="44" y2="212"/>
|
||||
<text class="nj-charts-tick" x="44" y="225">3.12.0</text>
|
||||
<line class="nj-charts-axis" x1="117.938" y1="208" x2="117.938" y2="212"/>
|
||||
<text class="nj-charts-tick" x="117.938" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="198.375" y1="208" x2="198.375" y2="212"/>
|
||||
<text class="nj-charts-tick" x="198.375" y="225">Oct</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.1 45.6,208.1 45.6,207.8 46.4,207.8 46.4,208.0 47.2,208.0 47.2,207.7 48.1,207.7 48.1,207.9 48.9,207.9 48.9,208.0 49.7,208.0 49.7,208.1 50.5,208.1 50.5,208.4 51.3,208.4 51.3,207.1 52.1,207.1 52.1,207.9 52.9,207.9 52.9,208.2 53.8,208.2 53.8,207.9 54.6,207.9 54.6,207.9 55.4,207.9 55.4,207.7 56.2,207.7 56.2,207.9 57.0,207.9 57.0,207.8 57.8,207.8 57.8,207.7 58.6,207.7 58.6,208.2 59.4,208.2 59.4,207.3 60.2,207.3 60.2,208.0 61.1,208.0 61.1,208.0 61.9,208.0 61.9,207.8 62.7,207.8 62.7,207.9 63.5,207.9 63.5,207.9 64.3,207.9 64.3,207.2 65.1,207.2 65.1,207.8 65.9,207.8 65.9,207.6 66.8,207.6 66.8,207.8 67.6,207.8 67.6,207.9 68.4,207.9 68.4,207.9 69.2,207.9 69.2,207.4 70.0,207.4 70.0,207.7 70.8,207.7 70.8,207.6 71.6,207.6 71.6,207.7 72.4,207.7 72.4,208.1 73.2,208.1 73.2,207.8 74.1,207.8 74.1,207.1 74.9,207.1 74.9,207.9 75.7,207.9 75.7,207.1 76.5,207.1 76.5,207.8 77.3,207.8 77.3,207.3 78.1,207.3 78.1,208.1 78.9,208.1 78.9,207.6 79.8,207.6 79.8,207.6 80.6,207.6 80.6,208.1 81.4,208.1 81.4,208.3 82.2,208.3 82.2,207.8 83.0,207.8 83.0,207.7 83.8,207.7 83.8,207.9 84.6,207.9 84.6,207.8 85.4,207.8 85.4,207.5 86.2,207.5 86.2,207.9 87.1,207.9 87.1,207.8 87.9,207.8 87.9,208.0 88.7,208.0 88.7,194.6 89.5,194.6 89.5,195.3 90.3,195.3 90.3,195.6 91.1,195.6 91.1,195.1 91.9,195.1 91.9,195.6 92.8,195.6 92.8,194.6 93.6,194.6 93.6,194.7 94.4,194.7 94.4,195.3 95.2,195.3 95.2,195.1 96.0,195.1 96.0,195.1 96.8,195.1 96.8,195.6 97.6,195.6 97.6,194.6 98.4,194.6 98.4,195.2 99.2,195.2 99.2,195.3 100.1,195.3 100.1,195.6 100.9,195.6 100.9,195.3 101.7,195.3 101.7,195.4 102.5,195.4 102.5,195.2 103.3,195.2 103.3,195.8 104.1,195.8 104.1,195.1 104.9,195.1 104.9,195.3 105.8,195.3 105.8,196.2 106.6,196.2 106.6,195.7 107.4,195.7 107.4,194.5 108.2,194.5 108.2,194.7 109.0,194.7 109.0,195.1 109.8,195.1 109.8,195.6 110.6,195.6 110.6,195.6 111.4,195.6 111.4,195.5 112.2,195.5 112.2,194.6 113.1,194.6 113.1,194.4 113.9,194.4 113.9,195.1 114.7,195.1 114.7,195.4 115.5,195.4 115.5,195.8 116.3,195.8 116.3,194.6 117.1,194.6 117.1,195.0 117.9,195.0 117.9,195.4 118.8,195.4 118.8,195.1 119.6,195.1 119.6,195.5 120.4,195.5 120.4,193.5 121.2,193.5 121.2,194.9 122.0,194.9 122.0,195.1 122.8,195.1 122.8,194.8 123.6,194.8 123.6,194.6 124.4,194.6 124.4,194.7 125.3,194.7 125.3,195.1 126.1,195.1 126.1,195.0 126.9,195.0 126.9,194.7 127.7,194.7 127.7,195.3 128.5,195.3 128.5,194.6 129.3,194.6 129.3,194.7 130.1,194.7 130.1,143.3 130.9,143.3 130.9,143.0 131.8,143.0 131.8,142.2 132.6,142.2 132.6,141.9 133.4,141.9 133.4,143.0 134.2,143.0 134.2,142.6 135.0,142.6 135.0,142.4 135.8,142.4 135.8,142.9 136.6,142.9 136.6,143.1 137.4,143.1 137.4,143.2 138.2,143.2 138.2,142.1 139.1,142.1 139.1,143.1 139.9,143.1 139.9,142.4 140.7,142.4 140.7,143.0 141.5,143.0 141.5,141.8 142.3,141.8 142.3,143.1 143.1,143.1 143.1,141.9 143.9,141.9 143.9,143.1 144.8,143.1 144.8,142.9 145.6,142.9 145.6,142.0 146.4,142.0 146.4,142.5 147.2,142.5 147.2,142.4 148.0,142.4 148.0,143.5 148.8,143.5 148.8,142.9 149.6,142.9 149.6,142.3 150.4,142.3 150.4,143.1 151.2,143.1 151.2,141.9 152.1,141.9 152.1,142.4 152.9,142.4 152.9,141.9 153.7,141.9 153.7,141.8 154.5,141.8 154.5,141.3 155.3,141.3 155.3,142.9 156.1,142.9 156.1,141.2 156.9,141.2 156.9,142.8 157.8,142.8 157.8,142.6 158.6,142.6 158.6,142.3 159.4,142.3 159.4,142.7 160.2,142.7 160.2,142.0 161.0,142.0 161.0,141.5 161.8,141.5 161.8,141.2 162.6,141.2 162.6,141.4 163.4,141.4 163.4,141.9 164.2,141.9 164.2,141.6 165.1,141.6 165.1,141.8 165.9,141.8 165.9,142.0 166.7,142.0 166.7,142.0 167.5,142.0 167.5,141.5 168.3,141.5 168.3,142.4 169.1,142.4 169.1,141.7 169.9,141.7 169.9,142.4 170.8,142.4 170.8,141.9 171.6,141.9 171.6,141.7 172.4,141.7 172.4,141.1 173.2,141.1 173.2,141.5 174.0,141.5 174.0,141.6 174.8,141.6 174.8,141.7 175.6,141.7 175.6,140.3 176.4,140.3 176.4,140.7 177.2,140.7 177.2,140.6 178.1,140.6 178.1,141.0 178.9,141.0 178.9,141.8 179.7,141.8 179.7,141.6 180.5,141.6 180.5,141.5 181.3,141.5 181.3,141.0 182.1,141.0 182.1,141.1 182.9,141.1 182.9,140.7 183.8,140.7 183.8,140.4 184.6,140.4 184.6,142.1 185.4,142.1 185.4,141.7 186.2,141.7 186.2,141.2 187.0,141.2 187.0,141.5 187.8,141.5 187.8,140.4 188.6,140.4 188.6,141.0 189.4,141.0 189.4,141.5 190.2,141.5 190.2,141.2 191.1,141.2 191.1,142.1 191.9,142.1 191.9,140.4 192.7,140.4 192.7,141.1 193.5,141.1 193.5,141.5 194.3,141.5 194.3,140.9 195.1,140.9 195.1,141.7 195.9,141.7 195.9,140.4 196.8,140.4 196.8,141.9 197.6,141.9 197.6,141.1 198.4,141.1 198.4,141.4 199.2,141.4 199.2,140.6 200.0,140.6 200.0,141.4 200.8,141.4 200.8,140.1 201.6,140.1 201.6,141.2 202.4,141.2 202.4,140.8 203.2,140.8 203.2,141.4 204.1,141.4 204.1,141.5 204.9,141.5 204.9,141.2 205.7,141.2 205.7,142.0 206.5,142.0 206.5,142.6 207.3,142.6 207.3,142.3 208.1,142.3 208.1,140.6 208.9,140.6 208.9,140.8 209.8,140.8 209.8,140.9 210.6,140.9 210.6,141.1 211.4,141.1 211.4,141.6 212.2,141.6 212.2,141.0 213.0,141.0 213.0,141.5 213.8,141.5 213.8,141.4 214.6,141.4 214.6,142.0 215.4,142.0 215.4,140.6 216.2,140.6 216.2,1Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="88.7" cy="194.6" r="3.5"><title>#5234: 1.22×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="88.7" y1="54.0" x2="88.7" y2="189.6"/>
|
||||
<circle class="nj-theme-dot" cx="88.7" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="88.7" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="130.1" cy="143.3" r="3.5"><title>#5283: 2.6×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="130.1" y1="54.0" x2="130.1" y2="138.3"/>
|
||||
<circle class="nj-theme-dot" cx="130.1" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="130.1" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="222.8" cy="135.2" r="3.5"><title>#5592: 2.9×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="222.8" y1="54.0" x2="222.8" y2="130.2"/>
|
||||
<circle class="nj-theme-dot" cx="222.8" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="222.8" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="243.1" cy="118.7" r="3.5"><title>#5809: 3.7×</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="243.9" cy="112.7" r="3.5"><title>#5810: 4.0×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="243.9" y1="36.0" x2="243.9" y2="107.7"/>
|
||||
<circle class="nj-theme-dot" cx="234.9" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="234.9" y="32.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-theme-dot" cx="252.9" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="252.9" y="32.0" text-anchor="middle">2</text>
|
||||
<circle class="nj-charts-json-dot" cx="273.1" cy="99.2" r="3.5"><title>#5853: 4.9×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="273.1" y1="54.0" x2="273.1" y2="94.2"/>
|
||||
<circle class="nj-theme-dot" cx="273.1" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="273.1" y="50.0" text-anchor="middle">2</text>
|
||||
<line class="nj-charts-axis" x1="116.496" y1="208" x2="116.496" y2="212"/>
|
||||
<text class="nj-charts-tick" x="116.496" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="195.365" y1="208" x2="195.365" y2="212"/>
|
||||
<text class="nj-charts-tick" x="195.365" y="225">Oct</text>
|
||||
<line class="nj-charts-axis" x1="302.117" y1="208" x2="302.117" y2="212"/>
|
||||
<text class="nj-charts-tick" x="302.117" y="225">Nov</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.1 45.6,208.1 45.6,207.9 46.4,207.9 46.4,208.0 47.2,208.0 47.2,207.8 48.0,207.8 48.0,207.9 48.8,207.9 48.8,208.0 49.6,208.0 49.6,208.1 50.4,208.1 50.4,208.3 51.2,208.3 51.2,207.3 52.0,207.3 52.0,207.9 52.8,207.9 52.8,208.1 53.6,208.1 53.6,208.0 54.4,208.0 54.4,207.9 55.2,207.9 55.2,207.8 55.9,207.8 55.9,207.9 56.7,207.9 56.7,207.9 57.5,207.9 57.5,207.8 58.3,207.8 58.3,208.1 59.1,208.1 59.1,207.4 59.9,207.4 59.9,208.0 60.7,208.0 60.7,208.0 61.5,208.0 61.5,207.8 62.3,207.8 62.3,207.9 63.1,207.9 63.1,208.0 63.9,208.0 63.9,207.4 64.7,207.4 64.7,207.9 65.5,207.9 65.5,207.7 66.3,207.7 66.3,207.8 67.1,207.8 67.1,208.0 67.9,208.0 67.9,208.0 68.7,208.0 68.7,207.5 69.5,207.5 69.5,207.8 70.3,207.8 70.3,207.7 71.1,207.7 71.1,207.8 71.9,207.8 71.9,208.1 72.7,208.1 72.7,207.8 73.5,207.8 73.5,207.3 74.3,207.3 74.3,207.9 75.1,207.9 75.1,207.4 75.9,207.4 75.9,207.8 76.7,207.8 76.7,207.5 77.5,207.5 77.5,208.1 78.3,208.1 78.3,207.7 79.1,207.7 79.1,207.7 79.8,207.7 79.8,208.1 80.6,208.1 80.6,208.2 81.4,208.2 81.4,207.9 82.2,207.9 82.2,207.8 83.0,207.8 83.0,207.9 83.8,207.9 83.8,207.9 84.6,207.9 84.6,207.6 85.4,207.6 85.4,207.9 86.2,207.9 86.2,207.9 87.0,207.9 87.0,208.0 87.8,208.0 87.8,197.9 88.6,197.9 88.6,198.5 89.4,198.5 89.4,198.7 90.2,198.7 90.2,198.3 91.0,198.3 91.0,198.7 91.8,198.7 91.8,198.0 92.6,198.0 92.6,198.0 93.4,198.0 93.4,198.5 94.2,198.5 94.2,198.3 95.0,198.3 95.0,198.4 95.8,198.4 95.8,198.7 96.6,198.7 96.6,198.0 97.4,198.0 97.4,198.4 98.2,198.4 98.2,198.5 99.0,198.5 99.0,198.7 99.8,198.7 99.8,198.5 100.6,198.5 100.6,198.5 101.4,198.5 101.4,198.4 102.2,198.4 102.2,198.9 103.0,198.9 103.0,198.3 103.7,198.3 103.7,198.5 104.5,198.5 104.5,199.2 105.3,199.2 105.3,198.8 106.1,198.8 106.1,197.9 106.9,197.9 106.9,198.0 107.7,198.0 107.7,198.4 108.5,198.4 108.5,198.7 109.3,198.7 109.3,198.7 110.1,198.7 110.1,198.7 110.9,198.7 110.9,197.9 111.7,197.9 111.7,197.8 112.5,197.8 112.5,198.3 113.3,198.3 113.3,198.5 114.1,198.5 114.1,198.9 114.9,198.9 114.9,198.0 115.7,198.0 115.7,198.3 116.5,198.3 116.5,198.6 117.3,198.6 117.3,198.4 118.1,198.4 118.1,198.6 118.9,198.6 118.9,197.1 119.7,197.1 119.7,198.2 120.5,198.2 120.5,198.3 121.3,198.3 121.3,198.1 122.1,198.1 122.1,198.0 122.9,198.0 122.9,198.0 123.7,198.0 123.7,198.3 124.5,198.3 124.5,198.3 125.3,198.3 125.3,198.1 126.1,198.1 126.1,198.5 126.9,198.5 126.9,198.0 127.6,198.0 127.6,198.0 128.4,198.0 128.4,159.4 129.2,159.4 129.2,159.2 130.0,159.2 130.0,158.7 130.8,158.7 130.8,158.5 131.6,158.5 131.6,159.3 132.4,159.3 132.4,158.9 133.2,158.9 133.2,158.8 134.0,158.8 134.0,159.2 134.8,159.2 134.8,159.3 135.6,159.3 135.6,159.4 136.4,159.4 136.4,158.6 137.2,158.6 137.2,159.3 138.0,159.3 138.0,158.8 138.8,158.8 138.8,159.3 139.6,159.3 139.6,158.4 140.4,158.4 140.4,159.3 141.2,159.3 141.2,158.4 142.0,158.4 142.0,159.3 142.8,159.3 142.8,159.2 143.6,159.2 143.6,158.5 144.4,158.5 144.4,158.8 145.2,158.8 145.2,158.8 146.0,158.8 146.0,159.6 146.8,159.6 146.8,159.2 147.6,159.2 147.6,158.7 148.4,158.7 148.4,159.3 149.2,159.3 149.2,158.5 150.0,158.5 150.0,158.8 150.8,158.8 150.8,158.5 151.5,158.5 151.5,158.4 152.3,158.4 152.3,157.9 153.1,157.9 153.1,159.2 153.9,159.2 153.9,157.9 154.7,157.9 154.7,159.1 155.5,159.1 155.5,159.0 156.3,159.0 156.3,158.7 157.1,158.7 157.1,159.0 157.9,159.0 157.9,158.5 158.7,158.5 158.7,158.1 159.5,158.1 159.5,157.9 160.3,157.9 160.3,158.0 161.1,158.0 161.1,158.4 161.9,158.4 161.9,158.2 162.7,158.2 162.7,158.4 163.5,158.4 163.5,158.5 164.3,158.5 164.3,158.5 165.1,158.5 165.1,158.1 165.9,158.1 165.9,158.8 166.7,158.8 166.7,158.3 167.5,158.3 167.5,158.8 168.3,158.8 168.3,158.5 169.1,158.5 169.1,158.3 169.9,158.3 169.9,157.8 170.7,157.8 170.7,158.2 171.5,158.2 171.5,158.2 172.3,158.2 172.3,158.3 173.1,158.3 173.1,157.2 173.9,157.2 173.9,157.5 174.7,157.5 174.7,157.5 175.4,157.5 175.4,157.8 176.2,157.8 176.2,158.4 177.0,158.4 177.0,158.2 177.8,158.2 177.8,158.1 178.6,158.1 178.6,157.7 179.4,157.7 179.4,157.9 180.2,157.9 180.2,157.5 181.0,157.5 181.0,157.3 181.8,157.3 181.8,158.6 182.6,158.6 182.6,158.2 183.4,158.2 183.4,157.9 184.2,157.9 184.2,158.1 185.0,158.1 185.0,157.3 185.8,157.3 185.8,157.7 186.6,157.7 186.6,158.1 187.4,158.1 187.4,157.9 188.2,157.9 188.2,158.5 189.0,158.5 189.0,157.3 189.8,157.3 189.8,157.8 190.6,157.8 190.6,158.2 191.4,158.2 191.4,157.7 192.2,157.7 192.2,158.3 193.0,158.3 193.0,157.3 193.8,157.3 193.8,158.4 194.6,158.4 194.6,157.9 195.4,157.9 195.4,158.1 196.2,158.1 196.2,157.4 197.0,157.4 197.0,158.0 197.8,158.0 197.8,157.0 198.6,157.0 198.6,157.9 199.3,157.9 199.3,157.6 200.1,157.6 200.1,158.0 200.9,158.0 200.9,158.1 201.7,158.1 201.7,157.9 202.5,157.9 202.5,158.5 203.3,158.5 203.3,158.9 204.1,158.9 204.1,158.7 204.9,158.7 204.9,157.4 205.7,157.4 205.7,157.6 206.5,157.6 206.5,157.7 207.3,157.7 207.3,157.8 208.1,157.8 208.1,158.2 208.9,158.2 208.9,157.8 209.7,157.8 209.7,158.1 210.5,158.1 210.5,158.1 211.3,158.1 211.3,158.5 212.1,158.5 212.1,157.4 212.9,157.4 212.9,158.6Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="87.8" cy="197.9" r="3.5"><title>#5234: 1.22×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="87.8" y1="54.0" x2="87.8" y2="192.9"/>
|
||||
<circle class="nj-theme-dot" cx="87.8" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="87.8" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="128.4" cy="159.4" r="3.5"><title>#5283: 2.6×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="128.4" y1="54.0" x2="128.4" y2="154.4"/>
|
||||
<circle class="nj-theme-dot" cx="128.4" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="128.4" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="219.3" cy="153.4" r="3.5"><title>#5592: 2.9×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="219.3" y1="54.0" x2="219.3" y2="148.4"/>
|
||||
<circle class="nj-theme-dot" cx="219.3" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="219.3" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="239.2" cy="141.0" r="3.5"><title>#5809: 3.7×</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="240.0" cy="136.5" r="3.5"><title>#5810: 4.0×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="240.0" y1="36.0" x2="240.0" y2="131.5"/>
|
||||
<circle class="nj-theme-dot" cx="231.0" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="231.0" y="32.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-theme-dot" cx="249.0" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="249.0" y="32.0" text-anchor="middle">2</text>
|
||||
<circle class="nj-charts-json-dot" cx="268.7" cy="126.4" r="3.5"><title>#5853: 4.9×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="268.7" y1="54.0" x2="268.7" y2="121.4"/>
|
||||
<circle class="nj-theme-dot" cx="268.7" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="268.7" y="50.0" text-anchor="middle">2</text>
|
||||
<circle class="nj-charts-json-dot" cx="330.0" cy="89.0" r="3.5"><title>#6031: 10×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="330.0" y1="54.0" x2="330.0" y2="84.0"/>
|
||||
<circle class="nj-theme-dot" cx="322.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="322.5" y="50.0" text-anchor="middle">1</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-note" x="8" y="262">speedup over 3.12.0 (log scale), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--timeline" viewBox="0 0 340 270" role="img" aria-labelledby="nj-blog-tl-dump_canada nj-blog-tl-dump_canada-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-tl-dump_canada">dump() canada.json: speedup over 3.12.0 by commit</title>
|
||||
<desc id="nj-blog-tl-dump_canada-d">dump() canada.json: speedup over 3.12.0 at each of 353 commits, ending at 3.3x. Labeled steps, by theme: 6, 3.</desc>
|
||||
<desc id="nj-blog-tl-dump_canada-d">dump() canada.json: speedup over 3.12.0 at each of 360 commits, ending at 3.2x. Labeled steps, by theme: 6, 3.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="18">dump() canada.json</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="212">1×</text>
|
||||
@@ -12,19 +12,21 @@
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">8×</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="44" y2="212"/>
|
||||
<text class="nj-charts-tick" x="44" y="225">3.12.0</text>
|
||||
<line class="nj-charts-axis" x1="117.938" y1="208" x2="117.938" y2="212"/>
|
||||
<text class="nj-charts-tick" x="117.938" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="198.375" y1="208" x2="198.375" y2="212"/>
|
||||
<text class="nj-charts-tick" x="198.375" y="225">Oct</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.0 45.6,208.0 45.6,207.2 46.4,207.2 46.4,207.9 47.2,207.9 47.2,206.7 48.1,206.7 48.1,207.5 48.9,207.5 48.9,207.7 49.7,207.7 49.7,207.3 50.5,207.3 50.5,207.9 51.3,207.9 51.3,206.6 52.1,206.6 52.1,207.5 52.9,207.5 52.9,208.0 53.8,208.0 53.8,207.6 54.6,207.6 54.6,207.2 55.4,207.2 55.4,207.5 56.2,207.5 56.2,206.6 57.0,206.6 57.0,207.1 57.8,207.1 57.8,207.1 58.6,207.1 58.6,207.2 59.4,207.2 59.4,206.6 60.2,206.6 60.2,207.5 61.1,207.5 61.1,207.6 61.9,207.6 61.9,207.7 62.7,207.7 62.7,207.2 63.5,207.2 63.5,206.5 64.3,206.5 64.3,206.8 65.1,206.8 65.1,207.1 65.9,207.1 65.9,207.0 66.8,207.0 66.8,207.1 67.6,207.1 67.6,206.7 68.4,206.7 68.4,208.2 69.2,208.2 69.2,207.5 70.0,207.5 70.0,206.6 70.8,206.6 70.8,206.7 71.6,206.7 71.6,206.3 72.4,206.3 72.4,208.4 73.2,208.4 73.2,207.3 74.1,207.3 74.1,206.8 74.9,206.8 74.9,208.0 75.7,208.0 75.7,207.8 76.5,207.8 76.5,207.1 77.3,207.1 77.3,207.5 78.1,207.5 78.1,207.9 78.9,207.9 78.9,206.3 79.8,206.3 79.8,206.8 80.6,206.8 80.6,207.5 81.4,207.5 81.4,208.1 82.2,208.1 82.2,206.6 83.0,206.6 83.0,207.2 83.8,207.2 83.8,207.2 84.6,207.2 84.6,207.4 85.4,207.4 85.4,207.0 86.2,207.0 86.2,206.7 87.1,206.7 87.1,206.5 87.9,206.5 87.9,207.6 88.7,207.6 88.7,207.4 89.5,207.4 89.5,207.2 90.3,207.2 90.3,207.5 91.1,207.5 91.1,207.6 91.9,207.6 91.9,208.0 92.8,208.0 92.8,208.2 93.6,208.2 93.6,206.7 94.4,206.7 94.4,207.4 95.2,207.4 95.2,206.7 96.0,206.7 96.0,206.6 96.8,206.6 96.8,208.0 97.6,208.0 97.6,208.0 98.4,208.0 98.4,206.3 99.2,206.3 99.2,208.3 100.1,208.3 100.1,207.8 100.9,207.8 100.9,207.4 101.7,207.4 101.7,206.3 102.5,206.3 102.5,208.1 103.3,208.1 103.3,207.5 104.1,207.5 104.1,207.4 104.9,207.4 104.9,207.5 105.8,207.5 105.8,207.7 106.6,207.7 106.6,208.0 107.4,208.0 107.4,207.0 108.2,207.0 108.2,207.5 109.0,207.5 109.0,207.2 109.8,207.2 109.8,207.7 110.6,207.7 110.6,207.3 111.4,207.3 111.4,208.0 112.2,208.0 112.2,206.7 113.1,206.7 113.1,206.6 113.9,206.6 113.9,207.2 114.7,207.2 114.7,208.1 115.5,208.1 115.5,208.1 116.3,208.1 116.3,206.7 117.1,206.7 117.1,207.8 117.9,207.8 117.9,207.6 118.8,207.6 118.8,207.4 119.6,207.4 119.6,207.1 120.4,207.1 120.4,207.5 121.2,207.5 121.2,208.8 122.0,208.8 122.0,209.2 122.8,209.2 122.8,208.4 123.6,208.4 123.6,208.3 124.4,208.3 124.4,208.0 125.3,208.0 125.3,209.0 126.1,209.0 126.1,208.5 126.9,208.5 126.9,209.1 127.7,209.1 127.7,209.2 128.5,209.2 128.5,208.6 129.3,208.6 129.3,207.7 130.1,207.7 130.1,207.7 130.9,207.7 130.9,207.5 131.8,207.5 131.8,202.2 132.6,202.2 132.6,202.3 133.4,202.3 133.4,201.7 134.2,201.7 134.2,202.3 135.0,202.3 135.0,201.9 135.8,201.9 135.8,201.2 136.6,201.2 136.6,202.1 137.4,202.1 137.4,202.6 138.2,202.6 138.2,201.5 139.1,201.5 139.1,202.3 139.9,202.3 139.9,202.3 140.7,202.3 140.7,201.7 141.5,201.7 141.5,201.3 142.3,201.3 142.3,202.5 143.1,202.5 143.1,201.1 143.9,201.1 143.9,202.9 144.8,202.9 144.8,202.2 145.6,202.2 145.6,201.7 146.4,201.7 146.4,201.7 147.2,201.7 147.2,201.6 148.0,201.6 148.0,203.0 148.8,203.0 148.8,202.7 149.6,202.7 149.6,202.4 150.4,202.4 150.4,202.8 151.2,202.8 151.2,202.1 152.1,202.1 152.1,203.1 152.9,203.1 152.9,202.3 153.7,202.3 153.7,202.3 154.5,202.3 154.5,201.8 155.3,201.8 155.3,203.1 156.1,203.1 156.1,201.8 156.9,201.8 156.9,202.6 157.8,202.6 157.8,202.6 158.6,202.6 158.6,202.9 159.4,202.9 159.4,202.3 160.2,202.3 160.2,202.3 161.0,202.3 161.0,201.6 161.8,201.6 161.8,201.5 162.6,201.5 162.6,202.4 163.4,202.4 163.4,201.7 164.2,201.7 164.2,201.2 165.1,201.2 165.1,202.2 165.9,202.2 165.9,201.6 166.7,201.6 166.7,201.6 167.5,201.6 167.5,201.8 168.3,201.8 168.3,202.1 169.1,202.1 169.1,201.7 169.9,201.7 169.9,201.4 170.8,201.4 170.8,202.2 171.6,202.2 171.6,202.7 172.4,202.7 172.4,202.4 173.2,202.4 173.2,201.7 174.0,201.7 174.0,201.7 174.8,201.7 174.8,202.3 175.6,202.3 175.6,201.6 176.4,201.6 176.4,201.7 177.2,201.7 177.2,202.2 178.1,202.2 178.1,202.2 178.9,202.2 178.9,202.4 179.7,202.4 179.7,201.7 180.5,201.7 180.5,202.1 181.3,202.1 181.3,201.6 182.1,201.6 182.1,202.2 182.9,202.2 182.9,201.9 183.8,201.9 183.8,201.9 184.6,201.9 184.6,202.5 185.4,202.5 185.4,201.6 186.2,201.6 186.2,202.1 187.0,202.1 187.0,202.3 187.8,202.3 187.8,201.8 188.6,201.8 188.6,201.5 189.4,201.5 189.4,202.3 190.2,202.3 190.2,202.2 191.1,202.2 191.1,202.9 191.9,202.9 191.9,201.3 192.7,201.3 192.7,202.2 193.5,202.2 193.5,203.6 194.3,203.6 194.3,201.9 195.1,201.9 195.1,202.4 195.9,202.4 195.9,201.7 196.8,201.7 196.8,202.7 197.6,202.7 197.6,202.3 198.4,202.3 198.4,202.5 199.2,202.5 199.2,202.1 200.0,202.1 200.0,203.4 200.8,203.4 200.8,202.1 201.6,202.1 201.6,202.3 202.4,202.3 202.4,201.9 203.2,201.9 203.2,202.3 204.1,202.3 204.1,201.7 204.9,201.7 204.9,202.4 205.7,202.4 205.7,202.3 206.5,202.3 206.5,202.9 207.3,202.9 207.3,202.9 208.1,202.9 208.1,202.2 208.9,202.2 208.9,202.4 209.8,202.4 209.8,202.2 210.6,202.2 210.6,202.7 211.4,202.7 211.4,202.5 212.2,202.5 212.2,202.5 213.0,202.5 213.0,201.5 213.8,201.5 213.8,203.1 214.6,203.1 214.6,203.2 215.4,203.2 215.4,201.5 216.2,201.5 216.2,2Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="131.8" cy="202.2" r="3.5"><title>#5285: 1.09×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="131.8" y1="54.0" x2="131.8" y2="197.2"/>
|
||||
<circle class="nj-theme-dot" cx="131.8" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="131.8" y="50.0" text-anchor="middle">6</text>
|
||||
<circle class="nj-charts-json-dot" cx="246.3" cy="130.7" r="3.5"><title>#5634: 3.1×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="246.3" y1="54.0" x2="246.3" y2="125.7"/>
|
||||
<circle class="nj-theme-dot" cx="246.3" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="246.3" y="50.0" text-anchor="middle">3</text>
|
||||
<line class="nj-charts-axis" x1="116.496" y1="208" x2="116.496" y2="212"/>
|
||||
<text class="nj-charts-tick" x="116.496" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="195.365" y1="208" x2="195.365" y2="212"/>
|
||||
<text class="nj-charts-tick" x="195.365" y="225">Oct</text>
|
||||
<line class="nj-charts-axis" x1="302.117" y1="208" x2="302.117" y2="212"/>
|
||||
<text class="nj-charts-tick" x="302.117" y="225">Nov</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.0 45.6,208.0 45.6,207.2 46.4,207.2 46.4,207.9 47.2,207.9 47.2,206.7 48.0,206.7 48.0,207.5 48.8,207.5 48.8,207.7 49.6,207.7 49.6,207.3 50.4,207.3 50.4,207.9 51.2,207.9 51.2,206.6 52.0,206.6 52.0,207.5 52.8,207.5 52.8,208.0 53.6,208.0 53.6,207.6 54.4,207.6 54.4,207.2 55.2,207.2 55.2,207.5 55.9,207.5 55.9,206.6 56.7,206.6 56.7,207.1 57.5,207.1 57.5,207.1 58.3,207.1 58.3,207.2 59.1,207.2 59.1,206.6 59.9,206.6 59.9,207.5 60.7,207.5 60.7,207.6 61.5,207.6 61.5,207.7 62.3,207.7 62.3,207.2 63.1,207.2 63.1,206.5 63.9,206.5 63.9,206.8 64.7,206.8 64.7,207.1 65.5,207.1 65.5,207.0 66.3,207.0 66.3,207.1 67.1,207.1 67.1,206.7 67.9,206.7 67.9,208.2 68.7,208.2 68.7,207.5 69.5,207.5 69.5,206.6 70.3,206.6 70.3,206.7 71.1,206.7 71.1,206.3 71.9,206.3 71.9,208.4 72.7,208.4 72.7,207.3 73.5,207.3 73.5,206.8 74.3,206.8 74.3,208.0 75.1,208.0 75.1,207.8 75.9,207.8 75.9,207.1 76.7,207.1 76.7,207.5 77.5,207.5 77.5,207.9 78.3,207.9 78.3,206.3 79.1,206.3 79.1,206.8 79.8,206.8 79.8,207.5 80.6,207.5 80.6,208.1 81.4,208.1 81.4,206.6 82.2,206.6 82.2,207.2 83.0,207.2 83.0,207.2 83.8,207.2 83.8,207.4 84.6,207.4 84.6,207.0 85.4,207.0 85.4,206.7 86.2,206.7 86.2,206.5 87.0,206.5 87.0,207.6 87.8,207.6 87.8,207.4 88.6,207.4 88.6,207.2 89.4,207.2 89.4,207.5 90.2,207.5 90.2,207.6 91.0,207.6 91.0,208.0 91.8,208.0 91.8,208.2 92.6,208.2 92.6,206.7 93.4,206.7 93.4,207.4 94.2,207.4 94.2,206.7 95.0,206.7 95.0,206.6 95.8,206.6 95.8,208.0 96.6,208.0 96.6,208.0 97.4,208.0 97.4,206.3 98.2,206.3 98.2,208.3 99.0,208.3 99.0,207.8 99.8,207.8 99.8,207.4 100.6,207.4 100.6,206.3 101.4,206.3 101.4,208.1 102.2,208.1 102.2,207.5 103.0,207.5 103.0,207.4 103.7,207.4 103.7,207.5 104.5,207.5 104.5,207.7 105.3,207.7 105.3,208.0 106.1,208.0 106.1,207.0 106.9,207.0 106.9,207.5 107.7,207.5 107.7,207.2 108.5,207.2 108.5,207.7 109.3,207.7 109.3,207.3 110.1,207.3 110.1,208.0 110.9,208.0 110.9,206.7 111.7,206.7 111.7,206.6 112.5,206.6 112.5,207.2 113.3,207.2 113.3,208.1 114.1,208.1 114.1,208.1 114.9,208.1 114.9,206.7 115.7,206.7 115.7,207.8 116.5,207.8 116.5,207.6 117.3,207.6 117.3,207.4 118.1,207.4 118.1,207.1 118.9,207.1 118.9,207.5 119.7,207.5 119.7,208.8 120.5,208.8 120.5,209.2 121.3,209.2 121.3,208.4 122.1,208.4 122.1,208.3 122.9,208.3 122.9,208.0 123.7,208.0 123.7,209.0 124.5,209.0 124.5,208.5 125.3,208.5 125.3,209.1 126.1,209.1 126.1,209.2 126.9,209.2 126.9,208.6 127.6,208.6 127.6,207.7 128.4,207.7 128.4,207.7 129.2,207.7 129.2,207.5 130.0,207.5 130.0,202.2 130.8,202.2 130.8,202.3 131.6,202.3 131.6,201.7 132.4,201.7 132.4,202.3 133.2,202.3 133.2,201.9 134.0,201.9 134.0,201.2 134.8,201.2 134.8,202.1 135.6,202.1 135.6,202.6 136.4,202.6 136.4,201.5 137.2,201.5 137.2,202.3 138.0,202.3 138.0,202.3 138.8,202.3 138.8,201.7 139.6,201.7 139.6,201.3 140.4,201.3 140.4,202.5 141.2,202.5 141.2,201.1 142.0,201.1 142.0,202.9 142.8,202.9 142.8,202.2 143.6,202.2 143.6,201.7 144.4,201.7 144.4,201.7 145.2,201.7 145.2,201.6 146.0,201.6 146.0,203.0 146.8,203.0 146.8,202.7 147.6,202.7 147.6,202.4 148.4,202.4 148.4,202.8 149.2,202.8 149.2,202.1 150.0,202.1 150.0,203.1 150.8,203.1 150.8,202.3 151.5,202.3 151.5,202.3 152.3,202.3 152.3,201.8 153.1,201.8 153.1,203.1 153.9,203.1 153.9,201.8 154.7,201.8 154.7,202.6 155.5,202.6 155.5,202.6 156.3,202.6 156.3,202.9 157.1,202.9 157.1,202.3 157.9,202.3 157.9,202.3 158.7,202.3 158.7,201.6 159.5,201.6 159.5,201.5 160.3,201.5 160.3,202.4 161.1,202.4 161.1,201.7 161.9,201.7 161.9,201.2 162.7,201.2 162.7,202.2 163.5,202.2 163.5,201.6 164.3,201.6 164.3,201.6 165.1,201.6 165.1,201.8 165.9,201.8 165.9,202.1 166.7,202.1 166.7,201.7 167.5,201.7 167.5,201.4 168.3,201.4 168.3,202.2 169.1,202.2 169.1,202.7 169.9,202.7 169.9,202.4 170.7,202.4 170.7,201.7 171.5,201.7 171.5,201.7 172.3,201.7 172.3,202.3 173.1,202.3 173.1,201.6 173.9,201.6 173.9,201.7 174.7,201.7 174.7,202.2 175.4,202.2 175.4,202.2 176.2,202.2 176.2,202.4 177.0,202.4 177.0,201.7 177.8,201.7 177.8,202.1 178.6,202.1 178.6,201.6 179.4,201.6 179.4,202.2 180.2,202.2 180.2,201.9 181.0,201.9 181.0,201.9 181.8,201.9 181.8,202.5 182.6,202.5 182.6,201.6 183.4,201.6 183.4,202.1 184.2,202.1 184.2,202.3 185.0,202.3 185.0,201.8 185.8,201.8 185.8,201.5 186.6,201.5 186.6,202.3 187.4,202.3 187.4,202.2 188.2,202.2 188.2,202.9 189.0,202.9 189.0,201.3 189.8,201.3 189.8,202.2 190.6,202.2 190.6,203.6 191.4,203.6 191.4,201.9 192.2,201.9 192.2,202.4 193.0,202.4 193.0,201.7 193.8,201.7 193.8,202.7 194.6,202.7 194.6,202.3 195.4,202.3 195.4,202.5 196.2,202.5 196.2,202.1 197.0,202.1 197.0,203.4 197.8,203.4 197.8,202.1 198.6,202.1 198.6,202.3 199.3,202.3 199.3,201.9 200.1,201.9 200.1,202.3 200.9,202.3 200.9,201.7 201.7,201.7 201.7,202.4 202.5,202.4 202.5,202.3 203.3,202.3 203.3,202.9 204.1,202.9 204.1,202.9 204.9,202.9 204.9,202.2 205.7,202.2 205.7,202.4 206.5,202.4 206.5,202.2 207.3,202.2 207.3,202.7 208.1,202.7 208.1,202.5 208.9,202.5 208.9,202.5 209.7,202.5 209.7,201.5 210.5,201.5 210.5,203.1 211.3,203.1 211.3,203.2 212.1,203.2 212.1,201.5 212.9,201.5 212.9,203.3Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="130.0" cy="202.2" r="3.5"><title>#5285: 1.09×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="130.0" y1="54.0" x2="130.0" y2="197.2"/>
|
||||
<circle class="nj-theme-dot" cx="130.0" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="130.0" y="50.0" text-anchor="middle">6</text>
|
||||
<circle class="nj-charts-json-dot" cx="242.4" cy="130.7" r="3.5"><title>#5634: 3.1×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="242.4" y1="54.0" x2="242.4" y2="125.7"/>
|
||||
<circle class="nj-theme-dot" cx="242.4" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="242.4" y="50.0" text-anchor="middle">3</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-note" x="8" y="262">speedup over 3.12.0 (log scale), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--timeline" viewBox="0 0 340 270" role="img" aria-labelledby="nj-blog-tl-dump_twitter nj-blog-tl-dump_twitter-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-tl-dump_twitter">dump() twitter.json: speedup over 3.12.0 by commit</title>
|
||||
<desc id="nj-blog-tl-dump_twitter-d">dump() twitter.json: speedup over 3.12.0 at each of 353 commits, ending at 6.8x. Labeled steps, by theme: 6, 2, 2, 2.</desc>
|
||||
<desc id="nj-blog-tl-dump_twitter-d">dump() twitter.json: speedup over 3.12.0 at each of 360 commits, ending at 6.8x. Labeled steps, by theme: 6, 2, 2, 2.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="18">dump() twitter.json</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="212">1×</text>
|
||||
@@ -14,24 +14,26 @@
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">16×</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="44" y2="212"/>
|
||||
<text class="nj-charts-tick" x="44" y="225">3.12.0</text>
|
||||
<line class="nj-charts-axis" x1="117.938" y1="208" x2="117.938" y2="212"/>
|
||||
<text class="nj-charts-tick" x="117.938" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="198.375" y1="208" x2="198.375" y2="212"/>
|
||||
<text class="nj-charts-tick" x="198.375" y="225">Oct</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.0 45.6,208.0 45.6,207.2 46.4,207.2 46.4,207.9 47.2,207.9 47.2,206.8 48.1,206.8 48.1,208.0 48.9,208.0 48.9,207.4 49.7,207.4 49.7,207.3 50.5,207.3 50.5,208.0 51.3,208.0 51.3,206.8 52.1,206.8 52.1,207.2 52.9,207.2 52.9,208.0 53.8,208.0 53.8,207.2 54.6,207.2 54.6,207.5 55.4,207.5 55.4,206.8 56.2,206.8 56.2,206.9 57.0,206.9 57.0,207.5 57.8,207.5 57.8,207.3 58.6,207.3 58.6,207.8 59.4,207.8 59.4,206.8 60.2,206.8 60.2,207.8 61.1,207.8 61.1,207.4 61.9,207.4 61.9,208.0 62.7,208.0 62.7,207.4 63.5,207.4 63.5,207.3 64.3,207.3 64.3,206.9 65.1,206.9 65.1,207.3 65.9,207.3 65.9,207.4 66.8,207.4 66.8,207.6 67.6,207.6 67.6,207.5 68.4,207.5 68.4,207.6 69.2,207.6 69.2,207.4 70.0,207.4 70.0,207.2 70.8,207.2 70.8,207.1 71.6,207.1 71.6,207.3 72.4,207.3 72.4,207.7 73.2,207.7 73.2,207.8 74.1,207.8 74.1,206.9 74.9,206.9 74.9,207.6 75.7,207.6 75.7,207.0 76.5,207.0 76.5,207.0 77.3,207.0 77.3,207.3 78.1,207.3 78.1,207.6 78.9,207.6 78.9,206.8 79.8,206.8 79.8,207.7 80.6,207.7 80.6,207.4 81.4,207.4 81.4,207.5 82.2,207.5 82.2,207.1 83.0,207.1 83.0,207.3 83.8,207.3 83.8,207.5 84.6,207.5 84.6,207.3 85.4,207.3 85.4,207.3 86.2,207.3 86.2,206.9 87.1,206.9 87.1,207.4 87.9,207.4 87.9,207.9 88.7,207.9 88.7,207.3 89.5,207.3 89.5,206.8 90.3,206.8 90.3,207.6 91.1,207.6 91.1,207.7 91.9,207.7 91.9,208.6 92.8,208.6 92.8,208.5 93.6,208.5 93.6,208.6 94.4,208.6 94.4,209.2 95.2,209.2 95.2,208.5 96.0,208.5 96.0,208.2 96.8,208.2 96.8,209.3 97.6,209.3 97.6,208.4 98.4,208.4 98.4,208.4 99.2,208.4 99.2,209.0 100.1,209.0 100.1,209.0 100.9,209.0 100.9,208.7 101.7,208.7 101.7,208.9 102.5,208.9 102.5,208.7 103.3,208.7 103.3,209.0 104.1,209.0 104.1,208.8 104.9,208.8 104.9,208.7 105.8,208.7 105.8,209.3 106.6,209.3 106.6,208.6 107.4,208.6 107.4,208.5 108.2,208.5 108.2,208.4 109.0,208.4 109.0,208.0 109.8,208.0 109.8,208.9 110.6,208.9 110.6,208.6 111.4,208.6 111.4,208.9 112.2,208.9 112.2,208.1 113.1,208.1 113.1,208.0 113.9,208.0 113.9,208.6 114.7,208.6 114.7,208.5 115.5,208.5 115.5,209.1 116.3,209.1 116.3,208.0 117.1,208.0 117.1,209.1 117.9,209.1 117.9,208.9 118.8,208.9 118.8,208.5 119.6,208.5 119.6,209.1 120.4,209.1 120.4,209.0 121.2,209.0 121.2,208.8 122.0,208.8 122.0,208.6 122.8,208.6 122.8,208.6 123.6,208.6 123.6,208.2 124.4,208.2 124.4,209.0 125.3,209.0 125.3,209.2 126.1,209.2 126.1,209.1 126.9,209.1 126.9,209.2 127.7,209.2 127.7,209.2 128.5,209.2 128.5,208.5 129.3,208.5 129.3,208.7 130.1,208.7 130.1,209.5 130.9,209.5 130.9,208.4 131.8,208.4 131.8,147.4 132.6,147.4 132.6,148.3 133.4,148.3 133.4,148.4 134.2,148.4 134.2,147.5 135.0,147.5 135.0,147.5 135.8,147.5 135.8,147.7 136.6,147.7 136.6,148.2 137.4,148.2 137.4,148.2 138.2,148.2 138.2,147.3 139.1,147.3 139.1,148.1 139.9,148.1 139.9,147.2 140.7,147.2 140.7,147.5 141.5,147.5 141.5,147.3 142.3,147.3 142.3,148.4 143.1,148.4 143.1,147.4 143.9,147.4 143.9,148.3 144.8,148.3 144.8,148.5 145.6,148.5 145.6,147.7 146.4,147.7 146.4,147.8 147.2,147.8 147.2,148.0 148.0,148.0 148.0,148.5 148.8,148.5 148.8,148.0 149.6,148.0 149.6,148.1 150.4,148.1 150.4,148.2 151.2,148.2 151.2,148.3 152.1,148.3 152.1,149.0 152.9,149.0 152.9,148.7 153.7,148.7 153.7,148.2 154.5,148.2 154.5,148.1 155.3,148.1 155.3,148.9 156.1,148.9 156.1,147.7 156.9,147.7 156.9,149.2 157.8,149.2 157.8,149.1 158.6,149.1 158.6,148.8 159.4,148.8 159.4,148.1 160.2,148.1 160.2,148.7 161.0,148.7 161.0,147.7 161.8,147.7 161.8,147.9 162.6,147.9 162.6,147.7 163.4,147.7 163.4,148.3 164.2,148.3 164.2,148.0 165.1,148.0 165.1,148.2 165.9,148.2 165.9,148.4 166.7,148.4 166.7,148.3 167.5,148.3 167.5,148.1 168.3,148.1 168.3,149.0 169.1,149.0 169.1,147.8 169.9,147.8 169.9,148.8 170.8,148.8 170.8,148.3 171.6,148.3 171.6,148.0 172.4,148.0 172.4,147.8 173.2,147.8 173.2,148.0 174.0,148.0 174.0,147.7 174.8,147.7 174.8,148.2 175.6,148.2 175.6,147.1 176.4,147.1 176.4,147.9 177.2,147.9 177.2,147.9 178.1,147.9 178.1,147.9 178.9,147.9 178.9,147.7 179.7,147.7 179.7,148.0 180.5,148.0 180.5,147.4 181.3,147.4 181.3,147.5 182.1,147.5 182.1,147.5 182.9,147.5 182.9,147.0 183.8,147.0 183.8,147.0 184.6,147.0 184.6,148.2 185.4,148.2 185.4,147.7 186.2,147.7 186.2,148.0 187.0,148.0 187.0,148.2 187.8,148.2 187.8,147.7 188.6,147.7 188.6,147.8 189.4,147.8 189.4,148.2 190.2,148.2 190.2,148.3 191.1,148.3 191.1,148.5 191.9,148.5 191.9,148.1 192.7,148.1 192.7,147.9 193.5,147.9 193.5,148.2 194.3,148.2 194.3,147.5 195.1,147.5 195.1,148.1 195.9,148.1 195.9,147.6 196.8,147.6 196.8,148.4 197.6,148.4 197.6,148.2 198.4,148.2 198.4,148.3 199.2,148.3 199.2,148.7 200.0,148.7 200.0,149.4 200.8,149.4 200.8,148.7 201.6,148.7 201.6,149.5 202.4,149.5 202.4,148.2 203.2,148.2 203.2,148.5 204.1,148.5 204.1,149.1 204.9,149.1 204.9,148.8 205.7,148.8 205.7,149.2 206.5,149.2 206.5,149.3 207.3,149.3 207.3,149.1 208.1,149.1 208.1,148.6 208.9,148.6 208.9,148.9 209.8,148.9 209.8,148.5 210.6,148.5 210.6,148.9 211.4,148.9 211.4,149.0 212.2,149.0 212.2,149.0 213.0,149.0 213.0,148.5 213.8,148.5 213.8,149.1 214.6,149.1 214.6,149.2 215.4,149.2 215.4,148.3 216.2,148.3 216.2,1Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="131.8" cy="147.4" r="3.5"><title>#5285: 3.3×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="131.8" y1="54.0" x2="131.8" y2="142.4"/>
|
||||
<circle class="nj-theme-dot" cx="131.8" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="131.8" y="50.0" text-anchor="middle">6</text>
|
||||
<circle class="nj-charts-json-dot" cx="245.5" cy="139.0" r="3.5"><title>#5738: 3.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="245.5" y1="54.0" x2="245.5" y2="134.0"/>
|
||||
<circle class="nj-theme-dot" cx="245.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="245.5" y="50.0" text-anchor="middle">2</text>
|
||||
<circle class="nj-charts-json-dot" cx="275.6" cy="131.0" r="3.5"><title>#5878: 4.5×</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="281.2" cy="109.6" r="3.5"><title>#5883: 6.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="281.2" y1="54.0" x2="281.2" y2="104.6"/>
|
||||
<circle class="nj-theme-dot" cx="281.2" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="281.2" y="50.0" text-anchor="middle">2</text>
|
||||
<line class="nj-charts-axis" x1="116.496" y1="208" x2="116.496" y2="212"/>
|
||||
<text class="nj-charts-tick" x="116.496" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="195.365" y1="208" x2="195.365" y2="212"/>
|
||||
<text class="nj-charts-tick" x="195.365" y="225">Oct</text>
|
||||
<line class="nj-charts-axis" x1="302.117" y1="208" x2="302.117" y2="212"/>
|
||||
<text class="nj-charts-tick" x="302.117" y="225">Nov</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.0 45.6,208.0 45.6,207.2 46.4,207.2 46.4,207.9 47.2,207.9 47.2,206.8 48.0,206.8 48.0,208.0 48.8,208.0 48.8,207.4 49.6,207.4 49.6,207.3 50.4,207.3 50.4,208.0 51.2,208.0 51.2,206.8 52.0,206.8 52.0,207.2 52.8,207.2 52.8,208.0 53.6,208.0 53.6,207.2 54.4,207.2 54.4,207.5 55.2,207.5 55.2,206.8 55.9,206.8 55.9,206.9 56.7,206.9 56.7,207.5 57.5,207.5 57.5,207.3 58.3,207.3 58.3,207.8 59.1,207.8 59.1,206.8 59.9,206.8 59.9,207.8 60.7,207.8 60.7,207.4 61.5,207.4 61.5,208.0 62.3,208.0 62.3,207.4 63.1,207.4 63.1,207.3 63.9,207.3 63.9,206.9 64.7,206.9 64.7,207.3 65.5,207.3 65.5,207.4 66.3,207.4 66.3,207.6 67.1,207.6 67.1,207.5 67.9,207.5 67.9,207.6 68.7,207.6 68.7,207.4 69.5,207.4 69.5,207.2 70.3,207.2 70.3,207.1 71.1,207.1 71.1,207.3 71.9,207.3 71.9,207.7 72.7,207.7 72.7,207.8 73.5,207.8 73.5,206.9 74.3,206.9 74.3,207.6 75.1,207.6 75.1,207.0 75.9,207.0 75.9,207.0 76.7,207.0 76.7,207.3 77.5,207.3 77.5,207.6 78.3,207.6 78.3,206.8 79.1,206.8 79.1,207.7 79.8,207.7 79.8,207.4 80.6,207.4 80.6,207.5 81.4,207.5 81.4,207.1 82.2,207.1 82.2,207.3 83.0,207.3 83.0,207.5 83.8,207.5 83.8,207.3 84.6,207.3 84.6,207.3 85.4,207.3 85.4,206.9 86.2,206.9 86.2,207.4 87.0,207.4 87.0,207.9 87.8,207.9 87.8,207.3 88.6,207.3 88.6,206.8 89.4,206.8 89.4,207.6 90.2,207.6 90.2,207.7 91.0,207.7 91.0,208.6 91.8,208.6 91.8,208.5 92.6,208.5 92.6,208.6 93.4,208.6 93.4,209.2 94.2,209.2 94.2,208.5 95.0,208.5 95.0,208.2 95.8,208.2 95.8,209.3 96.6,209.3 96.6,208.4 97.4,208.4 97.4,208.4 98.2,208.4 98.2,209.0 99.0,209.0 99.0,209.0 99.8,209.0 99.8,208.7 100.6,208.7 100.6,208.9 101.4,208.9 101.4,208.7 102.2,208.7 102.2,209.0 103.0,209.0 103.0,208.8 103.7,208.8 103.7,208.7 104.5,208.7 104.5,209.3 105.3,209.3 105.3,208.6 106.1,208.6 106.1,208.5 106.9,208.5 106.9,208.4 107.7,208.4 107.7,208.0 108.5,208.0 108.5,208.9 109.3,208.9 109.3,208.6 110.1,208.6 110.1,208.9 110.9,208.9 110.9,208.1 111.7,208.1 111.7,208.0 112.5,208.0 112.5,208.6 113.3,208.6 113.3,208.5 114.1,208.5 114.1,209.1 114.9,209.1 114.9,208.0 115.7,208.0 115.7,209.1 116.5,209.1 116.5,208.9 117.3,208.9 117.3,208.5 118.1,208.5 118.1,209.1 118.9,209.1 118.9,209.0 119.7,209.0 119.7,208.8 120.5,208.8 120.5,208.6 121.3,208.6 121.3,208.6 122.1,208.6 122.1,208.2 122.9,208.2 122.9,209.0 123.7,209.0 123.7,209.2 124.5,209.2 124.5,209.1 125.3,209.1 125.3,209.2 126.1,209.2 126.1,209.2 126.9,209.2 126.9,208.5 127.6,208.5 127.6,208.7 128.4,208.7 128.4,209.5 129.2,209.5 129.2,208.4 130.0,208.4 130.0,147.4 130.8,147.4 130.8,148.3 131.6,148.3 131.6,148.4 132.4,148.4 132.4,147.5 133.2,147.5 133.2,147.5 134.0,147.5 134.0,147.7 134.8,147.7 134.8,148.2 135.6,148.2 135.6,148.2 136.4,148.2 136.4,147.3 137.2,147.3 137.2,148.1 138.0,148.1 138.0,147.2 138.8,147.2 138.8,147.5 139.6,147.5 139.6,147.3 140.4,147.3 140.4,148.4 141.2,148.4 141.2,147.4 142.0,147.4 142.0,148.3 142.8,148.3 142.8,148.5 143.6,148.5 143.6,147.7 144.4,147.7 144.4,147.8 145.2,147.8 145.2,148.0 146.0,148.0 146.0,148.5 146.8,148.5 146.8,148.0 147.6,148.0 147.6,148.1 148.4,148.1 148.4,148.2 149.2,148.2 149.2,148.3 150.0,148.3 150.0,149.0 150.8,149.0 150.8,148.7 151.5,148.7 151.5,148.2 152.3,148.2 152.3,148.1 153.1,148.1 153.1,148.9 153.9,148.9 153.9,147.7 154.7,147.7 154.7,149.2 155.5,149.2 155.5,149.1 156.3,149.1 156.3,148.8 157.1,148.8 157.1,148.1 157.9,148.1 157.9,148.7 158.7,148.7 158.7,147.7 159.5,147.7 159.5,147.9 160.3,147.9 160.3,147.7 161.1,147.7 161.1,148.3 161.9,148.3 161.9,148.0 162.7,148.0 162.7,148.2 163.5,148.2 163.5,148.4 164.3,148.4 164.3,148.3 165.1,148.3 165.1,148.1 165.9,148.1 165.9,149.0 166.7,149.0 166.7,147.8 167.5,147.8 167.5,148.8 168.3,148.8 168.3,148.3 169.1,148.3 169.1,148.0 169.9,148.0 169.9,147.8 170.7,147.8 170.7,148.0 171.5,148.0 171.5,147.7 172.3,147.7 172.3,148.2 173.1,148.2 173.1,147.1 173.9,147.1 173.9,147.9 174.7,147.9 174.7,147.9 175.4,147.9 175.4,147.9 176.2,147.9 176.2,147.7 177.0,147.7 177.0,148.0 177.8,148.0 177.8,147.4 178.6,147.4 178.6,147.5 179.4,147.5 179.4,147.5 180.2,147.5 180.2,147.0 181.0,147.0 181.0,147.0 181.8,147.0 181.8,148.2 182.6,148.2 182.6,147.7 183.4,147.7 183.4,148.0 184.2,148.0 184.2,148.2 185.0,148.2 185.0,147.7 185.8,147.7 185.8,147.8 186.6,147.8 186.6,148.2 187.4,148.2 187.4,148.3 188.2,148.3 188.2,148.5 189.0,148.5 189.0,148.1 189.8,148.1 189.8,147.9 190.6,147.9 190.6,148.2 191.4,148.2 191.4,147.5 192.2,147.5 192.2,148.1 193.0,148.1 193.0,147.6 193.8,147.6 193.8,148.4 194.6,148.4 194.6,148.2 195.4,148.2 195.4,148.3 196.2,148.3 196.2,148.7 197.0,148.7 197.0,149.4 197.8,149.4 197.8,148.7 198.6,148.7 198.6,149.5 199.3,149.5 199.3,148.2 200.1,148.2 200.1,148.5 200.9,148.5 200.9,149.1 201.7,149.1 201.7,148.8 202.5,148.8 202.5,149.2 203.3,149.2 203.3,149.3 204.1,149.3 204.1,149.1 204.9,149.1 204.9,148.6 205.7,148.6 205.7,148.9 206.5,148.9 206.5,148.5 207.3,148.5 207.3,148.9 208.1,148.9 208.1,149.0 208.9,149.0 208.9,149.0 209.7,149.0 209.7,148.5 210.5,148.5 210.5,149.1 211.3,149.1 211.3,149.2 212.1,149.2 212.1,148.3 212.9,148.3 212.9,149.4Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="130.0" cy="147.4" r="3.5"><title>#5285: 3.3×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="130.0" y1="54.0" x2="130.0" y2="142.4"/>
|
||||
<circle class="nj-theme-dot" cx="130.0" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="130.0" y="50.0" text-anchor="middle">6</text>
|
||||
<circle class="nj-charts-json-dot" cx="241.6" cy="139.0" r="3.5"><title>#5738: 3.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="241.6" y1="54.0" x2="241.6" y2="134.0"/>
|
||||
<circle class="nj-theme-dot" cx="241.6" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="241.6" y="50.0" text-anchor="middle">2</text>
|
||||
<circle class="nj-charts-json-dot" cx="271.0" cy="131.0" r="3.5"><title>#5878: 4.5×</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="276.6" cy="109.6" r="3.5"><title>#5883: 6.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="276.6" y1="54.0" x2="276.6" y2="104.6"/>
|
||||
<circle class="nj-theme-dot" cx="276.6" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="276.6" y="50.0" text-anchor="middle">2</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-note" x="8" y="262">speedup over 3.12.0 (log scale), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--timeline" viewBox="0 0 340 270" role="img" aria-labelledby="nj-blog-tl-from_cbor_twitter nj-blog-tl-from_cbor_twitter-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-tl-from_cbor_twitter">from_cbor() twitter: speedup over 3.12.0 by commit</title>
|
||||
<desc id="nj-blog-tl-from_cbor_twitter-d">from_cbor() twitter: speedup over 3.12.0 at each of 353 commits, ending at 2.6x. Labeled steps, by theme: 1, 4, U, U.</desc>
|
||||
<desc id="nj-blog-tl-from_cbor_twitter-d">from_cbor() twitter: speedup over 3.12.0 at each of 360 commits, ending at 2.8x. Labeled steps, by theme: 1, 4, U, U, 4.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="18">from_cbor() twitter</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="212">1×</text>
|
||||
@@ -10,27 +10,33 @@
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">4×</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="44" y2="212"/>
|
||||
<text class="nj-charts-tick" x="44" y="225">3.12.0</text>
|
||||
<line class="nj-charts-axis" x1="117.938" y1="208" x2="117.938" y2="212"/>
|
||||
<text class="nj-charts-tick" x="117.938" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="198.375" y1="208" x2="198.375" y2="212"/>
|
||||
<text class="nj-charts-tick" x="198.375" y="225">Oct</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,209.1 45.6,209.1 45.6,208.2 46.4,208.2 46.4,208.6 47.2,208.6 47.2,208.0 48.1,208.0 48.1,208.4 48.9,208.4 48.9,208.6 49.7,208.6 49.7,208.3 50.5,208.3 50.5,209.1 51.3,209.1 51.3,207.8 52.1,207.8 52.1,208.5 52.9,208.5 52.9,208.6 53.8,208.6 53.8,208.6 54.6,208.6 54.6,207.7 55.4,207.7 55.4,207.1 56.2,207.1 56.2,207.3 57.0,207.3 57.0,206.9 57.8,206.9 57.8,207.1 58.6,207.1 58.6,207.0 59.4,207.0 59.4,207.1 60.2,207.1 60.2,207.1 61.1,207.1 61.1,207.5 61.9,207.5 61.9,207.5 62.7,207.5 62.7,206.9 63.5,206.9 63.5,207.0 64.3,207.0 64.3,206.2 65.1,206.2 65.1,207.1 65.9,207.1 65.9,208.5 66.8,208.5 66.8,208.0 67.6,208.0 67.6,207.8 68.4,207.8 68.4,208.5 69.2,208.5 69.2,207.8 70.0,207.8 70.0,207.0 70.8,207.0 70.8,208.1 71.6,208.1 71.6,208.2 72.4,208.2 72.4,208.6 73.2,208.6 73.2,208.1 74.1,208.1 74.1,207.2 74.9,207.2 74.9,208.3 75.7,208.3 75.7,207.4 76.5,207.4 76.5,207.9 77.3,207.9 77.3,207.7 78.1,207.7 78.1,208.6 78.9,208.6 78.9,207.3 79.8,207.3 79.8,207.9 80.6,207.9 80.6,208.4 81.4,208.4 81.4,208.5 82.2,208.5 82.2,208.0 83.0,208.0 83.0,207.1 83.8,207.1 83.8,208.1 84.6,208.1 84.6,208.1 85.4,208.1 85.4,207.8 86.2,207.8 86.2,207.9 87.1,207.9 87.1,207.9 87.9,207.9 87.9,208.7 88.7,208.7 88.7,208.1 89.5,208.1 89.5,168.9 90.3,168.9 90.3,170.3 91.1,170.3 91.1,169.9 91.9,169.9 91.9,169.0 92.8,169.0 92.8,169.6 93.6,169.6 93.6,169.1 94.4,169.1 94.4,170.1 95.2,170.1 95.2,168.8 96.0,168.8 96.0,167.9 96.8,167.9 96.8,170.4 97.6,170.4 97.6,169.5 98.4,169.5 98.4,169.7 99.2,169.7 99.2,172.9 100.1,172.9 100.1,170.5 100.9,170.5 100.9,170.4 101.7,170.4 101.7,170.1 102.5,170.1 102.5,170.2 103.3,170.2 103.3,170.7 104.1,170.7 104.1,170.5 104.9,170.5 104.9,170.4 105.8,170.4 105.8,171.1 106.6,171.1 106.6,170.2 107.4,170.2 107.4,168.6 108.2,168.6 108.2,168.9 109.0,168.9 109.0,168.8 109.8,168.8 109.8,170.5 110.6,170.5 110.6,169.2 111.4,169.2 111.4,169.8 112.2,169.8 112.2,168.2 113.1,168.2 113.1,168.3 113.9,168.3 113.9,169.9 114.7,169.9 114.7,170.3 115.5,170.3 115.5,170.5 116.3,170.5 116.3,169.2 117.1,169.2 117.1,170.5 117.9,170.5 117.9,170.1 118.8,170.1 118.8,170.0 119.6,170.0 119.6,170.0 120.4,170.0 120.4,169.7 121.2,169.7 121.2,169.9 122.0,169.9 122.0,169.2 122.8,169.2 122.8,169.6 123.6,169.6 123.6,170.0 124.4,170.0 124.4,170.0 125.3,170.0 125.3,170.5 126.1,170.5 126.1,170.8 126.9,170.8 126.9,170.5 127.7,170.5 127.7,170.8 128.5,170.8 128.5,169.2 129.3,169.2 129.3,128.6 130.1,128.6 130.1,121.0 130.9,121.0 130.9,120.5 131.8,120.5 131.8,120.8 132.6,120.8 132.6,120.9 133.4,120.9 133.4,120.2 134.2,120.2 134.2,116.5 135.0,116.5 135.0,117.5 135.8,117.5 135.8,117.4 136.6,117.4 136.6,118.0 137.4,118.0 137.4,118.3 138.2,118.3 138.2,118.0 139.1,118.0 139.1,120.1 139.9,120.1 139.9,118.9 140.7,118.9 140.7,119.6 141.5,119.6 141.5,119.0 142.3,119.0 142.3,120.9 143.1,120.9 143.1,118.6 143.9,118.6 143.9,121.1 144.8,121.1 144.8,120.1 145.6,120.1 145.6,118.4 146.4,118.4 146.4,119.3 147.2,119.3 147.2,119.0 148.0,119.0 148.0,120.2 148.8,120.2 148.8,119.0 149.6,119.0 149.6,119.4 150.4,119.4 150.4,119.8 151.2,119.8 151.2,120.4 152.1,120.4 152.1,120.6 152.9,120.6 152.9,119.6 153.7,119.6 153.7,118.8 154.5,118.8 154.5,118.4 155.3,118.4 155.3,120.2 156.1,120.2 156.1,119.3 156.9,119.3 156.9,119.9 157.8,119.9 157.8,119.6 158.6,119.6 158.6,119.7 159.4,119.7 159.4,119.2 160.2,119.2 160.2,119.5 161.0,119.5 161.0,118.0 161.8,118.0 161.8,150.3 162.6,150.3 162.6,150.5 163.4,150.5 163.4,150.6 164.2,150.6 164.2,151.3 165.1,151.3 165.1,151.4 165.9,151.4 165.9,150.7 166.7,150.7 166.7,152.1 167.5,152.1 167.5,151.8 168.3,151.8 168.3,152.4 169.1,152.4 169.1,150.6 169.9,150.6 169.9,152.8 170.8,152.8 170.8,154.2 171.6,154.2 171.6,152.8 172.4,152.8 172.4,152.9 173.2,152.9 173.2,153.6 174.0,153.6 174.0,151.7 174.8,151.7 174.8,153.8 175.6,153.8 175.6,151.6 176.4,151.6 176.4,152.6 177.2,152.6 177.2,153.5 178.1,153.5 178.1,151.8 178.9,151.8 178.9,152.7 179.7,152.7 179.7,153.6 180.5,153.6 180.5,152.7 181.3,152.7 181.3,152.5 182.1,152.5 182.1,152.7 182.9,152.7 182.9,151.6 183.8,151.6 183.8,153.2 184.6,153.2 184.6,154.6 185.4,154.6 185.4,152.1 186.2,152.1 186.2,152.9 187.0,152.9 187.0,153.9 187.8,153.9 187.8,153.0 188.6,153.0 188.6,152.6 189.4,152.6 189.4,154.0 190.2,154.0 190.2,154.0 191.1,154.0 191.1,154.3 191.9,154.3 191.9,152.5 192.7,152.5 192.7,154.4 193.5,154.4 193.5,154.2 194.3,154.2 194.3,151.8 195.1,151.8 195.1,154.0 195.9,154.0 195.9,153.0 196.8,153.0 196.8,152.2 197.6,152.2 197.6,153.7 198.4,153.7 198.4,153.8 199.2,153.8 199.2,153.9 200.0,153.9 200.0,155.5 200.8,155.5 200.8,153.4 201.6,153.4 201.6,155.4 202.4,155.4 202.4,152.8 203.2,152.8 203.2,154.0 204.1,154.0 204.1,152.3 204.9,152.3 204.9,153.2 205.7,153.2 205.7,153.5 206.5,153.5 206.5,153.6 207.3,153.6 207.3,154.6 208.1,154.6 208.1,152.7 208.9,152.7 208.9,155.4 209.8,155.4 209.8,152.5 210.6,152.5 210.6,153.3 211.4,153.3 211.4,153.3 212.2,153.3 212.2,154.5 213.0,154.5 213.0,152.6 213.8,152.6 213.8,153.0 214.6,153.0 214.6,154.3 215.4,154.3 215.4,122.0 216.2,122.0 216.2,1Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="89.5" cy="168.9" r="3.5"><title>#5233: 1.47×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="89.5" y1="54.0" x2="89.5" y2="163.9"/>
|
||||
<circle class="nj-theme-dot" cx="89.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="89.5" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="129.3" cy="128.6" r="3.5"><title>#5501: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="129.3" y1="54.0" x2="129.3" y2="123.6"/>
|
||||
<circle class="nj-theme-dot" cx="129.3" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="129.3" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="161.8" cy="150.3" r="3.5"><title>#5185: 1.76×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="161.8" y1="54.0" x2="161.8" y2="145.3"/>
|
||||
<circle class="nj-theme-dot nj-theme-dot--other" cx="161.8" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="161.8" y="50.0" text-anchor="middle">U</text>
|
||||
<circle class="nj-charts-json-dot" cx="215.4" cy="122.0" r="3.5"><title>#5746: 2.3×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="215.4" y1="54.0" x2="215.4" y2="117.0"/>
|
||||
<circle class="nj-theme-dot nj-theme-dot--other" cx="215.4" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="215.4" y="50.0" text-anchor="middle">U</text>
|
||||
<line class="nj-charts-axis" x1="116.496" y1="208" x2="116.496" y2="212"/>
|
||||
<text class="nj-charts-tick" x="116.496" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="195.365" y1="208" x2="195.365" y2="212"/>
|
||||
<text class="nj-charts-tick" x="195.365" y="225">Oct</text>
|
||||
<line class="nj-charts-axis" x1="302.117" y1="208" x2="302.117" y2="212"/>
|
||||
<text class="nj-charts-tick" x="302.117" y="225">Nov</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,209.1 45.6,209.1 45.6,208.2 46.4,208.2 46.4,208.6 47.2,208.6 47.2,208.0 48.0,208.0 48.0,208.4 48.8,208.4 48.8,208.6 49.6,208.6 49.6,208.3 50.4,208.3 50.4,209.1 51.2,209.1 51.2,207.8 52.0,207.8 52.0,208.5 52.8,208.5 52.8,208.6 53.6,208.6 53.6,208.6 54.4,208.6 54.4,207.7 55.2,207.7 55.2,207.1 55.9,207.1 55.9,207.3 56.7,207.3 56.7,206.9 57.5,206.9 57.5,207.1 58.3,207.1 58.3,207.0 59.1,207.0 59.1,207.1 59.9,207.1 59.9,207.1 60.7,207.1 60.7,207.5 61.5,207.5 61.5,207.5 62.3,207.5 62.3,206.9 63.1,206.9 63.1,207.0 63.9,207.0 63.9,206.2 64.7,206.2 64.7,207.1 65.5,207.1 65.5,208.5 66.3,208.5 66.3,208.0 67.1,208.0 67.1,207.8 67.9,207.8 67.9,208.5 68.7,208.5 68.7,207.8 69.5,207.8 69.5,207.0 70.3,207.0 70.3,208.1 71.1,208.1 71.1,208.2 71.9,208.2 71.9,208.6 72.7,208.6 72.7,208.1 73.5,208.1 73.5,207.2 74.3,207.2 74.3,208.3 75.1,208.3 75.1,207.4 75.9,207.4 75.9,207.9 76.7,207.9 76.7,207.7 77.5,207.7 77.5,208.6 78.3,208.6 78.3,207.3 79.1,207.3 79.1,207.9 79.8,207.9 79.8,208.4 80.6,208.4 80.6,208.5 81.4,208.5 81.4,208.0 82.2,208.0 82.2,207.1 83.0,207.1 83.0,208.1 83.8,208.1 83.8,208.1 84.6,208.1 84.6,207.8 85.4,207.8 85.4,207.9 86.2,207.9 86.2,207.9 87.0,207.9 87.0,208.7 87.8,208.7 87.8,208.1 88.6,208.1 88.6,168.9 89.4,168.9 89.4,170.3 90.2,170.3 90.2,169.9 91.0,169.9 91.0,169.0 91.8,169.0 91.8,169.6 92.6,169.6 92.6,169.1 93.4,169.1 93.4,170.1 94.2,170.1 94.2,168.8 95.0,168.8 95.0,167.9 95.8,167.9 95.8,170.4 96.6,170.4 96.6,169.5 97.4,169.5 97.4,169.7 98.2,169.7 98.2,172.9 99.0,172.9 99.0,170.5 99.8,170.5 99.8,170.4 100.6,170.4 100.6,170.1 101.4,170.1 101.4,170.2 102.2,170.2 102.2,170.7 103.0,170.7 103.0,170.5 103.7,170.5 103.7,170.4 104.5,170.4 104.5,171.1 105.3,171.1 105.3,170.2 106.1,170.2 106.1,168.6 106.9,168.6 106.9,168.9 107.7,168.9 107.7,168.8 108.5,168.8 108.5,170.5 109.3,170.5 109.3,169.2 110.1,169.2 110.1,169.8 110.9,169.8 110.9,168.2 111.7,168.2 111.7,168.3 112.5,168.3 112.5,169.9 113.3,169.9 113.3,170.3 114.1,170.3 114.1,170.5 114.9,170.5 114.9,169.2 115.7,169.2 115.7,170.5 116.5,170.5 116.5,170.1 117.3,170.1 117.3,170.0 118.1,170.0 118.1,170.0 118.9,170.0 118.9,169.7 119.7,169.7 119.7,169.9 120.5,169.9 120.5,169.2 121.3,169.2 121.3,169.6 122.1,169.6 122.1,170.0 122.9,170.0 122.9,170.0 123.7,170.0 123.7,170.5 124.5,170.5 124.5,170.8 125.3,170.8 125.3,170.5 126.1,170.5 126.1,170.8 126.9,170.8 126.9,169.2 127.6,169.2 127.6,128.6 128.4,128.6 128.4,121.0 129.2,121.0 129.2,120.5 130.0,120.5 130.0,120.8 130.8,120.8 130.8,120.9 131.6,120.9 131.6,120.2 132.4,120.2 132.4,116.5 133.2,116.5 133.2,117.5 134.0,117.5 134.0,117.4 134.8,117.4 134.8,118.0 135.6,118.0 135.6,118.3 136.4,118.3 136.4,118.0 137.2,118.0 137.2,120.1 138.0,120.1 138.0,118.9 138.8,118.9 138.8,119.6 139.6,119.6 139.6,119.0 140.4,119.0 140.4,120.9 141.2,120.9 141.2,118.6 142.0,118.6 142.0,121.1 142.8,121.1 142.8,120.1 143.6,120.1 143.6,118.4 144.4,118.4 144.4,119.3 145.2,119.3 145.2,119.0 146.0,119.0 146.0,120.2 146.8,120.2 146.8,119.0 147.6,119.0 147.6,119.4 148.4,119.4 148.4,119.8 149.2,119.8 149.2,120.4 150.0,120.4 150.0,120.6 150.8,120.6 150.8,119.6 151.5,119.6 151.5,118.8 152.3,118.8 152.3,118.4 153.1,118.4 153.1,120.2 153.9,120.2 153.9,119.3 154.7,119.3 154.7,119.9 155.5,119.9 155.5,119.6 156.3,119.6 156.3,119.7 157.1,119.7 157.1,119.2 157.9,119.2 157.9,119.5 158.7,119.5 158.7,118.0 159.5,118.0 159.5,150.3 160.3,150.3 160.3,150.5 161.1,150.5 161.1,150.6 161.9,150.6 161.9,151.3 162.7,151.3 162.7,151.4 163.5,151.4 163.5,150.7 164.3,150.7 164.3,152.1 165.1,152.1 165.1,151.8 165.9,151.8 165.9,152.4 166.7,152.4 166.7,150.6 167.5,150.6 167.5,152.8 168.3,152.8 168.3,154.2 169.1,154.2 169.1,152.8 169.9,152.8 169.9,152.9 170.7,152.9 170.7,153.6 171.5,153.6 171.5,151.7 172.3,151.7 172.3,153.8 173.1,153.8 173.1,151.6 173.9,151.6 173.9,152.6 174.7,152.6 174.7,153.5 175.4,153.5 175.4,151.8 176.2,151.8 176.2,152.7 177.0,152.7 177.0,153.6 177.8,153.6 177.8,152.7 178.6,152.7 178.6,152.5 179.4,152.5 179.4,152.7 180.2,152.7 180.2,151.6 181.0,151.6 181.0,153.2 181.8,153.2 181.8,154.6 182.6,154.6 182.6,152.1 183.4,152.1 183.4,152.9 184.2,152.9 184.2,153.9 185.0,153.9 185.0,153.0 185.8,153.0 185.8,152.6 186.6,152.6 186.6,154.0 187.4,154.0 187.4,154.0 188.2,154.0 188.2,154.3 189.0,154.3 189.0,152.5 189.8,152.5 189.8,154.4 190.6,154.4 190.6,154.2 191.4,154.2 191.4,151.8 192.2,151.8 192.2,154.0 193.0,154.0 193.0,153.0 193.8,153.0 193.8,152.2 194.6,152.2 194.6,153.7 195.4,153.7 195.4,153.8 196.2,153.8 196.2,153.9 197.0,153.9 197.0,155.5 197.8,155.5 197.8,153.4 198.6,153.4 198.6,155.4 199.3,155.4 199.3,152.8 200.1,152.8 200.1,154.0 200.9,154.0 200.9,152.3 201.7,152.3 201.7,153.2 202.5,153.2 202.5,153.5 203.3,153.5 203.3,153.6 204.1,153.6 204.1,154.6 204.9,154.6 204.9,152.7 205.7,152.7 205.7,155.4 206.5,155.4 206.5,152.5 207.3,152.5 207.3,153.3 208.1,153.3 208.1,153.3 208.9,153.3 208.9,154.5 209.7,154.5 209.7,152.6 210.5,152.6 210.5,153.0 211.3,153.0 211.3,154.3 212.1,154.3 212.1,122.0 212.9,122.0 212.9,123.3Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="88.6" cy="168.9" r="3.5"><title>#5233: 1.47×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="88.6" y1="54.0" x2="88.6" y2="163.9"/>
|
||||
<circle class="nj-theme-dot" cx="88.6" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="88.6" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="127.6" cy="128.6" r="3.5"><title>#5501: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="127.6" y1="54.0" x2="127.6" y2="123.6"/>
|
||||
<circle class="nj-theme-dot" cx="127.6" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="127.6" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="159.5" cy="150.3" r="3.5"><title>#5185: 1.76×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="159.5" y1="54.0" x2="159.5" y2="145.3"/>
|
||||
<circle class="nj-theme-dot nj-theme-dot--other" cx="159.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="159.5" y="50.0" text-anchor="middle">U</text>
|
||||
<circle class="nj-charts-json-dot" cx="212.1" cy="122.0" r="3.5"><title>#5746: 2.3×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="212.1" y1="54.0" x2="212.1" y2="117.0"/>
|
||||
<circle class="nj-theme-dot nj-theme-dot--other" cx="212.1" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="212.1" y="50.0" text-anchor="middle">U</text>
|
||||
<circle class="nj-charts-json-dot" cx="328.4" cy="101.8" r="3.5"><title>#6028: 2.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="328.4" y1="54.0" x2="328.4" y2="96.8"/>
|
||||
<circle class="nj-theme-dot" cx="322.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="322.5" y="50.0" text-anchor="middle">4</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-note" x="8" y="262">speedup over 3.12.0 (log scale), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 12 KiB |
@@ -1,44 +1,52 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--timeline" viewBox="0 0 340 270" role="img" aria-labelledby="nj-blog-tl-parse_canada nj-blog-tl-parse_canada-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-tl-parse_canada">parse() canada.json: speedup over 3.12.0 by commit</title>
|
||||
<desc id="nj-blog-tl-parse_canada-d">parse() canada.json: speedup over 3.12.0 at each of 353 commits, ending at 2.8x. Labeled steps, by theme: 4, 1, 3, 3, 3, 4.</desc>
|
||||
<desc id="nj-blog-tl-parse_canada-d">parse() canada.json: speedup over 3.12.0 at each of 360 commits, ending at 3.3x. Labeled steps, by theme: 4, 1, 3, 3, 3, 4, 1.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="18">parse() canada.json</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="212">1×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="137" x2="330" y2="137"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="141">2×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="160.667" x2="330" y2="160.667"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="164.667">2×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="113.333" x2="330" y2="113.333"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="117.333">4×</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="66" x2="330" y2="66"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">4×</text>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">8×</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="44" y2="212"/>
|
||||
<text class="nj-charts-tick" x="44" y="225">3.12.0</text>
|
||||
<line class="nj-charts-axis" x1="117.938" y1="208" x2="117.938" y2="212"/>
|
||||
<text class="nj-charts-tick" x="117.938" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="198.375" y1="208" x2="198.375" y2="212"/>
|
||||
<text class="nj-charts-tick" x="198.375" y="225">Oct</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.2 45.6,208.2 45.6,208.1 46.4,208.1 46.4,207.7 47.2,207.7 47.2,207.2 48.1,207.2 48.1,208.0 48.9,208.0 48.9,208.2 49.7,208.2 49.7,207.8 50.5,207.8 50.5,208.5 51.3,208.5 51.3,207.3 52.1,207.3 52.1,208.0 52.9,208.0 52.9,209.1 53.8,209.1 53.8,208.5 54.6,208.5 54.6,208.1 55.4,208.1 55.4,207.7 56.2,207.7 56.2,209.8 57.0,209.8 57.0,208.6 57.8,208.6 57.8,208.1 58.6,208.1 58.6,208.1 59.4,208.1 59.4,207.0 60.2,207.0 60.2,207.8 61.1,207.8 61.1,207.6 61.9,207.6 61.9,208.1 62.7,208.1 62.7,208.4 63.5,208.4 63.5,207.8 64.3,207.8 64.3,207.4 65.1,207.4 65.1,208.3 65.9,208.3 65.9,207.3 66.8,207.3 66.8,207.8 67.6,207.8 67.6,207.9 68.4,207.9 68.4,207.9 69.2,207.9 69.2,207.5 70.0,207.5 70.0,207.5 70.8,207.5 70.8,208.1 71.6,208.1 71.6,208.1 72.4,208.1 72.4,207.9 73.2,207.9 73.2,207.8 74.1,207.8 74.1,207.1 74.9,207.1 74.9,207.6 75.7,207.6 75.7,207.8 76.5,207.8 76.5,207.3 77.3,207.3 77.3,207.6 78.1,207.6 78.1,208.6 78.9,208.6 78.9,206.5 79.8,206.5 79.8,208.0 80.6,208.0 80.6,208.7 81.4,208.7 81.4,208.0 82.2,208.0 82.2,207.7 83.0,207.7 83.0,208.4 83.8,208.4 83.8,207.9 84.6,207.9 84.6,207.5 85.4,207.5 85.4,207.9 86.2,207.9 86.2,207.4 87.1,207.4 87.1,207.5 87.9,207.5 87.9,208.5 88.7,208.5 88.7,197.5 89.5,197.5 89.5,197.9 90.3,197.9 90.3,196.9 91.1,196.9 91.1,197.0 91.9,197.0 91.9,197.7 92.8,197.7 92.8,196.0 93.6,196.0 93.6,197.3 94.4,197.3 94.4,198.1 95.2,198.1 95.2,197.4 96.0,197.4 96.0,197.0 96.8,197.0 96.8,197.5 97.6,197.5 97.6,197.3 98.4,197.3 98.4,197.7 99.2,197.7 99.2,197.7 100.1,197.7 100.1,197.6 100.9,197.6 100.9,196.9 101.7,196.9 101.7,197.9 102.5,197.9 102.5,197.9 103.3,197.9 103.3,197.6 104.1,197.6 104.1,197.6 104.9,197.6 104.9,197.6 105.8,197.6 105.8,198.1 106.6,198.1 106.6,198.0 107.4,198.0 107.4,195.3 108.2,195.3 108.2,196.6 109.0,196.6 109.0,197.9 109.8,197.9 109.8,197.0 110.6,197.0 110.6,196.3 111.4,196.3 111.4,196.8 112.2,196.8 112.2,196.6 113.1,196.6 113.1,196.6 113.9,196.6 113.9,197.7 114.7,197.7 114.7,197.5 115.5,197.5 115.5,198.1 116.3,198.1 116.3,195.9 117.1,195.9 117.1,197.5 117.9,197.5 117.9,197.6 118.8,197.6 118.8,196.7 119.6,196.7 119.6,197.0 120.4,197.0 120.4,198.0 121.2,198.0 121.2,197.0 122.0,197.0 122.0,197.2 122.8,197.2 122.8,196.6 123.6,196.6 123.6,197.0 124.4,197.0 124.4,197.2 125.3,197.2 125.3,197.6 126.1,197.6 126.1,197.8 126.9,197.8 126.9,197.2 127.7,197.2 127.7,197.6 128.5,197.6 128.5,197.3 129.3,197.3 129.3,197.0 130.1,197.0 130.1,168.6 130.9,168.6 130.9,169.7 131.8,169.7 131.8,170.1 132.6,170.1 132.6,168.9 133.4,168.9 133.4,168.3 134.2,168.3 134.2,169.9 135.0,169.9 135.0,168.7 135.8,168.7 135.8,168.3 136.6,168.3 136.6,169.7 137.4,169.7 137.4,170.9 138.2,170.9 138.2,168.1 139.1,168.1 139.1,170.2 139.9,170.2 139.9,169.1 140.7,169.1 140.7,170.1 141.5,170.1 141.5,168.5 142.3,168.5 142.3,169.7 143.1,169.7 143.1,170.1 143.9,170.1 143.9,169.8 144.8,169.8 144.8,169.1 145.6,169.1 145.6,167.2 146.4,167.2 146.4,169.7 147.2,169.7 147.2,168.6 148.0,168.6 148.0,170.3 148.8,170.3 148.8,169.7 149.6,169.7 149.6,168.7 150.4,168.7 150.4,169.3 151.2,169.3 151.2,172.3 152.1,172.3 152.1,171.2 152.9,171.2 152.9,169.1 153.7,169.1 153.7,167.8 154.5,167.8 154.5,169.3 155.3,169.3 155.3,169.1 156.1,169.1 156.1,168.5 156.9,168.5 156.9,168.7 157.8,168.7 157.8,168.6 158.6,168.6 158.6,169.0 159.4,169.0 159.4,168.5 160.2,168.5 160.2,170.9 161.0,170.9 161.0,169.9 161.8,169.9 161.8,168.0 162.6,168.0 162.6,168.8 163.4,168.8 163.4,168.5 164.2,168.5 164.2,168.5 165.1,168.5 165.1,169.9 165.9,169.9 165.9,169.1 166.7,169.1 166.7,168.6 167.5,168.6 167.5,168.6 168.3,168.6 168.3,169.4 169.1,169.4 169.1,169.1 169.9,169.1 169.9,170.2 170.8,170.2 170.8,178.0 171.6,178.0 171.6,177.3 172.4,177.3 172.4,167.7 173.2,167.7 173.2,168.5 174.0,168.5 174.0,168.7 174.8,168.7 174.8,168.5 175.6,168.5 175.6,168.8 176.4,168.8 176.4,168.0 177.2,168.0 177.2,168.2 178.1,168.2 178.1,167.7 178.9,167.7 178.9,167.5 179.7,167.5 179.7,168.1 180.5,168.1 180.5,168.3 181.3,168.3 181.3,168.1 182.1,168.1 182.1,168.1 182.9,168.1 182.9,167.5 183.8,167.5 183.8,166.5 184.6,166.5 184.6,169.1 185.4,169.1 185.4,168.6 186.2,168.6 186.2,168.5 187.0,168.5 187.0,168.1 187.8,168.1 187.8,167.3 188.6,167.3 188.6,168.0 189.4,168.0 189.4,168.3 190.2,168.3 190.2,168.6 191.1,168.6 191.1,169.0 191.9,169.0 191.9,166.6 192.7,166.6 192.7,169.4 193.5,169.4 193.5,169.3 194.3,169.3 194.3,167.3 195.1,167.3 195.1,168.5 195.9,168.5 195.9,167.1 196.8,167.1 196.8,169.4 197.6,169.4 197.6,168.9 198.4,168.9 198.4,167.4 199.2,167.4 199.2,168.4 200.0,168.4 200.0,168.5 200.8,168.5 200.8,166.9 201.6,166.9 201.6,168.7 202.4,168.7 202.4,165.7 203.2,165.7 203.2,167.0 204.1,167.0 204.1,166.6 204.9,166.6 204.9,167.4 205.7,167.4 205.7,167.6 206.5,167.6 206.5,167.2 207.3,167.2 207.3,167.4 208.1,167.4 208.1,166.6 208.9,166.6 208.9,166.2 209.8,166.2 209.8,168.4 210.6,168.4 210.6,167.2 211.4,167.2 211.4,166.7 212.2,166.7 212.2,166.5 213.0,166.5 213.0,166.0 213.8,166.0 213.8,167.4 214.6,167.4 214.6,167.3 215.4,167.3 215.4,167.3 216.2,167.3 216.2,1Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="88.7" cy="197.5" r="3.5"><title>#5234: 1.11×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="88.7" y1="54.0" x2="88.7" y2="192.5"/>
|
||||
<circle class="nj-theme-dot" cx="88.7" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="88.7" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="130.1" cy="168.6" r="3.5"><title>#5283: 1.47×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="130.1" y1="54.0" x2="130.1" y2="163.6"/>
|
||||
<circle class="nj-theme-dot" cx="130.1" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="130.1" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="172.4" cy="167.7" r="3.5"><title>#5617: 1.48×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="172.4" y1="54.0" x2="172.4" y2="162.7"/>
|
||||
<circle class="nj-theme-dot" cx="172.4" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="172.4" y="50.0" text-anchor="middle">3</text>
|
||||
<circle class="nj-charts-json-dot" cx="245.5" cy="139.8" r="3.5"><title>#5738: 1.95×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="245.5" y1="54.0" x2="245.5" y2="134.8"/>
|
||||
<circle class="nj-theme-dot" cx="245.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="245.5" y="50.0" text-anchor="middle">3</text>
|
||||
<circle class="nj-charts-json-dot" cx="271.5" cy="127.4" r="3.5"><title>#5851: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="271.5" y1="54.0" x2="271.5" y2="122.4"/>
|
||||
<circle class="nj-theme-dot" cx="271.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="271.5" y="50.0" text-anchor="middle">3</text>
|
||||
<circle class="nj-charts-json-dot" cx="285.3" cy="102.2" r="3.5"><title>#5882: 2.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="285.3" y1="36.0" x2="285.3" y2="97.2"/>
|
||||
<circle class="nj-theme-dot" cx="285.3" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="285.3" y="32.0" text-anchor="middle">4</text>
|
||||
<line class="nj-charts-axis" x1="116.496" y1="208" x2="116.496" y2="212"/>
|
||||
<text class="nj-charts-tick" x="116.496" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="195.365" y1="208" x2="195.365" y2="212"/>
|
||||
<text class="nj-charts-tick" x="195.365" y="225">Oct</text>
|
||||
<line class="nj-charts-axis" x1="302.117" y1="208" x2="302.117" y2="212"/>
|
||||
<text class="nj-charts-tick" x="302.117" y="225">Nov</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.1 45.6,208.1 45.6,208.1 46.4,208.1 46.4,207.8 47.2,207.8 47.2,207.5 48.0,207.5 48.0,208.0 48.8,208.0 48.8,208.1 49.6,208.1 49.6,207.8 50.4,207.8 50.4,208.3 51.2,208.3 51.2,207.5 52.0,207.5 52.0,208.0 52.8,208.0 52.8,208.8 53.6,208.8 53.6,208.3 54.4,208.3 54.4,208.1 55.2,208.1 55.2,207.8 55.9,207.8 55.9,209.2 56.7,209.2 56.7,208.4 57.5,208.4 57.5,208.1 58.3,208.1 58.3,208.1 59.1,208.1 59.1,207.3 59.9,207.3 59.9,207.8 60.7,207.8 60.7,207.7 61.5,207.7 61.5,208.1 62.3,208.1 62.3,208.3 63.1,208.3 63.1,207.8 63.9,207.8 63.9,207.6 64.7,207.6 64.7,208.2 65.5,208.2 65.5,207.5 66.3,207.5 66.3,207.8 67.1,207.8 67.1,207.9 67.9,207.9 67.9,207.9 68.7,207.9 68.7,207.6 69.5,207.6 69.5,207.7 70.3,207.7 70.3,208.0 71.1,208.0 71.1,208.1 71.9,208.1 71.9,207.9 72.7,207.9 72.7,207.9 73.5,207.9 73.5,207.4 74.3,207.4 74.3,207.7 75.1,207.7 75.1,207.9 75.9,207.9 75.9,207.5 76.7,207.5 76.7,207.8 77.5,207.8 77.5,208.4 78.3,208.4 78.3,207.0 79.1,207.0 79.1,208.0 79.8,208.0 79.8,208.5 80.6,208.5 80.6,208.0 81.4,208.0 81.4,207.8 82.2,207.8 82.2,208.3 83.0,208.3 83.0,208.0 83.8,208.0 83.8,207.7 84.6,207.7 84.6,207.9 85.4,207.9 85.4,207.6 86.2,207.6 86.2,207.7 87.0,207.7 87.0,208.3 87.8,208.3 87.8,201.0 88.6,201.0 88.6,201.3 89.4,201.3 89.4,200.6 90.2,200.6 90.2,200.7 91.0,200.7 91.0,201.2 91.8,201.2 91.8,200.0 92.6,200.0 92.6,200.8 93.4,200.8 93.4,201.4 94.2,201.4 94.2,200.9 95.0,200.9 95.0,200.6 95.8,200.6 95.8,201.0 96.6,201.0 96.6,200.8 97.4,200.8 97.4,201.1 98.2,201.1 98.2,201.1 99.0,201.1 99.0,201.1 99.8,201.1 99.8,200.6 100.6,200.6 100.6,201.3 101.4,201.3 101.4,201.3 102.2,201.3 102.2,201.0 103.0,201.0 103.0,201.0 103.7,201.0 103.7,201.0 104.5,201.0 104.5,201.4 105.3,201.4 105.3,201.3 106.1,201.3 106.1,199.5 106.9,199.5 106.9,200.4 107.7,200.4 107.7,201.2 108.5,201.2 108.5,200.7 109.3,200.7 109.3,200.2 110.1,200.2 110.1,200.5 110.9,200.5 110.9,200.4 111.7,200.4 111.7,200.4 112.5,200.4 112.5,201.1 113.3,201.1 113.3,201.0 114.1,201.0 114.1,201.4 114.9,201.4 114.9,199.9 115.7,199.9 115.7,201.0 116.5,201.0 116.5,201.1 117.3,201.1 117.3,200.5 118.1,200.5 118.1,200.7 118.9,200.7 118.9,201.3 119.7,201.3 119.7,200.6 120.5,200.6 120.5,200.8 121.3,200.8 121.3,200.4 122.1,200.4 122.1,200.7 122.9,200.7 122.9,200.8 123.7,200.8 123.7,201.0 124.5,201.0 124.5,201.2 125.3,201.2 125.3,200.8 126.1,200.8 126.1,201.1 126.9,201.1 126.9,200.9 127.6,200.9 127.6,200.7 128.4,200.7 128.4,181.8 129.2,181.8 129.2,182.4 130.0,182.4 130.0,182.8 130.8,182.8 130.8,181.9 131.6,181.9 131.6,181.6 132.4,181.6 132.4,182.6 133.2,182.6 133.2,181.8 134.0,181.8 134.0,181.5 134.8,181.5 134.8,182.5 135.6,182.5 135.6,183.2 136.4,183.2 136.4,181.4 137.2,181.4 137.2,182.8 138.0,182.8 138.0,182.1 138.8,182.1 138.8,182.7 139.6,182.7 139.6,181.6 140.4,181.6 140.4,182.5 141.2,182.5 141.2,182.7 142.0,182.7 142.0,182.5 142.8,182.5 142.8,182.1 143.6,182.1 143.6,180.8 144.4,180.8 144.4,182.5 145.2,182.5 145.2,181.7 146.0,181.7 146.0,182.9 146.8,182.9 146.8,182.5 147.6,182.5 147.6,181.8 148.4,181.8 148.4,182.2 149.2,182.2 149.2,184.2 150.0,184.2 150.0,183.5 150.8,183.5 150.8,182.1 151.5,182.1 151.5,181.2 152.3,181.2 152.3,182.2 153.1,182.2 153.1,182.1 153.9,182.1 153.9,181.7 154.7,181.7 154.7,181.8 155.5,181.8 155.5,181.7 156.3,181.7 156.3,182.0 157.1,182.0 157.1,181.7 157.9,181.7 157.9,183.2 158.7,183.2 158.7,182.6 159.5,182.6 159.5,181.4 160.3,181.4 160.3,181.9 161.1,181.9 161.1,181.7 161.9,181.7 161.9,181.6 162.7,181.6 162.7,182.6 163.5,182.6 163.5,182.1 164.3,182.1 164.3,181.7 165.1,181.7 165.1,181.7 165.9,181.7 165.9,182.2 166.7,182.2 166.7,182.0 167.5,182.0 167.5,182.8 168.3,182.8 168.3,188.0 169.1,188.0 169.1,187.6 169.9,187.6 169.9,181.2 170.7,181.2 170.7,181.7 171.5,181.7 171.5,181.8 172.3,181.8 172.3,181.6 173.1,181.6 173.1,181.9 173.9,181.9 173.9,181.3 174.7,181.3 174.7,181.5 175.4,181.5 175.4,181.1 176.2,181.1 176.2,181.0 177.0,181.0 177.0,181.4 177.8,181.4 177.8,181.5 178.6,181.5 178.6,181.4 179.4,181.4 179.4,181.4 180.2,181.4 180.2,181.0 181.0,181.0 181.0,180.4 181.8,180.4 181.8,182.1 182.6,182.1 182.6,181.7 183.4,181.7 183.4,181.6 184.2,181.6 184.2,181.4 185.0,181.4 185.0,180.9 185.8,180.9 185.8,181.3 186.6,181.3 186.6,181.5 187.4,181.5 187.4,181.7 188.2,181.7 188.2,182.0 189.0,182.0 189.0,180.4 189.8,180.4 189.8,182.3 190.6,182.3 190.6,182.2 191.4,182.2 191.4,180.9 192.2,180.9 192.2,181.6 193.0,181.6 193.0,180.8 193.8,180.8 193.8,182.2 194.6,182.2 194.6,181.9 195.4,181.9 195.4,180.9 196.2,180.9 196.2,181.6 197.0,181.6 197.0,181.6 197.8,181.6 197.8,180.6 198.6,180.6 198.6,181.8 199.3,181.8 199.3,179.8 200.1,179.8 200.1,180.7 200.9,180.7 200.9,180.4 201.7,180.4 201.7,181.0 202.5,181.0 202.5,181.1 203.3,181.1 203.3,180.8 204.1,180.8 204.1,180.9 204.9,180.9 204.9,180.4 205.7,180.4 205.7,180.1 206.5,180.1 206.5,181.6 207.3,181.6 207.3,180.8 208.1,180.8 208.1,180.5 208.9,180.5 208.9,180.3 209.7,180.3 209.7,180.0 210.5,180.0 210.5,180.9 211.3,180.9 211.3,180.8 212.1,180.8 212.1,180.9 212.9,180.9 212.9,181.5Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="87.8" cy="201.0" r="3.5"><title>#5234: 1.11×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="87.8" y1="54.0" x2="87.8" y2="196.0"/>
|
||||
<circle class="nj-theme-dot" cx="87.8" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="87.8" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="128.4" cy="181.8" r="3.5"><title>#5283: 1.47×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="128.4" y1="54.0" x2="128.4" y2="176.8"/>
|
||||
<circle class="nj-theme-dot" cx="128.4" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="128.4" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="169.9" cy="181.2" r="3.5"><title>#5617: 1.48×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="169.9" y1="54.0" x2="169.9" y2="176.2"/>
|
||||
<circle class="nj-theme-dot" cx="169.9" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="169.9" y="50.0" text-anchor="middle">3</text>
|
||||
<circle class="nj-charts-json-dot" cx="241.6" cy="162.6" r="3.5"><title>#5738: 1.95×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="241.6" y1="54.0" x2="241.6" y2="157.6"/>
|
||||
<circle class="nj-theme-dot" cx="241.6" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="241.6" y="50.0" text-anchor="middle">3</text>
|
||||
<circle class="nj-charts-json-dot" cx="267.1" cy="154.3" r="3.5"><title>#5851: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="267.1" y1="54.0" x2="267.1" y2="149.3"/>
|
||||
<circle class="nj-theme-dot" cx="267.1" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="267.1" y="50.0" text-anchor="middle">3</text>
|
||||
<circle class="nj-charts-json-dot" cx="280.6" cy="137.5" r="3.5"><title>#5882: 2.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="280.6" y1="36.0" x2="280.6" y2="132.5"/>
|
||||
<circle class="nj-theme-dot" cx="280.6" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="280.6" y="32.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="330.0" cy="126.8" r="3.5"><title>#6031: 3.3×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="330.0" y1="54.0" x2="330.0" y2="121.8"/>
|
||||
<circle class="nj-theme-dot" cx="322.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="322.5" y="50.0" text-anchor="middle">1</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-note" x="8" y="262">speedup over 3.12.0 (log scale), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--timeline" viewBox="0 0 340 270" role="img" aria-labelledby="nj-blog-tl-parse_citm nj-blog-tl-parse_citm-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-tl-parse_citm">parse() citm_catalog.json: speedup over 3.12.0 by commit</title>
|
||||
<desc id="nj-blog-tl-parse_citm-d">parse() citm_catalog.json: speedup over 3.12.0 at each of 353 commits, ending at 3.3x. Labeled steps, by theme: 4, 1, 4, 4, 2, 4.</desc>
|
||||
<desc id="nj-blog-tl-parse_citm-d">parse() citm_catalog.json: speedup over 3.12.0 at each of 360 commits, ending at 3.8x. Labeled steps, by theme: 4, 1, 4, 4, 2, 4, 1.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="18">parse() citm_catalog.json</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="212">1×</text>
|
||||
@@ -12,34 +12,40 @@
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">8×</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="44" y2="212"/>
|
||||
<text class="nj-charts-tick" x="44" y="225">3.12.0</text>
|
||||
<line class="nj-charts-axis" x1="117.938" y1="208" x2="117.938" y2="212"/>
|
||||
<text class="nj-charts-tick" x="117.938" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="198.375" y1="208" x2="198.375" y2="212"/>
|
||||
<text class="nj-charts-tick" x="198.375" y="225">Oct</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.2 45.6,208.2 45.6,207.8 46.4,207.8 46.4,207.5 47.2,207.5 47.2,206.5 48.1,206.5 48.1,208.3 48.9,208.3 48.9,207.3 49.7,207.3 49.7,206.8 50.5,206.8 50.5,207.8 51.3,207.8 51.3,206.8 52.1,206.8 52.1,207.3 52.9,207.3 52.9,207.6 53.8,207.6 53.8,207.8 54.6,207.8 54.6,207.0 55.4,207.0 55.4,207.3 56.2,207.3 56.2,207.2 57.0,207.2 57.0,207.4 57.8,207.4 57.8,207.5 58.6,207.5 58.6,207.4 59.4,207.4 59.4,206.6 60.2,206.6 60.2,207.6 61.1,207.6 61.1,207.6 61.9,207.6 61.9,207.2 62.7,207.2 62.7,207.0 63.5,207.0 63.5,207.6 64.3,207.6 64.3,206.7 65.1,206.7 65.1,207.4 65.9,207.4 65.9,206.8 66.8,206.8 66.8,207.3 67.6,207.3 67.6,207.7 68.4,207.7 68.4,207.9 69.2,207.9 69.2,207.2 70.0,207.2 70.0,206.4 70.8,206.4 70.8,207.6 71.6,207.6 71.6,206.4 72.4,206.4 72.4,208.0 73.2,208.0 73.2,207.4 74.1,207.4 74.1,206.5 74.9,206.5 74.9,207.5 75.7,207.5 75.7,207.2 76.5,207.2 76.5,206.9 77.3,206.9 77.3,207.6 78.1,207.6 78.1,207.6 78.9,207.6 78.9,207.0 79.8,207.0 79.8,206.9 80.6,206.9 80.6,208.0 81.4,208.0 81.4,207.6 82.2,207.6 82.2,206.6 83.0,206.6 83.0,206.8 83.8,206.8 83.8,207.3 84.6,207.3 84.6,206.9 85.4,206.9 85.4,207.6 86.2,207.6 86.2,207.1 87.1,207.1 87.1,207.6 87.9,207.6 87.9,207.9 88.7,207.9 88.7,178.2 89.5,178.2 89.5,177.5 90.3,177.5 90.3,177.7 91.1,177.7 91.1,177.6 91.9,177.6 91.9,177.7 92.8,177.7 92.8,177.1 93.6,177.1 93.6,176.8 94.4,176.8 94.4,177.7 95.2,177.7 95.2,177.6 96.0,177.6 96.0,176.8 96.8,176.8 96.8,177.8 97.6,177.8 97.6,177.0 98.4,177.0 98.4,176.8 99.2,176.8 99.2,178.0 100.1,178.0 100.1,178.1 100.9,178.1 100.9,177.6 101.7,177.6 101.7,177.6 102.5,177.6 102.5,177.4 103.3,177.4 103.3,177.6 104.1,177.6 104.1,177.8 104.9,177.8 104.9,177.5 105.8,177.5 105.8,177.9 106.6,177.9 106.6,177.7 107.4,177.7 107.4,175.9 108.2,175.9 108.2,177.5 109.0,177.5 109.0,177.6 109.8,177.6 109.8,177.6 110.6,177.6 110.6,176.9 111.4,176.9 111.4,177.5 112.2,177.5 112.2,177.4 113.1,177.4 113.1,177.4 113.9,177.4 113.9,176.9 114.7,176.9 114.7,177.9 115.5,177.9 115.5,177.3 116.3,177.3 116.3,176.6 117.1,176.6 117.1,177.4 117.9,177.4 117.9,177.5 118.8,177.5 118.8,177.5 119.6,177.5 119.6,177.4 120.4,177.4 120.4,177.0 121.2,177.0 121.2,177.7 122.0,177.7 122.0,176.2 122.8,176.2 122.8,176.9 123.6,176.9 123.6,177.5 124.4,177.5 124.4,177.8 125.3,177.8 125.3,177.8 126.1,177.8 126.1,177.9 126.9,177.9 126.9,177.3 127.7,177.3 127.7,177.5 128.5,177.5 128.5,177.4 129.3,177.4 129.3,177.1 130.1,177.1 130.1,162.5 130.9,162.5 130.9,162.2 131.8,162.2 131.8,161.8 132.6,161.8 132.6,162.2 133.4,162.2 133.4,161.2 134.2,161.2 134.2,160.7 135.0,160.7 135.0,159.4 135.8,159.4 135.8,160.3 136.6,160.3 136.6,160.4 137.4,160.4 137.4,160.6 138.2,160.6 138.2,159.5 139.1,159.5 139.1,160.4 139.9,160.4 139.9,159.6 140.7,159.6 140.7,160.0 141.5,160.0 141.5,159.9 142.3,159.9 142.3,160.2 143.1,160.2 143.1,159.6 143.9,159.6 143.9,160.8 144.8,160.8 144.8,160.1 145.6,160.1 145.6,159.1 146.4,159.1 146.4,159.7 147.2,159.7 147.2,159.9 148.0,159.9 148.0,160.5 148.8,160.5 148.8,160.2 149.6,160.2 149.6,159.9 150.4,159.9 150.4,160.5 151.2,160.5 151.2,160.5 152.1,160.5 152.1,160.6 152.9,160.6 152.9,159.7 153.7,159.7 153.7,159.5 154.5,159.5 154.5,160.0 155.3,160.0 155.3,160.2 156.1,160.2 156.1,160.0 156.9,160.0 156.9,160.6 157.8,160.6 157.8,159.9 158.6,159.9 158.6,160.2 159.4,160.2 159.4,160.1 160.2,160.1 160.2,160.8 161.0,160.8 161.0,159.2 161.8,159.2 161.8,159.6 162.6,159.6 162.6,159.2 163.4,159.2 163.4,160.0 164.2,160.0 164.2,159.4 165.1,159.4 165.1,159.6 165.9,159.6 165.9,159.5 166.7,159.5 166.7,160.1 167.5,160.1 167.5,159.0 168.3,159.0 168.3,159.4 169.1,159.4 169.1,160.2 169.9,160.2 169.9,161.4 170.8,161.4 170.8,161.7 171.6,161.7 171.6,161.6 172.4,161.6 172.4,160.3 173.2,160.3 173.2,161.1 174.0,161.1 174.0,161.2 174.8,161.2 174.8,161.7 175.6,161.7 175.6,161.2 176.4,161.2 176.4,160.4 177.2,160.4 177.2,161.6 178.1,161.6 178.1,160.6 178.9,160.6 178.9,161.4 179.7,161.4 179.7,161.3 180.5,161.3 180.5,161.3 181.3,161.3 181.3,161.7 182.1,161.7 182.1,161.2 182.9,161.2 182.9,160.1 183.8,160.1 183.8,160.9 184.6,160.9 184.6,161.5 185.4,161.5 185.4,160.6 186.2,160.6 186.2,161.9 187.0,161.9 187.0,161.4 187.8,161.4 187.8,160.1 188.6,160.1 188.6,160.6 189.4,160.6 189.4,162.0 190.2,162.0 190.2,161.5 191.1,161.5 191.1,162.0 191.9,162.0 191.9,161.3 192.7,161.3 192.7,162.3 193.5,162.3 193.5,162.1 194.3,162.1 194.3,160.8 195.1,160.8 195.1,161.5 195.9,161.5 195.9,161.4 196.8,161.4 196.8,162.2 197.6,162.2 197.6,161.4 198.4,161.4 198.4,161.4 199.2,161.4 199.2,161.8 200.0,161.8 200.0,160.7 200.8,160.7 200.8,160.5 201.6,160.5 201.6,160.5 202.4,160.5 202.4,159.3 203.2,159.3 203.2,159.4 204.1,159.4 204.1,160.4 204.9,160.4 204.9,160.1 205.7,160.1 205.7,160.4 206.5,160.4 206.5,160.4 207.3,160.4 207.3,160.8 208.1,160.8 208.1,159.8 208.9,159.8 208.9,159.4 209.8,159.4 209.8,160.5 210.6,160.5 210.6,160.1 211.4,160.1 211.4,160.7 212.2,160.7 212.2,160.6 213.0,160.6 213.0,159.5 213.8,159.5 213.8,161.1 214.6,161.1 214.6,161.3 215.4,161.3 215.4,161.0 216.2,161.0 216.2,1Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="88.7" cy="178.2" r="3.5"><title>#5234: 1.55×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="88.7" y1="54.0" x2="88.7" y2="173.2"/>
|
||||
<circle class="nj-theme-dot" cx="88.7" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="88.7" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="130.1" cy="162.5" r="3.5"><title>#5283: 1.95×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="130.1" y1="54.0" x2="130.1" y2="157.5"/>
|
||||
<circle class="nj-theme-dot" cx="130.1" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="130.1" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="222.8" cy="155.4" r="3.5"><title>#5592: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="222.8" y1="54.0" x2="222.8" y2="150.4"/>
|
||||
<circle class="nj-theme-dot" cx="222.8" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="222.8" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="243.1" cy="147.1" r="3.5"><title>#5809: 2.4×</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="243.9" cy="138.2" r="3.5"><title>#5810: 2.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="243.9" y1="36.0" x2="243.9" y2="133.2"/>
|
||||
<circle class="nj-theme-dot" cx="234.9" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="234.9" y="32.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-theme-dot" cx="252.9" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="252.9" y="32.0" text-anchor="middle">2</text>
|
||||
<circle class="nj-charts-json-dot" cx="285.3" cy="125.7" r="3.5"><title>#5882: 3.3×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="285.3" y1="54.0" x2="285.3" y2="120.7"/>
|
||||
<circle class="nj-theme-dot" cx="285.3" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="285.3" y="50.0" text-anchor="middle">4</text>
|
||||
<line class="nj-charts-axis" x1="116.496" y1="208" x2="116.496" y2="212"/>
|
||||
<text class="nj-charts-tick" x="116.496" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="195.365" y1="208" x2="195.365" y2="212"/>
|
||||
<text class="nj-charts-tick" x="195.365" y="225">Oct</text>
|
||||
<line class="nj-charts-axis" x1="302.117" y1="208" x2="302.117" y2="212"/>
|
||||
<text class="nj-charts-tick" x="302.117" y="225">Nov</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.2 45.6,208.2 45.6,207.8 46.4,207.8 46.4,207.5 47.2,207.5 47.2,206.5 48.0,206.5 48.0,208.3 48.8,208.3 48.8,207.3 49.6,207.3 49.6,206.8 50.4,206.8 50.4,207.8 51.2,207.8 51.2,206.8 52.0,206.8 52.0,207.3 52.8,207.3 52.8,207.6 53.6,207.6 53.6,207.8 54.4,207.8 54.4,207.0 55.2,207.0 55.2,207.3 55.9,207.3 55.9,207.2 56.7,207.2 56.7,207.4 57.5,207.4 57.5,207.5 58.3,207.5 58.3,207.4 59.1,207.4 59.1,206.6 59.9,206.6 59.9,207.6 60.7,207.6 60.7,207.6 61.5,207.6 61.5,207.2 62.3,207.2 62.3,207.0 63.1,207.0 63.1,207.6 63.9,207.6 63.9,206.7 64.7,206.7 64.7,207.4 65.5,207.4 65.5,206.8 66.3,206.8 66.3,207.3 67.1,207.3 67.1,207.7 67.9,207.7 67.9,207.9 68.7,207.9 68.7,207.2 69.5,207.2 69.5,206.4 70.3,206.4 70.3,207.6 71.1,207.6 71.1,206.4 71.9,206.4 71.9,208.0 72.7,208.0 72.7,207.4 73.5,207.4 73.5,206.5 74.3,206.5 74.3,207.5 75.1,207.5 75.1,207.2 75.9,207.2 75.9,206.9 76.7,206.9 76.7,207.6 77.5,207.6 77.5,207.6 78.3,207.6 78.3,207.0 79.1,207.0 79.1,206.9 79.8,206.9 79.8,208.0 80.6,208.0 80.6,207.6 81.4,207.6 81.4,206.6 82.2,206.6 82.2,206.8 83.0,206.8 83.0,207.3 83.8,207.3 83.8,206.9 84.6,206.9 84.6,207.6 85.4,207.6 85.4,207.1 86.2,207.1 86.2,207.6 87.0,207.6 87.0,207.9 87.8,207.9 87.8,178.2 88.6,178.2 88.6,177.5 89.4,177.5 89.4,177.7 90.2,177.7 90.2,177.6 91.0,177.6 91.0,177.7 91.8,177.7 91.8,177.1 92.6,177.1 92.6,176.8 93.4,176.8 93.4,177.7 94.2,177.7 94.2,177.6 95.0,177.6 95.0,176.8 95.8,176.8 95.8,177.8 96.6,177.8 96.6,177.0 97.4,177.0 97.4,176.8 98.2,176.8 98.2,178.0 99.0,178.0 99.0,178.1 99.8,178.1 99.8,177.6 100.6,177.6 100.6,177.6 101.4,177.6 101.4,177.4 102.2,177.4 102.2,177.6 103.0,177.6 103.0,177.8 103.7,177.8 103.7,177.5 104.5,177.5 104.5,177.9 105.3,177.9 105.3,177.7 106.1,177.7 106.1,175.9 106.9,175.9 106.9,177.5 107.7,177.5 107.7,177.6 108.5,177.6 108.5,177.6 109.3,177.6 109.3,176.9 110.1,176.9 110.1,177.5 110.9,177.5 110.9,177.4 111.7,177.4 111.7,177.4 112.5,177.4 112.5,176.9 113.3,176.9 113.3,177.9 114.1,177.9 114.1,177.3 114.9,177.3 114.9,176.6 115.7,176.6 115.7,177.4 116.5,177.4 116.5,177.5 117.3,177.5 117.3,177.5 118.1,177.5 118.1,177.4 118.9,177.4 118.9,177.0 119.7,177.0 119.7,177.7 120.5,177.7 120.5,176.2 121.3,176.2 121.3,176.9 122.1,176.9 122.1,177.5 122.9,177.5 122.9,177.8 123.7,177.8 123.7,177.8 124.5,177.8 124.5,177.9 125.3,177.9 125.3,177.3 126.1,177.3 126.1,177.5 126.9,177.5 126.9,177.4 127.6,177.4 127.6,177.1 128.4,177.1 128.4,162.5 129.2,162.5 129.2,162.2 130.0,162.2 130.0,161.8 130.8,161.8 130.8,162.2 131.6,162.2 131.6,161.2 132.4,161.2 132.4,160.7 133.2,160.7 133.2,159.4 134.0,159.4 134.0,160.3 134.8,160.3 134.8,160.4 135.6,160.4 135.6,160.6 136.4,160.6 136.4,159.5 137.2,159.5 137.2,160.4 138.0,160.4 138.0,159.6 138.8,159.6 138.8,160.0 139.6,160.0 139.6,159.9 140.4,159.9 140.4,160.2 141.2,160.2 141.2,159.6 142.0,159.6 142.0,160.8 142.8,160.8 142.8,160.1 143.6,160.1 143.6,159.1 144.4,159.1 144.4,159.7 145.2,159.7 145.2,159.9 146.0,159.9 146.0,160.5 146.8,160.5 146.8,160.2 147.6,160.2 147.6,159.9 148.4,159.9 148.4,160.5 149.2,160.5 149.2,160.5 150.0,160.5 150.0,160.6 150.8,160.6 150.8,159.7 151.5,159.7 151.5,159.5 152.3,159.5 152.3,160.0 153.1,160.0 153.1,160.2 153.9,160.2 153.9,160.0 154.7,160.0 154.7,160.6 155.5,160.6 155.5,159.9 156.3,159.9 156.3,160.2 157.1,160.2 157.1,160.1 157.9,160.1 157.9,160.8 158.7,160.8 158.7,159.2 159.5,159.2 159.5,159.6 160.3,159.6 160.3,159.2 161.1,159.2 161.1,160.0 161.9,160.0 161.9,159.4 162.7,159.4 162.7,159.6 163.5,159.6 163.5,159.5 164.3,159.5 164.3,160.1 165.1,160.1 165.1,159.0 165.9,159.0 165.9,159.4 166.7,159.4 166.7,160.2 167.5,160.2 167.5,161.4 168.3,161.4 168.3,161.7 169.1,161.7 169.1,161.6 169.9,161.6 169.9,160.3 170.7,160.3 170.7,161.1 171.5,161.1 171.5,161.2 172.3,161.2 172.3,161.7 173.1,161.7 173.1,161.2 173.9,161.2 173.9,160.4 174.7,160.4 174.7,161.6 175.4,161.6 175.4,160.6 176.2,160.6 176.2,161.4 177.0,161.4 177.0,161.3 177.8,161.3 177.8,161.3 178.6,161.3 178.6,161.7 179.4,161.7 179.4,161.2 180.2,161.2 180.2,160.1 181.0,160.1 181.0,160.9 181.8,160.9 181.8,161.5 182.6,161.5 182.6,160.6 183.4,160.6 183.4,161.9 184.2,161.9 184.2,161.4 185.0,161.4 185.0,160.1 185.8,160.1 185.8,160.6 186.6,160.6 186.6,162.0 187.4,162.0 187.4,161.5 188.2,161.5 188.2,162.0 189.0,162.0 189.0,161.3 189.8,161.3 189.8,162.3 190.6,162.3 190.6,162.1 191.4,162.1 191.4,160.8 192.2,160.8 192.2,161.5 193.0,161.5 193.0,161.4 193.8,161.4 193.8,162.2 194.6,162.2 194.6,161.4 195.4,161.4 195.4,161.4 196.2,161.4 196.2,161.8 197.0,161.8 197.0,160.7 197.8,160.7 197.8,160.5 198.6,160.5 198.6,160.5 199.3,160.5 199.3,159.3 200.1,159.3 200.1,159.4 200.9,159.4 200.9,160.4 201.7,160.4 201.7,160.1 202.5,160.1 202.5,160.4 203.3,160.4 203.3,160.4 204.1,160.4 204.1,160.8 204.9,160.8 204.9,159.8 205.7,159.8 205.7,159.4 206.5,159.4 206.5,160.5 207.3,160.5 207.3,160.1 208.1,160.1 208.1,160.7 208.9,160.7 208.9,160.6 209.7,160.6 209.7,159.5 210.5,159.5 210.5,161.1 211.3,161.1 211.3,161.3 212.1,161.3 212.1,161.0 212.9,161.0 212.9,160.8Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="87.8" cy="178.2" r="3.5"><title>#5234: 1.55×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="87.8" y1="54.0" x2="87.8" y2="173.2"/>
|
||||
<circle class="nj-theme-dot" cx="87.8" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="87.8" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="128.4" cy="162.5" r="3.5"><title>#5283: 1.95×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="128.4" y1="54.0" x2="128.4" y2="157.5"/>
|
||||
<circle class="nj-theme-dot" cx="128.4" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="128.4" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="219.3" cy="155.4" r="3.5"><title>#5592: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="219.3" y1="54.0" x2="219.3" y2="150.4"/>
|
||||
<circle class="nj-theme-dot" cx="219.3" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="219.3" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="239.2" cy="147.1" r="3.5"><title>#5809: 2.4×</title></circle>
|
||||
<circle class="nj-charts-json-dot" cx="240.0" cy="138.2" r="3.5"><title>#5810: 2.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="240.0" y1="36.0" x2="240.0" y2="133.2"/>
|
||||
<circle class="nj-theme-dot" cx="231.0" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="231.0" y="32.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-theme-dot" cx="249.0" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="249.0" y="32.0" text-anchor="middle">2</text>
|
||||
<circle class="nj-charts-json-dot" cx="280.6" cy="125.7" r="3.5"><title>#5882: 3.3×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="280.6" y1="54.0" x2="280.6" y2="120.7"/>
|
||||
<circle class="nj-theme-dot" cx="280.6" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="280.6" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="330.0" cy="116.6" r="3.5"><title>#6031: 3.8×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="330.0" y1="54.0" x2="330.0" y2="111.6"/>
|
||||
<circle class="nj-theme-dot" cx="322.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="322.5" y="50.0" text-anchor="middle">1</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-note" x="8" y="262">speedup over 3.12.0 (log scale), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--timeline" viewBox="0 0 340 270" role="img" aria-labelledby="nj-blog-tl-parse_twitter_ifstream nj-blog-tl-parse_twitter_ifstream-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-tl-parse_twitter_ifstream">parse() twitter.json, std::ifstream: speedup over 3.12.0 by commit</title>
|
||||
<desc id="nj-blog-tl-parse_twitter_ifstream-d">parse() twitter.json, std::ifstream: speedup over 3.12.0 at each of 353 commits, ending at 2.2x. Labeled steps, by theme: 1, 1.</desc>
|
||||
<desc id="nj-blog-tl-parse_twitter_ifstream-d">parse() twitter.json, std::ifstream: speedup over 3.12.0 at each of 360 commits, ending at 2.2x. Labeled steps, by theme: 1, 1.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="18">parse() twitter.json, std::ifstream</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="212">1×</text>
|
||||
@@ -10,19 +10,21 @@
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">4×</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="44" y2="212"/>
|
||||
<text class="nj-charts-tick" x="44" y="225">3.12.0</text>
|
||||
<line class="nj-charts-axis" x1="117.938" y1="208" x2="117.938" y2="212"/>
|
||||
<text class="nj-charts-tick" x="117.938" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="198.375" y1="208" x2="198.375" y2="212"/>
|
||||
<text class="nj-charts-tick" x="198.375" y="225">Oct</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,209.3 45.6,209.3 45.6,206.6 46.4,206.6 46.4,208.3 47.2,208.3 47.2,205.9 48.1,205.9 48.1,209.3 48.9,209.3 48.9,208.3 49.7,208.3 49.7,207.9 50.5,207.9 50.5,209.4 51.3,209.4 51.3,205.8 52.1,205.8 52.1,206.7 52.9,206.7 52.9,209.2 53.8,209.2 53.8,208.1 54.6,208.1 54.6,206.9 55.4,206.9 55.4,207.5 56.2,207.5 56.2,207.5 57.0,207.5 57.0,207.6 57.8,207.6 57.8,206.9 58.6,206.9 58.6,206.9 59.4,206.9 59.4,208.4 60.2,208.4 60.2,208.6 61.1,208.6 61.1,209.1 61.9,209.1 61.9,207.7 62.7,207.7 62.7,207.0 63.5,207.0 63.5,206.7 64.3,206.7 64.3,206.1 65.1,206.1 65.1,207.5 65.9,207.5 65.9,206.4 66.8,206.4 66.8,206.7 67.6,206.7 67.6,206.8 68.4,206.8 68.4,209.3 69.2,209.3 69.2,206.7 70.0,206.7 70.0,206.8 70.8,206.8 70.8,206.6 71.6,206.6 71.6,206.8 72.4,206.8 72.4,209.2 73.2,209.2 73.2,207.6 74.1,207.6 74.1,205.9 74.9,205.9 74.9,209.1 75.7,209.1 75.7,206.6 76.5,206.6 76.5,207.4 77.3,207.4 77.3,207.0 78.1,207.0 78.1,209.1 78.9,209.1 78.9,205.8 79.8,205.8 79.8,206.9 80.6,206.9 80.6,208.0 81.4,208.0 81.4,208.5 82.2,208.5 82.2,206.6 83.0,206.6 83.0,206.0 83.8,206.0 83.8,207.9 84.6,207.9 84.6,206.6 85.4,206.6 85.4,206.5 86.2,206.5 86.2,206.6 87.1,206.6 87.1,207.2 87.9,207.2 87.9,208.0 88.7,208.0 88.7,208.1 89.5,208.1 89.5,206.7 90.3,206.7 90.3,207.8 91.1,207.8 91.1,206.7 91.9,206.7 91.9,208.1 92.8,208.1 92.8,205.9 93.6,205.9 93.6,206.8 94.4,206.8 94.4,208.0 95.2,208.0 95.2,207.3 96.0,207.3 96.0,206.7 96.8,206.7 96.8,209.3 97.6,209.3 97.6,206.5 98.4,206.5 98.4,207.2 99.2,207.2 99.2,208.2 100.1,208.2 100.1,209.3 100.9,209.3 100.9,207.8 101.7,207.8 101.7,206.9 102.5,206.9 102.5,206.7 103.3,206.7 103.3,209.0 104.1,209.0 104.1,208.0 104.9,208.0 104.9,208.1 105.8,208.1 105.8,209.1 106.6,209.1 106.6,208.1 107.4,208.1 107.4,205.6 108.2,205.6 108.2,207.0 109.0,207.0 109.0,206.7 109.8,206.7 109.8,207.9 110.6,207.9 110.6,206.7 111.4,206.7 111.4,206.9 112.2,206.9 112.2,206.8 113.1,206.8 113.1,206.4 113.9,206.4 113.9,207.1 114.7,207.1 114.7,208.6 115.5,208.6 115.5,208.7 116.3,208.7 116.3,206.6 117.1,206.6 117.1,209.3 117.9,209.3 117.9,208.0 118.8,208.0 118.8,206.7 119.6,206.7 119.6,207.7 120.4,207.7 120.4,206.9 121.2,206.9 121.2,208.8 122.0,208.8 122.0,208.7 122.8,208.7 122.8,207.7 123.6,207.7 123.6,208.8 124.4,208.8 124.4,207.8 125.3,207.8 125.3,210.3 126.1,210.3 126.1,208.9 126.9,208.9 126.9,208.9 127.7,208.9 127.7,209.0 128.5,209.0 128.5,208.0 129.3,208.0 129.3,207.7 130.1,207.7 130.1,208.3 130.9,208.3 130.9,207.0 131.8,207.0 131.8,207.2 132.6,207.2 132.6,207.5 133.4,207.5 133.4,208.0 134.2,208.0 134.2,207.6 135.0,207.6 135.0,207.9 135.8,207.9 135.8,207.6 136.6,207.6 136.6,208.5 137.4,208.5 137.4,209.2 138.2,209.2 138.2,206.3 139.1,206.3 139.1,208.7 139.9,208.7 139.9,207.6 140.7,207.6 140.7,207.4 141.5,207.4 141.5,207.5 142.3,207.5 142.3,209.0 143.1,209.0 143.1,206.9 143.9,206.9 143.9,209.3 144.8,209.3 144.8,209.9 145.6,209.9 145.6,207.0 146.4,207.0 146.4,207.3 147.2,207.3 147.2,208.1 148.0,208.1 148.0,209.8 148.8,209.8 148.8,208.1 149.6,208.1 149.6,208.1 150.4,208.1 150.4,208.5 151.2,208.5 151.2,208.2 152.1,208.2 152.1,210.4 152.9,210.4 152.9,207.7 153.7,207.7 153.7,207.2 154.5,207.2 154.5,206.7 155.3,206.7 155.3,209.9 156.1,209.9 156.1,206.6 156.9,206.6 156.9,209.9 157.8,209.9 157.8,208.8 158.6,208.8 158.6,208.8 159.4,208.8 159.4,209.5 160.2,209.5 160.2,208.9 161.0,208.9 161.0,206.4 161.8,206.4 161.8,207.2 162.6,207.2 162.6,207.0 163.4,207.0 163.4,207.2 164.2,207.2 164.2,206.6 165.1,206.6 165.1,207.2 165.9,207.2 165.9,208.0 166.7,208.0 166.7,207.6 167.5,207.6 167.5,207.9 168.3,207.9 168.3,207.5 169.1,207.5 169.1,205.6 169.9,205.6 169.9,208.0 170.8,208.0 170.8,209.7 171.6,209.7 171.6,207.9 172.4,207.9 172.4,207.6 173.2,207.6 173.2,208.5 174.0,208.5 174.0,207.9 174.8,207.9 174.8,210.4 175.6,210.4 175.6,206.7 176.4,206.7 176.4,207.7 177.2,207.7 177.2,209.2 178.1,209.2 178.1,206.8 178.9,206.8 178.9,209.3 179.7,209.3 179.7,208.0 180.5,208.0 180.5,208.0 181.3,208.0 181.3,207.9 182.1,207.9 182.1,208.2 182.9,208.2 182.9,207.9 183.8,207.9 183.8,207.0 184.6,207.0 184.6,208.8 185.4,208.8 185.4,208.0 186.2,208.0 186.2,208.0 187.0,208.0 187.0,209.2 187.8,209.2 187.8,206.7 188.6,206.7 188.6,206.7 189.4,206.7 189.4,208.5 190.2,208.5 190.2,208.9 191.1,208.9 191.1,210.1 191.9,210.1 191.9,206.4 192.7,206.4 192.7,209.4 193.5,209.4 193.5,210.1 194.3,210.1 194.3,207.6 195.1,207.6 195.1,209.5 195.9,209.5 195.9,208.7 196.8,208.7 196.8,211.1 197.6,211.1 197.6,210.1 198.4,210.1 198.4,211.7 199.2,211.7 199.2,208.8 200.0,208.8 200.0,209.2 200.8,209.2 200.8,207.7 201.6,207.7 201.6,208.1 202.4,208.1 202.4,206.4 203.2,206.4 203.2,206.7 204.1,206.7 204.1,207.3 204.9,207.3 204.9,207.8 205.7,207.8 205.7,208.7 206.5,208.7 206.5,210.1 207.3,210.1 207.3,210.0 208.1,210.0 208.1,206.9 208.9,206.9 208.9,209.0 209.8,209.0 209.8,208.7 210.6,208.7 210.6,209.1 211.4,209.1 211.4,208.6 212.2,208.6 212.2,208.9 213.0,208.9 213.0,207.3 213.8,207.3 213.8,208.9 214.6,208.9 214.6,209.2 215.4,209.2 215.4,207.3 216.2,207.3 216.2,2Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="262.6" cy="138.8" r="3.5"><title>#5828: 1.97×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="262.6" y1="54.0" x2="262.6" y2="133.8"/>
|
||||
<circle class="nj-theme-dot" cx="262.6" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="262.6" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="279.6" cy="127.0" r="3.5"><title>#5884: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="279.6" y1="36.0" x2="279.6" y2="122.0"/>
|
||||
<circle class="nj-theme-dot" cx="279.6" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="279.6" y="32.0" text-anchor="middle">1</text>
|
||||
<line class="nj-charts-axis" x1="116.496" y1="208" x2="116.496" y2="212"/>
|
||||
<text class="nj-charts-tick" x="116.496" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="195.365" y1="208" x2="195.365" y2="212"/>
|
||||
<text class="nj-charts-tick" x="195.365" y="225">Oct</text>
|
||||
<line class="nj-charts-axis" x1="302.117" y1="208" x2="302.117" y2="212"/>
|
||||
<text class="nj-charts-tick" x="302.117" y="225">Nov</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,209.3 45.6,209.3 45.6,206.6 46.4,206.6 46.4,208.3 47.2,208.3 47.2,205.9 48.0,205.9 48.0,209.3 48.8,209.3 48.8,208.3 49.6,208.3 49.6,207.9 50.4,207.9 50.4,209.4 51.2,209.4 51.2,205.8 52.0,205.8 52.0,206.7 52.8,206.7 52.8,209.2 53.6,209.2 53.6,208.1 54.4,208.1 54.4,206.9 55.2,206.9 55.2,207.5 55.9,207.5 55.9,207.5 56.7,207.5 56.7,207.6 57.5,207.6 57.5,206.9 58.3,206.9 58.3,206.9 59.1,206.9 59.1,208.4 59.9,208.4 59.9,208.6 60.7,208.6 60.7,209.1 61.5,209.1 61.5,207.7 62.3,207.7 62.3,207.0 63.1,207.0 63.1,206.7 63.9,206.7 63.9,206.1 64.7,206.1 64.7,207.5 65.5,207.5 65.5,206.4 66.3,206.4 66.3,206.7 67.1,206.7 67.1,206.8 67.9,206.8 67.9,209.3 68.7,209.3 68.7,206.7 69.5,206.7 69.5,206.8 70.3,206.8 70.3,206.6 71.1,206.6 71.1,206.8 71.9,206.8 71.9,209.2 72.7,209.2 72.7,207.6 73.5,207.6 73.5,205.9 74.3,205.9 74.3,209.1 75.1,209.1 75.1,206.6 75.9,206.6 75.9,207.4 76.7,207.4 76.7,207.0 77.5,207.0 77.5,209.1 78.3,209.1 78.3,205.8 79.1,205.8 79.1,206.9 79.8,206.9 79.8,208.0 80.6,208.0 80.6,208.5 81.4,208.5 81.4,206.6 82.2,206.6 82.2,206.0 83.0,206.0 83.0,207.9 83.8,207.9 83.8,206.6 84.6,206.6 84.6,206.5 85.4,206.5 85.4,206.6 86.2,206.6 86.2,207.2 87.0,207.2 87.0,208.0 87.8,208.0 87.8,208.1 88.6,208.1 88.6,206.7 89.4,206.7 89.4,207.8 90.2,207.8 90.2,206.7 91.0,206.7 91.0,208.1 91.8,208.1 91.8,205.9 92.6,205.9 92.6,206.8 93.4,206.8 93.4,208.0 94.2,208.0 94.2,207.3 95.0,207.3 95.0,206.7 95.8,206.7 95.8,209.3 96.6,209.3 96.6,206.5 97.4,206.5 97.4,207.2 98.2,207.2 98.2,208.2 99.0,208.2 99.0,209.3 99.8,209.3 99.8,207.8 100.6,207.8 100.6,206.9 101.4,206.9 101.4,206.7 102.2,206.7 102.2,209.0 103.0,209.0 103.0,208.0 103.7,208.0 103.7,208.1 104.5,208.1 104.5,209.1 105.3,209.1 105.3,208.1 106.1,208.1 106.1,205.6 106.9,205.6 106.9,207.0 107.7,207.0 107.7,206.7 108.5,206.7 108.5,207.9 109.3,207.9 109.3,206.7 110.1,206.7 110.1,206.9 110.9,206.9 110.9,206.8 111.7,206.8 111.7,206.4 112.5,206.4 112.5,207.1 113.3,207.1 113.3,208.6 114.1,208.6 114.1,208.7 114.9,208.7 114.9,206.6 115.7,206.6 115.7,209.3 116.5,209.3 116.5,208.0 117.3,208.0 117.3,206.7 118.1,206.7 118.1,207.7 118.9,207.7 118.9,206.9 119.7,206.9 119.7,208.8 120.5,208.8 120.5,208.7 121.3,208.7 121.3,207.7 122.1,207.7 122.1,208.8 122.9,208.8 122.9,207.8 123.7,207.8 123.7,210.3 124.5,210.3 124.5,208.9 125.3,208.9 125.3,208.9 126.1,208.9 126.1,209.0 126.9,209.0 126.9,208.0 127.6,208.0 127.6,207.7 128.4,207.7 128.4,208.3 129.2,208.3 129.2,207.0 130.0,207.0 130.0,207.2 130.8,207.2 130.8,207.5 131.6,207.5 131.6,208.0 132.4,208.0 132.4,207.6 133.2,207.6 133.2,207.9 134.0,207.9 134.0,207.6 134.8,207.6 134.8,208.5 135.6,208.5 135.6,209.2 136.4,209.2 136.4,206.3 137.2,206.3 137.2,208.7 138.0,208.7 138.0,207.6 138.8,207.6 138.8,207.4 139.6,207.4 139.6,207.5 140.4,207.5 140.4,209.0 141.2,209.0 141.2,206.9 142.0,206.9 142.0,209.3 142.8,209.3 142.8,209.9 143.6,209.9 143.6,207.0 144.4,207.0 144.4,207.3 145.2,207.3 145.2,208.1 146.0,208.1 146.0,209.8 146.8,209.8 146.8,208.1 147.6,208.1 147.6,208.1 148.4,208.1 148.4,208.5 149.2,208.5 149.2,208.2 150.0,208.2 150.0,210.4 150.8,210.4 150.8,207.7 151.5,207.7 151.5,207.2 152.3,207.2 152.3,206.7 153.1,206.7 153.1,209.9 153.9,209.9 153.9,206.6 154.7,206.6 154.7,209.9 155.5,209.9 155.5,208.8 156.3,208.8 156.3,208.8 157.1,208.8 157.1,209.5 157.9,209.5 157.9,208.9 158.7,208.9 158.7,206.4 159.5,206.4 159.5,207.2 160.3,207.2 160.3,207.0 161.1,207.0 161.1,207.2 161.9,207.2 161.9,206.6 162.7,206.6 162.7,207.2 163.5,207.2 163.5,208.0 164.3,208.0 164.3,207.6 165.1,207.6 165.1,207.9 165.9,207.9 165.9,207.5 166.7,207.5 166.7,205.6 167.5,205.6 167.5,208.0 168.3,208.0 168.3,209.7 169.1,209.7 169.1,207.9 169.9,207.9 169.9,207.6 170.7,207.6 170.7,208.5 171.5,208.5 171.5,207.9 172.3,207.9 172.3,210.4 173.1,210.4 173.1,206.7 173.9,206.7 173.9,207.7 174.7,207.7 174.7,209.2 175.4,209.2 175.4,206.8 176.2,206.8 176.2,209.3 177.0,209.3 177.0,208.0 177.8,208.0 177.8,208.0 178.6,208.0 178.6,207.9 179.4,207.9 179.4,208.2 180.2,208.2 180.2,207.9 181.0,207.9 181.0,207.0 181.8,207.0 181.8,208.8 182.6,208.8 182.6,208.0 183.4,208.0 183.4,208.0 184.2,208.0 184.2,209.2 185.0,209.2 185.0,206.7 185.8,206.7 185.8,206.7 186.6,206.7 186.6,208.5 187.4,208.5 187.4,208.9 188.2,208.9 188.2,210.1 189.0,210.1 189.0,206.4 189.8,206.4 189.8,209.4 190.6,209.4 190.6,210.1 191.4,210.1 191.4,207.6 192.2,207.6 192.2,209.5 193.0,209.5 193.0,208.7 193.8,208.7 193.8,211.1 194.6,211.1 194.6,210.1 195.4,210.1 195.4,211.7 196.2,211.7 196.2,208.8 197.0,208.8 197.0,209.2 197.8,209.2 197.8,207.7 198.6,207.7 198.6,208.1 199.3,208.1 199.3,206.4 200.1,206.4 200.1,206.7 200.9,206.7 200.9,207.3 201.7,207.3 201.7,207.8 202.5,207.8 202.5,208.7 203.3,208.7 203.3,210.1 204.1,210.1 204.1,210.0 204.9,210.0 204.9,206.9 205.7,206.9 205.7,209.0 206.5,209.0 206.5,208.7 207.3,208.7 207.3,209.1 208.1,209.1 208.1,208.6 208.9,208.6 208.9,208.9 209.7,208.9 209.7,207.3 210.5,207.3 210.5,208.9 211.3,208.9 211.3,209.2 212.1,209.2 212.1,207.3 212.9,207.3 212.9,210.5Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="258.3" cy="138.8" r="3.5"><title>#5828: 1.97×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="258.3" y1="54.0" x2="258.3" y2="133.8"/>
|
||||
<circle class="nj-theme-dot" cx="258.3" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="258.3" y="50.0" text-anchor="middle">1</text>
|
||||
<circle class="nj-charts-json-dot" cx="275.0" cy="127.0" r="3.5"><title>#5884: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="275.0" y1="36.0" x2="275.0" y2="122.0"/>
|
||||
<circle class="nj-theme-dot" cx="275.0" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="275.0" y="32.0" text-anchor="middle">1</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-note" x="8" y="262">speedup over 3.12.0 (log scale), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 11 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--timeline" viewBox="0 0 340 270" role="img" aria-labelledby="nj-blog-tl-to_cbor_twitter nj-blog-tl-to_cbor_twitter-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-tl-to_cbor_twitter">to_cbor() twitter: speedup over 3.12.0 by commit</title>
|
||||
<desc id="nj-blog-tl-to_cbor_twitter-d">to_cbor() twitter: speedup over 3.12.0 at each of 353 commits, ending at 5.0x. Labeled steps, by theme: 4, 6, 6.</desc>
|
||||
<desc id="nj-blog-tl-to_cbor_twitter-d">to_cbor() twitter: speedup over 3.12.0 at each of 360 commits, ending at 5.1x. Labeled steps, by theme: 4, 6, 6.</desc>
|
||||
<text class="nj-charts-panel" x="8" y="18">to_cbor() twitter</text>
|
||||
<line class="nj-charts-grid" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="212">1×</text>
|
||||
@@ -12,23 +12,25 @@
|
||||
<text class="nj-charts-tick nj-charts-tick--r" x="38" y="70">8×</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="44" y2="212"/>
|
||||
<text class="nj-charts-tick" x="44" y="225">3.12.0</text>
|
||||
<line class="nj-charts-axis" x1="117.938" y1="208" x2="117.938" y2="212"/>
|
||||
<text class="nj-charts-tick" x="117.938" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="198.375" y1="208" x2="198.375" y2="212"/>
|
||||
<text class="nj-charts-tick" x="198.375" y="225">Oct</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.0 45.6,208.0 45.6,204.9 46.4,204.9 46.4,205.2 47.2,205.2 47.2,204.7 48.1,204.7 48.1,205.2 48.9,205.2 48.9,205.0 49.7,205.0 49.7,204.9 50.5,204.9 50.5,205.0 51.3,205.0 51.3,205.0 52.1,205.0 52.1,205.1 52.9,205.1 52.9,205.4 53.8,205.4 53.8,205.0 54.6,205.0 54.6,205.2 55.4,205.2 55.4,211.6 56.2,211.6 56.2,206.8 57.0,206.8 57.0,204.2 57.8,204.2 57.8,207.6 58.6,207.6 58.6,204.1 59.4,204.1 59.4,203.8 60.2,203.8 60.2,204.2 61.1,204.2 61.1,205.1 61.9,205.1 61.9,204.4 62.7,204.4 62.7,204.3 63.5,204.3 63.5,204.0 64.3,204.0 64.3,202.7 65.1,202.7 65.1,204.2 65.9,204.2 65.9,204.2 66.8,204.2 66.8,204.2 67.6,204.2 67.6,204.4 68.4,204.4 68.4,206.2 69.2,206.2 69.2,204.3 70.0,204.3 70.0,204.1 70.8,204.1 70.8,204.3 71.6,204.3 71.6,204.3 72.4,204.3 72.4,204.3 73.2,204.3 73.2,204.3 74.1,204.3 74.1,204.4 74.9,204.4 74.9,204.8 75.7,204.8 75.7,208.4 76.5,208.4 76.5,203.5 77.3,203.5 77.3,206.2 78.1,206.2 78.1,204.4 78.9,204.4 78.9,203.2 79.8,203.2 79.8,204.1 80.6,204.1 80.6,204.2 81.4,204.2 81.4,203.7 82.2,203.7 82.2,204.2 83.0,204.2 83.0,203.2 83.8,203.2 83.8,204.2 84.6,204.2 84.6,204.4 85.4,204.4 85.4,203.8 86.2,203.8 86.2,204.4 87.1,204.4 87.1,204.7 87.9,204.7 87.9,204.6 88.7,204.6 88.7,208.7 89.5,208.7 89.5,205.2 90.3,205.2 90.3,205.5 91.1,205.5 91.1,205.2 91.9,205.2 91.9,205.3 92.8,205.3 92.8,206.8 93.6,206.8 93.6,204.6 94.4,204.6 94.4,205.5 95.2,205.5 95.2,205.1 96.0,205.1 96.0,204.7 96.8,204.7 96.8,205.7 97.6,205.7 97.6,205.0 98.4,205.0 98.4,204.9 99.2,204.9 99.2,206.5 100.1,206.5 100.1,205.6 100.9,205.6 100.9,205.0 101.7,205.0 101.7,209.2 102.5,209.2 102.5,205.9 103.3,205.9 103.3,206.5 104.1,206.5 104.1,205.5 104.9,205.5 104.9,205.3 105.8,205.3 105.8,205.3 106.6,205.3 106.6,205.1 107.4,205.1 107.4,204.4 108.2,204.4 108.2,204.6 109.0,204.6 109.0,204.8 109.8,204.8 109.8,204.2 110.6,204.2 110.6,203.8 111.4,203.8 111.4,204.4 112.2,204.4 112.2,202.8 113.1,202.8 113.1,203.5 113.9,203.5 113.9,204.0 114.7,204.0 114.7,204.3 115.5,204.3 115.5,202.9 116.3,202.9 116.3,203.3 117.1,203.3 117.1,204.4 117.9,204.4 117.9,204.5 118.8,204.5 118.8,204.1 119.6,204.1 119.6,208.3 120.4,208.3 120.4,203.8 121.2,203.8 121.2,207.0 122.0,207.0 122.0,205.9 122.8,205.9 122.8,205.4 123.6,205.4 123.6,205.3 124.4,205.3 124.4,205.8 125.3,205.8 125.3,205.4 126.1,205.4 126.1,205.6 126.9,205.6 126.9,206.3 127.7,206.3 127.7,205.5 128.5,205.5 128.5,204.8 129.3,204.8 129.3,204.6 130.1,204.6 130.1,206.1 130.9,206.1 130.9,204.6 131.8,204.6 131.8,204.1 132.6,204.1 132.6,204.3 133.4,204.3 133.4,205.6 134.2,205.6 134.2,203.9 135.0,203.9 135.0,204.0 135.8,204.0 135.8,203.9 136.6,203.9 136.6,204.6 137.4,204.6 137.4,204.1 138.2,204.1 138.2,203.9 139.1,203.9 139.1,204.8 139.9,204.8 139.9,203.2 140.7,203.2 140.7,203.3 141.5,203.3 141.5,204.7 142.3,204.7 142.3,208.3 143.1,208.3 143.1,204.3 143.9,204.3 143.9,207.4 144.8,207.4 144.8,204.4 145.6,204.4 145.6,208.2 146.4,208.2 146.4,205.0 147.2,205.0 147.2,204.9 148.0,204.9 148.0,208.8 148.8,208.8 148.8,207.9 149.6,207.9 149.6,206.2 150.4,206.2 150.4,204.2 151.2,204.2 151.2,204.1 152.1,204.1 152.1,204.2 152.9,204.2 152.9,202.2 153.7,202.2 153.7,205.6 154.5,205.6 154.5,203.0 155.3,203.0 155.3,203.4 156.1,203.4 156.1,202.7 156.9,202.7 156.9,203.6 157.8,203.6 157.8,203.3 158.6,203.3 158.6,203.2 159.4,203.2 159.4,204.9 160.2,204.9 160.2,202.9 161.0,202.9 161.0,202.2 161.8,202.2 161.8,202.5 162.6,202.5 162.6,202.9 163.4,202.9 163.4,202.9 164.2,202.9 164.2,202.3 165.1,202.3 165.1,202.9 165.9,202.9 165.9,203.7 166.7,203.7 166.7,204.1 167.5,204.1 167.5,203.9 168.3,203.9 168.3,203.7 169.1,203.7 169.1,203.3 169.9,203.3 169.9,203.8 170.8,203.8 170.8,205.0 171.6,205.0 171.6,208.0 172.4,208.0 172.4,205.1 173.2,205.1 173.2,206.5 174.0,206.5 174.0,205.4 174.8,205.4 174.8,205.4 175.6,205.4 175.6,207.0 176.4,207.0 176.4,204.9 177.2,204.9 177.2,205.4 178.1,205.4 178.1,203.6 178.9,203.6 178.9,205.7 179.7,205.7 179.7,204.5 180.5,204.5 180.5,205.0 181.3,205.0 181.3,205.2 182.1,205.2 182.1,204.9 182.9,204.9 182.9,204.5 183.8,204.5 183.8,204.9 184.6,204.9 184.6,205.3 185.4,205.3 185.4,203.9 186.2,203.9 186.2,204.8 187.0,204.8 187.0,204.8 187.8,204.8 187.8,203.6 188.6,203.6 188.6,203.4 189.4,203.4 189.4,203.8 190.2,203.8 190.2,205.1 191.1,205.1 191.1,205.5 191.9,205.5 191.9,204.0 192.7,204.0 192.7,204.9 193.5,204.9 193.5,205.0 194.3,205.0 194.3,206.4 195.1,206.4 195.1,205.1 195.9,205.1 195.9,204.5 196.8,204.5 196.8,204.8 197.6,204.8 197.6,205.2 198.4,205.2 198.4,205.0 199.2,205.0 199.2,204.6 200.0,204.6 200.0,203.9 200.8,203.9 200.8,203.5 201.6,203.5 201.6,203.6 202.4,203.6 202.4,204.2 203.2,204.2 203.2,205.9 204.1,205.9 204.1,205.2 204.9,205.2 204.9,204.8 205.7,204.8 205.7,207.3 206.5,207.3 206.5,205.2 207.3,205.2 207.3,208.6 208.1,208.6 208.1,204.3 208.9,204.3 208.9,203.9 209.8,203.9 209.8,203.2 210.6,203.2 210.6,203.9 211.4,203.9 211.4,205.9 212.2,205.9 212.2,204.8 213.0,204.8 213.0,204.7 213.8,204.7 213.8,203.6 214.6,203.6 214.6,203.7 215.4,203.7 215.4,208.2 216.2,208.2 216.2,2Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="234.9" cy="153.7" r="3.5"><title>#5328: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="234.9" y1="54.0" x2="234.9" y2="148.7"/>
|
||||
<circle class="nj-theme-dot" cx="234.9" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="234.9" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="269.9" cy="123.4" r="3.5"><title>#5824: 3.5×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="269.9" y1="54.0" x2="269.9" y2="118.4"/>
|
||||
<circle class="nj-theme-dot" cx="269.9" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="269.9" y="50.0" text-anchor="middle">6</text>
|
||||
<circle class="nj-charts-json-dot" cx="282.1" cy="96.9" r="3.5"><title>#5885: 5.1×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="282.1" y1="36.0" x2="282.1" y2="91.9"/>
|
||||
<circle class="nj-theme-dot" cx="282.1" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="282.1" y="32.0" text-anchor="middle">6</text>
|
||||
<line class="nj-charts-axis" x1="116.496" y1="208" x2="116.496" y2="212"/>
|
||||
<text class="nj-charts-tick" x="116.496" y="225">Sep 2026</text>
|
||||
<line class="nj-charts-axis" x1="195.365" y1="208" x2="195.365" y2="212"/>
|
||||
<text class="nj-charts-tick" x="195.365" y="225">Oct</text>
|
||||
<line class="nj-charts-axis" x1="302.117" y1="208" x2="302.117" y2="212"/>
|
||||
<text class="nj-charts-tick" x="302.117" y="225">Nov</text>
|
||||
<polyline class="nj-charts-json" points="44.0,208.0 44.8,208.0 44.8,208.0 45.6,208.0 45.6,204.9 46.4,204.9 46.4,205.2 47.2,205.2 47.2,204.7 48.0,204.7 48.0,205.2 48.8,205.2 48.8,205.0 49.6,205.0 49.6,204.9 50.4,204.9 50.4,205.0 51.2,205.0 51.2,205.0 52.0,205.0 52.0,205.1 52.8,205.1 52.8,205.4 53.6,205.4 53.6,205.0 54.4,205.0 54.4,205.2 55.2,205.2 55.2,211.6 55.9,211.6 55.9,206.8 56.7,206.8 56.7,204.2 57.5,204.2 57.5,207.6 58.3,207.6 58.3,204.1 59.1,204.1 59.1,203.8 59.9,203.8 59.9,204.2 60.7,204.2 60.7,205.1 61.5,205.1 61.5,204.4 62.3,204.4 62.3,204.3 63.1,204.3 63.1,204.0 63.9,204.0 63.9,202.7 64.7,202.7 64.7,204.2 65.5,204.2 65.5,204.2 66.3,204.2 66.3,204.2 67.1,204.2 67.1,204.4 67.9,204.4 67.9,206.2 68.7,206.2 68.7,204.3 69.5,204.3 69.5,204.1 70.3,204.1 70.3,204.3 71.1,204.3 71.1,204.3 71.9,204.3 71.9,204.3 72.7,204.3 72.7,204.3 73.5,204.3 73.5,204.4 74.3,204.4 74.3,204.8 75.1,204.8 75.1,208.4 75.9,208.4 75.9,203.5 76.7,203.5 76.7,206.2 77.5,206.2 77.5,204.4 78.3,204.4 78.3,203.2 79.1,203.2 79.1,204.1 79.8,204.1 79.8,204.2 80.6,204.2 80.6,203.7 81.4,203.7 81.4,204.2 82.2,204.2 82.2,203.2 83.0,203.2 83.0,204.2 83.8,204.2 83.8,204.4 84.6,204.4 84.6,203.8 85.4,203.8 85.4,204.4 86.2,204.4 86.2,204.7 87.0,204.7 87.0,204.6 87.8,204.6 87.8,208.7 88.6,208.7 88.6,205.2 89.4,205.2 89.4,205.5 90.2,205.5 90.2,205.2 91.0,205.2 91.0,205.3 91.8,205.3 91.8,206.8 92.6,206.8 92.6,204.6 93.4,204.6 93.4,205.5 94.2,205.5 94.2,205.1 95.0,205.1 95.0,204.7 95.8,204.7 95.8,205.7 96.6,205.7 96.6,205.0 97.4,205.0 97.4,204.9 98.2,204.9 98.2,206.5 99.0,206.5 99.0,205.6 99.8,205.6 99.8,205.0 100.6,205.0 100.6,209.2 101.4,209.2 101.4,205.9 102.2,205.9 102.2,206.5 103.0,206.5 103.0,205.5 103.7,205.5 103.7,205.3 104.5,205.3 104.5,205.3 105.3,205.3 105.3,205.1 106.1,205.1 106.1,204.4 106.9,204.4 106.9,204.6 107.7,204.6 107.7,204.8 108.5,204.8 108.5,204.2 109.3,204.2 109.3,203.8 110.1,203.8 110.1,204.4 110.9,204.4 110.9,202.8 111.7,202.8 111.7,203.5 112.5,203.5 112.5,204.0 113.3,204.0 113.3,204.3 114.1,204.3 114.1,202.9 114.9,202.9 114.9,203.3 115.7,203.3 115.7,204.4 116.5,204.4 116.5,204.5 117.3,204.5 117.3,204.1 118.1,204.1 118.1,208.3 118.9,208.3 118.9,203.8 119.7,203.8 119.7,207.0 120.5,207.0 120.5,205.9 121.3,205.9 121.3,205.4 122.1,205.4 122.1,205.3 122.9,205.3 122.9,205.8 123.7,205.8 123.7,205.4 124.5,205.4 124.5,205.6 125.3,205.6 125.3,206.3 126.1,206.3 126.1,205.5 126.9,205.5 126.9,204.8 127.6,204.8 127.6,204.6 128.4,204.6 128.4,206.1 129.2,206.1 129.2,204.6 130.0,204.6 130.0,204.1 130.8,204.1 130.8,204.3 131.6,204.3 131.6,205.6 132.4,205.6 132.4,203.9 133.2,203.9 133.2,204.0 134.0,204.0 134.0,203.9 134.8,203.9 134.8,204.6 135.6,204.6 135.6,204.1 136.4,204.1 136.4,203.9 137.2,203.9 137.2,204.8 138.0,204.8 138.0,203.2 138.8,203.2 138.8,203.3 139.6,203.3 139.6,204.7 140.4,204.7 140.4,208.3 141.2,208.3 141.2,204.3 142.0,204.3 142.0,207.4 142.8,207.4 142.8,204.4 143.6,204.4 143.6,208.2 144.4,208.2 144.4,205.0 145.2,205.0 145.2,204.9 146.0,204.9 146.0,208.8 146.8,208.8 146.8,207.9 147.6,207.9 147.6,206.2 148.4,206.2 148.4,204.2 149.2,204.2 149.2,204.1 150.0,204.1 150.0,204.2 150.8,204.2 150.8,202.2 151.5,202.2 151.5,205.6 152.3,205.6 152.3,203.0 153.1,203.0 153.1,203.4 153.9,203.4 153.9,202.7 154.7,202.7 154.7,203.6 155.5,203.6 155.5,203.3 156.3,203.3 156.3,203.2 157.1,203.2 157.1,204.9 157.9,204.9 157.9,202.9 158.7,202.9 158.7,202.2 159.5,202.2 159.5,202.5 160.3,202.5 160.3,202.9 161.1,202.9 161.1,202.9 161.9,202.9 161.9,202.3 162.7,202.3 162.7,202.9 163.5,202.9 163.5,203.7 164.3,203.7 164.3,204.1 165.1,204.1 165.1,203.9 165.9,203.9 165.9,203.7 166.7,203.7 166.7,203.3 167.5,203.3 167.5,203.8 168.3,203.8 168.3,205.0 169.1,205.0 169.1,208.0 169.9,208.0 169.9,205.1 170.7,205.1 170.7,206.5 171.5,206.5 171.5,205.4 172.3,205.4 172.3,205.4 173.1,205.4 173.1,207.0 173.9,207.0 173.9,204.9 174.7,204.9 174.7,205.4 175.4,205.4 175.4,203.6 176.2,203.6 176.2,205.7 177.0,205.7 177.0,204.5 177.8,204.5 177.8,205.0 178.6,205.0 178.6,205.2 179.4,205.2 179.4,204.9 180.2,204.9 180.2,204.5 181.0,204.5 181.0,204.9 181.8,204.9 181.8,205.3 182.6,205.3 182.6,203.9 183.4,203.9 183.4,204.8 184.2,204.8 184.2,204.8 185.0,204.8 185.0,203.6 185.8,203.6 185.8,203.4 186.6,203.4 186.6,203.8 187.4,203.8 187.4,205.1 188.2,205.1 188.2,205.5 189.0,205.5 189.0,204.0 189.8,204.0 189.8,204.9 190.6,204.9 190.6,205.0 191.4,205.0 191.4,206.4 192.2,206.4 192.2,205.1 193.0,205.1 193.0,204.5 193.8,204.5 193.8,204.8 194.6,204.8 194.6,205.2 195.4,205.2 195.4,205.0 196.2,205.0 196.2,204.6 197.0,204.6 197.0,203.9 197.8,203.9 197.8,203.5 198.6,203.5 198.6,203.6 199.3,203.6 199.3,204.2 200.1,204.2 200.1,205.9 200.9,205.9 200.9,205.2 201.7,205.2 201.7,204.8 202.5,204.8 202.5,207.3 203.3,207.3 203.3,205.2 204.1,205.2 204.1,208.6 204.9,208.6 204.9,204.3 205.7,204.3 205.7,203.9 206.5,203.9 206.5,203.2 207.3,203.2 207.3,203.9 208.1,203.9 208.1,205.9 208.9,205.9 208.9,204.8 209.7,204.8 209.7,204.7 210.5,204.7 210.5,203.6 211.3,203.6 211.3,203.7 212.1,203.7 212.1,208.2 212.9,208.2 212.9,208.4Line truncated
|
||||
<circle class="nj-charts-json-dot" cx="231.2" cy="153.7" r="3.5"><title>#5328: 2.2×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="231.2" y1="54.0" x2="231.2" y2="148.7"/>
|
||||
<circle class="nj-theme-dot" cx="231.2" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="231.2" y="50.0" text-anchor="middle">4</text>
|
||||
<circle class="nj-charts-json-dot" cx="265.5" cy="123.4" r="3.5"><title>#5824: 3.5×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="265.5" y1="54.0" x2="265.5" y2="118.4"/>
|
||||
<circle class="nj-theme-dot" cx="265.5" cy="46.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="265.5" y="50.0" text-anchor="middle">6</text>
|
||||
<circle class="nj-charts-json-dot" cx="277.4" cy="96.9" r="3.5"><title>#5885: 5.1×</title></circle>
|
||||
<line class="nj-charts-grid" stroke-dasharray="2 2" x1="277.4" y1="36.0" x2="277.4" y2="91.9"/>
|
||||
<circle class="nj-theme-dot" cx="277.4" cy="28.0" r="7.5"/>
|
||||
<text class="nj-theme-num" x="277.4" y="32.0" text-anchor="middle">6</text>
|
||||
<line class="nj-charts-axis" x1="44" y1="208" x2="330" y2="208"/>
|
||||
<text class="nj-charts-note" x="8" y="262">speedup over 3.12.0 (log scale), more is better</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 11 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--blog nj-charts--heat" viewBox="0 0 784 510" role="img" aria-labelledby="nj-blog-uc-mac nj-blog-uc-mac-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-uc-mac">Use cases: time of each library relative to the fastest, Apple M1 Max</title>
|
||||
<desc id="nj-blog-uc-mac-d">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.</desc>
|
||||
<desc id="nj-blog-uc-mac-d">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.84 doing less, N); nlohmann/json json_document write: 1.00 (0.69 doing less, N); yyjson validate: 1.41; yyjson sum: 1.14; yyjson select: 1.30; yyjson edit: 1.48; yyjson minify: 1.26 (1.18 doing less, N); yyjson write: 1.23; simdjson validate: 1.52; simdjson sum: 1.21; simdjson select: 1.34 (0.76 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.91; sonic-rs (Rust) sum: 1.54; sonic-rs (Rust) select: 1.85; sonic-rs (Rust) edit: 2.10; sonic-rs (Rust) minify: 1.93; sonic-rs (Rust) write: 2.34; sonic-cpp validate: no fully validating way (2.50 doing less, U); sonic-cpp sum: no fully validating way (1.86 doing less, U); sonic-cpp select: no fully validating way (2.34 doing less, U); sonic-cpp edit: no fully validating way (1.70 doing less, U); sonic-cpp minify: no fully validating way (2.03 doing less, U); sonic-cpp write: 1.61; simd-json (Rust) validate: 2.05; simd-json (Rust) sum: 1.63; simd-json (Rust) select: 2.39; simd-json (Rust) edit: 2.85; simd-json (Rust) minify: 3.40; simd-json (Rust) write: 3.05; nlohmann/json json validate: 1.38; nlohmann/json json sum: 1.34; nlohmann/json json select: 6.09; nlohmann/json json edit: 3.22; nlohmann/json json minify: 4.39; nlohmann/json json write: 2.03; Glaze validate: 2.03; Glaze sum: 3.88; Glaze select: 1.81 (0.81 doing less, P); Glaze edit: 4.44; Glaze minify: 5.23 (1.05 doing less, P); Glaze write: 2.19; Boost.J​SON validate: 2.54; Boost.J​SON sum: 2.02; Boost.J​SON select: 3.31; Boost.J​SON edit: 3.23; Boost.J​SON minify: 3.89; Boost.J​SON write: 3.67; serde_json (Rust) validate: 2.44 (2.21 doing less, U); serde_json (Rust) sum: 2.60; serde_json (Rust) select: 2.41 (2.26 doing less, U); serde_json (Rust) edit: 5.02; serde_json (Rust) minify: 5.85; serde_json (Rust) write: 2.90; RapidJSON validate: 4.67 (3.09 doing less, U); RapidJSON sum: 4.18 (2.89 doing less, U); RapidJSON select: 6.02 (3.93 doing less, U); RapidJSON edit: 4.85 (3.83 doing less, U); RapidJSON minify: 4.85 (3.66 doing less, U N); RapidJSON write: 5.74.</desc>
|
||||
<text class="nj-charts-tick" x="270" y="34">validate</text>
|
||||
<text class="nj-charts-tick" x="362" y="34">sum</text>
|
||||
<text class="nj-charts-tick" x="454" y="34">select</text>
|
||||
@@ -8,359 +8,359 @@
|
||||
<text class="nj-charts-tick" x="638" y="34">minify</text>
|
||||
<text class="nj-charts-tick" x="730" y="34">write</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="66" text-anchor="end">nlohmann/json json_document</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · validate 1.00× the time of the fastest library (fully validating) way: accept twitter.json: 170 µs citm_catalog.json: 313 µs canada.json: 886 µs jeopardy.json: 20,873 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · validate 1.00× the time of the fastest library (fully validating) way: accept twitter.json: 172 µs citm_catalog.json: 313 µs canada.json: 905 µs jeopardy.json: 20,926 µs">
|
||||
<rect class="nj-heat-0" x="225" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · sum 1.00× the time of the fastest library (fully validating) way: parse twitter.json: 224 µs citm_catalog.json: 485 µs canada.json: 1,816 µs jeopardy.json: 28,987 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · sum 1.00× the time of the fastest library (fully validating) way: parse twitter.json: 219 µs citm_catalog.json: 493 µs canada.json: 1,803 µs jeopardy.json: 28,898 µs">
|
||||
<rect class="nj-heat-0" x="317" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · select 1.00× the time of the fastest library (fully validating) way: parse twitter.json: 184 µs citm_catalog.json: 363 µs canada.json: 956 µs jeopardy.json: 24,991 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · select 1.00× the time of the fastest library (fully validating) way: parse twitter.json: 183 µs citm_catalog.json: 363 µs canada.json: 944 µs jeopardy.json: 24,801 µs">
|
||||
<rect class="nj-heat-0" x="409" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit 1.00× the time of the fastest library (fully validating) way: editable twitter.json: 291 µs citm_catalog.json: 560 µs canada.json: 2,765 µs jeopardy.json: 58,057 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit 1.00× the time of the fastest library (fully validating) way: editable twitter.json: 288 µs citm_catalog.json: 559 µs canada.json: 2,737 µs jeopardy.json: 58,019 µs">
|
||||
<rect class="nj-heat-0" x="501" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit, checking less 0.85× the time of the fastest fully validating library twitter.json: 283 µs · editable (source numbers) (validates fully) citm_catalog.json: 560 µs · editable (validates fully) canada.json: 1,484 µs · editable (source numbers) (validates fully) jeopardy.json: 57,635 µs · editable (source numbers) (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit, checking less 0.85× the time of the fastest fully validating library way: editable (source numbers) twitter.json: 281 µs (validates fully) citm_catalog.json: 557 µs (validates fully) canada.json: 1,504 µs (validates fully) jeopardy.json: 57,885 µs (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="547" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="60" text-anchor="middle">0.85</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify 1.00× the time of the fastest library (fully validating) way: parse + dump twitter.json: 259 µs citm_catalog.json: 493 µs canada.json: 2,582 µs jeopardy.json: 37,882 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify 1.00× the time of the fastest library (fully validating) way: parse + dump twitter.json: 261 µs citm_catalog.json: 496 µs canada.json: 2,570 µs jeopardy.json: 37,624 µs">
|
||||
<rect class="nj-heat-0" x="593" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify, checking less 0.85× the time of the fastest fully validating library twitter.json: 252 µs · parse + dump (source numbers) (validates fully) citm_catalog.json: 493 µs · parse + dump (validates fully) canada.json: 1,360 µs · parse + dump (source numbers) (validates fully) jeopardy.json: 37,817 µs · parse + dump (source numbers) (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify, checking less 0.84× the time of the fastest fully validating library twitter.json: 252 µs · parse + dump (source numbers) (validates fully) citm_catalog.json: 494 µs · parse + dump (source numbers) (validates fully) canada.json: 1,343 µs · parse + dump (source numbers) (validates fully) jeopardy.json: 37,624 µs · parse + dump (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="639" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="60" text-anchor="middle">0.85</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="60" text-anchor="middle">0.84</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write 1.00× the time of the fastest library (fully validating) way: dump twitter.json: 74.3 µs citm_catalog.json: 134 µs canada.json: 1,621 µs jeopardy.json: 14,757 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write 1.00× the time of the fastest library (fully validating) way: dump twitter.json: 76.2 µs citm_catalog.json: 139 µs canada.json: 1,625 µs jeopardy.json: 14,861 µs">
|
||||
<rect class="nj-heat-0" x="685" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="707.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write, checking less 0.71× the time of the fastest fully validating library twitter.json: 74.3 µs · dump (validates fully) citm_catalog.json: 134 µs · dump (validates fully) canada.json: 401 µs · dump (source numbers) (validates fully) jeopardy.json: 14,757 µs · dump (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write, checking less 0.69× the time of the fastest fully validating library way: dump (source numbers) twitter.json: 72.8 µs (validates fully) citm_catalog.json: 136 µs (validates fully) canada.json: 398 µs (validates fully) jeopardy.json: 14,758 µs (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="731" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="752.5" y="60" text-anchor="middle">0.71</text>
|
||||
<text class="nj-charts-cell" x="752.5" y="60" text-anchor="middle">0.69</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="752.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="102" text-anchor="end">yyjson</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · validate 1.37× the time of the fastest library (fully validating) way: insitu (copy untimed) twitter.json: 172 µs citm_catalog.json: 451 µs canada.json: 1,457 µs jeopardy.json: 30,240 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · validate 1.41× the time of the fastest library (fully validating) twitter.json: 183 µs · insitu (copy) citm_catalog.json: 476 µs · read canada.json: 1,487 µs · insitu (copy) jeopardy.json: 30,922 µs · read (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="225" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="102" text-anchor="middle">1.37</text>
|
||||
<text class="nj-charts-cell" x="270" y="102" text-anchor="middle">1.41</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · sum 1.11× the time of the fastest library (fully validating) way: insitu (copy untimed) twitter.json: 219 µs citm_catalog.json: 551 µs canada.json: 1,906 µs jeopardy.json: 37,512 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · sum 1.14× the time of the fastest library (fully validating) twitter.json: 231 µs · insitu (copy) citm_catalog.json: 571 µs · read canada.json: 1,875 µs · read jeopardy.json: 37,817 µs · insitu (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-0" x="317" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="102" text-anchor="middle">1.11</text>
|
||||
<text class="nj-charts-cell" x="362" y="102" text-anchor="middle">1.14</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · select 1.25× the time of the fastest library (fully validating) way: insitu (copy untimed) twitter.json: 178 µs citm_catalog.json: 456 µs canada.json: 1,461 µs jeopardy.json: 32,514 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · select 1.30× the time of the fastest library (fully validating) twitter.json: 191 µs · insitu (copy) citm_catalog.json: 480 µs · read canada.json: 1,489 µs · insitu (copy) jeopardy.json: 32,777 µs · read (raw numbers) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="409" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="102" text-anchor="middle">1.25</text>
|
||||
<text class="nj-charts-cell" x="454" y="102" text-anchor="middle">1.30</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · edit 1.45× the time of the fastest library (fully validating) way: insitu (copy untimed) + mut copy twitter.json: 427 µs citm_catalog.json: 882 µs canada.json: 3,642 µs jeopardy.json: 84,239 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · edit 1.48× the time of the fastest library (fully validating) twitter.json: 440 µs · insitu (copy) + mut copy citm_catalog.json: 904 µs · mut copy canada.json: 3,692 µs · mut copy jeopardy.json: 84,466 µs · insitu (copy) + mut copy (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="501" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="102" text-anchor="middle">1.45</text>
|
||||
<text class="nj-charts-cell" x="546" y="102" text-anchor="middle">1.48</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify 1.23× the time of the fastest library (fully validating) way: insitu (copy untimed) + write twitter.json: 279 µs citm_catalog.json: 625 µs canada.json: 3,196 µs jeopardy.json: 50,821 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify 1.26× the time of the fastest library (fully validating) twitter.json: 298 µs · insitu (copy) + write citm_catalog.json: 642 µs · read + write canada.json: 3,222 µs · insitu (copy) + write jeopardy.json: 51,001 µs · read + write (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="593" y="81" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="102" text-anchor="middle">1.23</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="102" text-anchor="middle">1.26</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify, checking less 1.16× the time of the fastest fully validating library twitter.json: 279 µs · insitu (copy untimed) + write (validates fully) citm_catalog.json: 625 µs · insitu (copy untimed) + write (validates fully) canada.json: 2,550 µs · read (raw numbers) + write (validates fully) jeopardy.json: 50,821 µs · insitu (copy untimed) + write (validates fully) copies each number's text instead of formatting it (YYJSON_READ_NUMBER_AS_RAW)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify, checking less 1.18× the time of the fastest fully validating library twitter.json: 298 µs · insitu (copy) + write (validates fully) citm_catalog.json: 642 µs · read + write (validates fully) canada.json: 2,523 µs · read (raw numbers) + write (validates fully) jeopardy.json: 51,001 µs · read + write (validates fully) copies each number's text instead of formatting it (YYJSON_READ_NUMBER_AS_RAW) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="639" y="81" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="96" text-anchor="middle">1.16</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="96" text-anchor="middle">1.18</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="109" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · write 1.26× the time of the fastest library (fully validating) way: write twitter.json: 103 µs citm_catalog.json: 169 µs canada.json: 1,731 µs jeopardy.json: 20,087 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · write 1.23× the time of the fastest library (fully validating) way: write twitter.json: 101 µs citm_catalog.json: 167 µs canada.json: 1,719 µs jeopardy.json: 19,937 µs">
|
||||
<rect class="nj-heat-1" x="685" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="102" text-anchor="middle">1.26</text>
|
||||
<text class="nj-charts-cell" x="730" y="102" text-anchor="middle">1.23</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="138" text-anchor="end">simdjson</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · validate 1.52× the time of the fastest library (fully validating) way: D​OM twitter.json: 212 µs citm_catalog.json: 452 µs canada.json: 1,888 µs jeopardy.json: 28,843 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · validate 1.52× the time of the fastest library (fully validating) way: D​OM twitter.json: 215 µs citm_catalog.json: 460 µs canada.json: 1,890 µs jeopardy.json: 28,890 µs">
|
||||
<rect class="nj-heat-2" x="225" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="138" text-anchor="middle">1.52</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · sum 1.20× the time of the fastest library (fully validating) twitter.json: 249 µs · D​OM citm_catalog.json: 571 µs · On-Demand canada.json: 2,374 µs · On-Demand jeopardy.json: 35,111 µs · D​OM">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · sum 1.21× the time of the fastest library (fully validating) twitter.json: 249 µs · D​OM citm_catalog.json: 572 µs · On-Demand canada.json: 2,398 µs · On-Demand jeopardy.json: 34,994 µs · D​OM">
|
||||
<rect class="nj-heat-1" x="317" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="138" text-anchor="middle">1.20</text>
|
||||
<text class="nj-charts-cell" x="362" y="138" text-anchor="middle">1.21</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select 1.33× the time of the fastest library (fully validating) way: D​OM twitter.json: 196 µs citm_catalog.json: 450 µs canada.json: 1,886 µs jeopardy.json: 30,504 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select 1.34× the time of the fastest library (fully validating) way: D​OM twitter.json: 192 µs citm_catalog.json: 454 µs canada.json: 1,893 µs jeopardy.json: 30,714 µs">
|
||||
<rect class="nj-heat-1" x="409" y="117" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="138" text-anchor="middle">1.33</text>
|
||||
<text class="nj-charts-cell" x="431.5" y="138" text-anchor="middle">1.34</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select, checking less 0.75× the time of the fastest fully validating library twitter.json: 127 µs · On-Demand structs citm_catalog.json: 354 µs · On-Demand canada.json: 566 µs · On-Demand (key selectors) jeopardy.json: 19,562 µs · On-Demand reads lazily: On-Demand reads only what you ask for and steps over the rest by matching brackets">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select, checking less 0.76× the time of the fastest fully validating library twitter.json: 128 µs · On-Demand structs citm_catalog.json: 356 µs · On-Demand canada.json: 571 µs · On-Demand jeopardy.json: 19,633 µs · On-Demand reads lazily: On-Demand reads only what you ask for and steps over the rest by matching brackets">
|
||||
<rect class="nj-heat-0" x="455" y="117" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="132" text-anchor="middle">0.75</text>
|
||||
<text class="nj-charts-cell" x="476.5" y="132" text-anchor="middle">0.76</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="145" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · edit simdjson's documents are read-only: it has no A​PI to change a value and write the result">
|
||||
<rect class="nj-heat-na" x="501" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-tick" x="546" y="138">n/a</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify 1.73× the time of the fastest library (fully validating) way: D​OM + to_string twitter.json: 423 µs citm_catalog.json: 848 µs canada.json: 5,120 µs jeopardy.json: 61,059 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify 1.73× the time of the fastest library (fully validating) way: D​OM + to_string twitter.json: 425 µs citm_catalog.json: 850 µs canada.json: 5,094 µs jeopardy.json: 61,202 µs">
|
||||
<rect class="nj-heat-2" x="593" y="117" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="138" text-anchor="middle">1.73</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify, checking less 0.18× the time of the fastest fully validating library way: minify twitter.json: 62.3 µs citm_catalog.json: 171 µs canada.json: 227 µs jeopardy.json: 5,762 µs simdjson::minify() only removes whitespace, without parsing the values">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify, checking less 0.18× the time of the fastest fully validating library way: minify twitter.json: 62.5 µs citm_catalog.json: 168 µs canada.json: 227 µs jeopardy.json: 5,756 µs simdjson::minify() only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="117" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="132" text-anchor="middle">0.18</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="145" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · write 2.41× the time of the fastest library (fully validating) way: to_string twitter.json: 199 µs citm_catalog.json: 385 µs canada.json: 3,241 µs jeopardy.json: 32,208 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · write 2.41× the time of the fastest library (fully validating) way: to_string twitter.json: 201 µs citm_catalog.json: 416 µs canada.json: 3,186 µs jeopardy.json: 32,185 µs">
|
||||
<rect class="nj-heat-2" x="685" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="138" text-anchor="middle">2.41</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="174" text-anchor="end">sonic-rs (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · validate 1.93× the time of the fastest library (fully validating) way: Value twitter.json: 326 µs citm_catalog.json: 681 µs canada.json: 1,939 µs jeopardy.json: 31,450 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · validate 1.91× the time of the fastest library (fully validating) way: Value twitter.json: 326 µs citm_catalog.json: 681 µs canada.json: 1,939 µs jeopardy.json: 31,450 µs">
|
||||
<rect class="nj-heat-2" x="225" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="174" text-anchor="middle">1.93</text>
|
||||
<text class="nj-charts-cell" x="270" y="174" text-anchor="middle">1.91</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · sum 1.53× the time of the fastest library (fully validating) way: visitor twitter.json: 364 µs citm_catalog.json: 778 µs canada.json: 2,703 µs jeopardy.json: 41,361 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · sum 1.54× the time of the fastest library (fully validating) way: visitor twitter.json: 364 µs citm_catalog.json: 778 µs canada.json: 2,703 µs jeopardy.json: 41,361 µs">
|
||||
<rect class="nj-heat-2" x="317" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="174" text-anchor="middle">1.53</text>
|
||||
<text class="nj-charts-cell" x="362" y="174" text-anchor="middle">1.54</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · select 1.83× the time of the fastest library (fully validating) way: Value twitter.json: 333 µs citm_catalog.json: 691 µs canada.json: 1,936 µs jeopardy.json: 40,660 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · select 1.85× the time of the fastest library (fully validating) way: Value twitter.json: 333 µs citm_catalog.json: 691 µs canada.json: 1,936 µs jeopardy.json: 40,660 µs">
|
||||
<rect class="nj-heat-2" x="409" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="174" text-anchor="middle">1.83</text>
|
||||
<text class="nj-charts-cell" x="454" y="174" text-anchor="middle">1.85</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · edit 2.08× the time of the fastest library (fully validating) way: Value twitter.json: 634 µs citm_catalog.json: 1,257 µs canada.json: 4,396 µs jeopardy.json: 140,936 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · edit 2.10× the time of the fastest library (fully validating) way: Value twitter.json: 634 µs citm_catalog.json: 1,257 µs canada.json: 4,396 µs jeopardy.json: 140,936 µs">
|
||||
<rect class="nj-heat-2" x="501" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="174" text-anchor="middle">2.08</text>
|
||||
<text class="nj-charts-cell" x="546" y="174" text-anchor="middle">2.10</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · minify 1.93× the time of the fastest library (fully validating) way: Value twitter.json: 535 µs citm_catalog.json: 1,134 µs canada.json: 4,377 µs jeopardy.json: 64,832 µs">
|
||||
<rect class="nj-heat-2" x="593" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="174" text-anchor="middle">1.93</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · write 2.38× the time of the fastest library (fully validating) way: Value twitter.json: 212 µs citm_catalog.json: 446 µs canada.json: 2,419 µs jeopardy.json: 33,366 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · write 2.34× the time of the fastest library (fully validating) way: Value twitter.json: 212 µs citm_catalog.json: 446 µs canada.json: 2,419 µs jeopardy.json: 33,366 µs">
|
||||
<rect class="nj-heat-2" x="685" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="174" text-anchor="middle">2.38</text>
|
||||
<text class="nj-charts-cell" x="730" y="174" text-anchor="middle">2.34</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="210" text-anchor="end">sonic-cpp</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · validate, checking less 2.53× the time of the fastest fully validating library way: Document twitter.json: 382 µs citm_catalog.json: 985 µs canada.json: 2,578 µs jeopardy.json: 41,617 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-3" x="225" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="204" text-anchor="middle">2.53</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · validate, checking less 2.50× the time of the fastest fully validating library way: Document twitter.json: 382 µs citm_catalog.json: 985 µs canada.json: 2,579 µs jeopardy.json: 40,996 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="225" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="204" text-anchor="middle">2.50</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="270" y="217" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · sum, checking less 1.86× the time of the fastest fully validating library way: Document twitter.json: 428 µs citm_catalog.json: 1,087 µs canada.json: 2,993 µs jeopardy.json: 48,688 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · sum, checking less 1.86× the time of the fastest fully validating library way: Document twitter.json: 428 µs citm_catalog.json: 1,098 µs canada.json: 2,975 µs jeopardy.json: 48,487 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="317" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="204" text-anchor="middle">1.86</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="362" y="217" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · select, checking less 2.31× the time of the fastest fully validating library way: Document twitter.json: 385 µs citm_catalog.json: 990 µs canada.json: 2,586 µs jeopardy.json: 45,858 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · select, checking less 2.34× the time of the fastest fully validating library way: Document twitter.json: 385 µs citm_catalog.json: 993 µs canada.json: 2,611 µs jeopardy.json: 46,356 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="409" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="204" text-anchor="middle">2.31</text>
|
||||
<text class="nj-charts-cell" x="454" y="204" text-anchor="middle">2.34</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="454" y="217" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · edit, checking less 1.68× the time of the fastest fully validating library way: Document twitter.json: 486 µs citm_catalog.json: 1,224 µs canada.json: 5,638 µs jeopardy.json: 62,688 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · edit, checking less 1.70× the time of the fastest fully validating library way: Document twitter.json: 488 µs citm_catalog.json: 1,218 µs canada.json: 5,662 µs jeopardy.json: 63,697 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="501" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="204" text-anchor="middle">1.68</text>
|
||||
<text class="nj-charts-cell" x="546" y="204" text-anchor="middle">1.70</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="546" y="217" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · minify, checking less 2.03× the time of the fastest fully validating library way: Document + Serialize twitter.json: 500 µs citm_catalog.json: 1,220 µs canada.json: 5,676 µs jeopardy.json: 61,236 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · minify, checking less 2.03× the time of the fastest fully validating library way: Document + Serialize twitter.json: 504 µs citm_catalog.json: 1,217 µs canada.json: 5,634 µs jeopardy.json: 61,988 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="593" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="204" text-anchor="middle">2.03</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="638" y="217" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · write 1.59× the time of the fastest library (fully validating) way: Serialize twitter.json: 108 µs citm_catalog.json: 230 µs canada.json: 3,093 µs jeopardy.json: 19,651 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · write 1.61× the time of the fastest library (fully validating) way: Serialize twitter.json: 114 µs citm_catalog.json: 240 µs canada.json: 3,109 µs jeopardy.json: 20,327 µs">
|
||||
<rect class="nj-heat-2" x="685" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="210" text-anchor="middle">1.59</text>
|
||||
<text class="nj-charts-cell" x="730" y="210" text-anchor="middle">1.61</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="246" text-anchor="end">simd-json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · validate 2.07× the time of the fastest library (fully validating) way: tape (copy) twitter.json: 289 µs citm_catalog.json: 698 µs canada.json: 2,278 µs jeopardy.json: 38,874 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · validate 2.05× the time of the fastest library (fully validating) way: tape (copy) twitter.json: 289 µs citm_catalog.json: 698 µs canada.json: 2,278 µs jeopardy.json: 38,874 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="225" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="246" text-anchor="middle">2.07</text>
|
||||
<text class="nj-charts-cell" x="270" y="246" text-anchor="middle">2.05</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · sum 1.62× the time of the fastest library (fully validating) way: visitor (copy) twitter.json: 354 µs citm_catalog.json: 866 µs canada.json: 2,717 µs jeopardy.json: 47,518 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · sum 1.63× the time of the fastest library (fully validating) way: visitor (copy) twitter.json: 354 µs citm_catalog.json: 866 µs canada.json: 2,717 µs jeopardy.json: 47,518 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="317" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="246" text-anchor="middle">1.62</text>
|
||||
<text class="nj-charts-cell" x="362" y="246" text-anchor="middle">1.63</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · select 2.38× the time of the fastest library (fully validating) way: structs (copy) twitter.json: 364 µs citm_catalog.json: 914 µs canada.json: 2,657 µs jeopardy.json: 57,697 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · select 2.39× the time of the fastest library (fully validating) way: structs (copy) twitter.json: 364 µs citm_catalog.json: 914 µs canada.json: 2,657 µs jeopardy.json: 57,697 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="409" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="246" text-anchor="middle">2.38</text>
|
||||
<text class="nj-charts-cell" x="454" y="246" text-anchor="middle">2.39</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · edit 2.84× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 948 µs citm_catalog.json: 2,102 µs canada.json: 7,654 µs jeopardy.json: 110,693 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · edit 2.85× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 948 µs citm_catalog.json: 2,102 µs canada.json: 7,654 µs jeopardy.json: 110,693 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="501" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="246" text-anchor="middle">2.84</text>
|
||||
<text class="nj-charts-cell" x="546" y="246" text-anchor="middle">2.85</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · minify 3.40× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 952 µs citm_catalog.json: 2,111 µs canada.json: 7,658 µs jeopardy.json: 108,130 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="593" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="246" text-anchor="middle">3.40</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · write 3.10× the time of the fastest library (fully validating) way: borrowed twitter.json: 355 µs citm_catalog.json: 478 µs canada.json: 2,728 µs jeopardy.json: 47,412 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · write 3.05× the time of the fastest library (fully validating) way: borrowed twitter.json: 355 µs citm_catalog.json: 478 µs canada.json: 2,728 µs jeopardy.json: 47,412 µs">
|
||||
<rect class="nj-heat-3" x="685" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="246" text-anchor="middle">3.10</text>
|
||||
<text class="nj-charts-cell" x="730" y="246" text-anchor="middle">3.05</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="282" text-anchor="end">Glaze</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · validate 2.04× the time of the fastest library (fully validating) way: validate_json twitter.json: 331 µs citm_catalog.json: 862 µs canada.json: 1,326 µs jeopardy.json: 45,192 µs">
|
||||
<rect class="nj-heat-2" x="225" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="282" text-anchor="middle">2.04</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="282" text-anchor="end">nlohmann/json json</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · validate 1.38× the time of the fastest library (fully validating) way: accept twitter.json: 234 µs citm_catalog.json: 456 µs canada.json: 1,253 µs jeopardy.json: 27,563 µs">
|
||||
<rect class="nj-heat-1" x="225" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="282" text-anchor="middle">1.38</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum 3.85× the time of the fastest library (fully validating) way: generic (double, strict) twitter.json: 968 µs citm_catalog.json: 2,049 µs canada.json: 6,331 µs jeopardy.json: 99,763 µs">
|
||||
<rect class="nj-heat-3" x="317" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="282" text-anchor="middle">3.85</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · sum 1.34× the time of the fastest library (fully validating) way: sax twitter.json: 303 µs citm_catalog.json: 602 µs canada.json: 2,208 µs jeopardy.json: 44,688 µs">
|
||||
<rect class="nj-heat-1" x="317" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="282" text-anchor="middle">1.34</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select 1.79× the time of the fastest library (fully validating) way: structs (validate_skipped) twitter.json: 311 µs citm_catalog.json: 854 µs canada.json: 1,316 µs jeopardy.json: 46,924 µs">
|
||||
<rect class="nj-heat-2" x="409" y="261" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="282" text-anchor="middle">1.79</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · select 6.09× the time of the fastest library (fully validating) way: parse twitter.json: 1,208 µs citm_catalog.json: 2,128 µs canada.json: 5,088 µs jeopardy.json: 163,712 µs">
|
||||
<rect class="nj-heat-4" x="409" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="282" text-anchor="middle">6.09</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select, checking less 0.82× the time of the fastest fully validating library way: structs twitter.json: 241 µs citm_catalog.json: 255 µs canada.json: 313 µs jeopardy.json: 37,578 µs reads into structs and steps over fields it doesn't know without checking them (validate_skipped checks them too)">
|
||||
<rect class="nj-heat-0" x="455" y="261" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="276" text-anchor="middle">0.82</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="289" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · edit 4.41× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 1,539 µs citm_catalog.json: 3,235 µs canada.json: 11,083 µs jeopardy.json: 178,333 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · edit 3.22× the time of the fastest library (fully validating) twitter.json: 1,115 µs · ordered_json citm_catalog.json: 2,065 µs · ordered_json canada.json: 7,348 µs · parse jeopardy.json: 162,216 µs · ordered_json">
|
||||
<rect class="nj-heat-3" x="501" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="282" text-anchor="middle">4.41</text>
|
||||
<text class="nj-charts-cell" x="546" y="282" text-anchor="middle">3.22</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify 5.19× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 1,505 µs citm_catalog.json: 3,225 µs canada.json: 11,092 µs jeopardy.json: 168,855 µs">
|
||||
<rect class="nj-heat-4" x="593" y="261" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="282" text-anchor="middle">5.19</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · minify 4.39× the time of the fastest library (fully validating) way: parse + dump twitter.json: 1,446 µs citm_catalog.json: 2,406 µs canada.json: 7,328 µs jeopardy.json: 182,132 µs">
|
||||
<rect class="nj-heat-3" x="593" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="282" text-anchor="middle">4.39</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify, checking less 1.03× the time of the fastest fully validating library way: minify_json twitter.json: 281 µs citm_catalog.json: 729 µs canada.json: 1,722 µs jeopardy.json: 39,976 µs minify_json only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="261" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="276" text-anchor="middle">1.03</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="289" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · write 2.23× the time of the fastest library (fully validating) twitter.json: 216 µs · generic citm_catalog.json: 469 µs · generic canada.json: 1,720 µs · generic (strict) jeopardy.json: 33,934 µs · generic">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · write 2.03× the time of the fastest library (fully validating) way: dump twitter.json: 216 µs citm_catalog.json: 287 µs canada.json: 2,274 µs jeopardy.json: 30,928 µs">
|
||||
<rect class="nj-heat-2" x="685" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="282" text-anchor="middle">2.23</text>
|
||||
<text class="nj-charts-cell" x="730" y="282" text-anchor="middle">2.03</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="318" text-anchor="end">Boost.J​SON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · validate 2.56× the time of the fastest library (fully validating) way: S​AX (numbers: none) twitter.json: 535 µs citm_catalog.json: 994 µs canada.json: 1,467 µs jeopardy.json: 53,939 µs">
|
||||
<rect class="nj-heat-3" x="225" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="318" text-anchor="middle">2.56</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="318" text-anchor="end">Glaze</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · validate 2.03× the time of the fastest library (fully validating) way: validate_json twitter.json: 333 µs citm_catalog.json: 854 µs canada.json: 1,302 µs jeopardy.json: 46,251 µs">
|
||||
<rect class="nj-heat-2" x="225" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="318" text-anchor="middle">2.03</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · sum 1.99× the time of the fastest library (fully validating) way: S​AX twitter.json: 535 µs citm_catalog.json: 1,010 µs canada.json: 3,067 µs jeopardy.json: 53,704 µs">
|
||||
<rect class="nj-heat-2" x="317" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="318" text-anchor="middle">1.99</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum 3.88× the time of the fastest library (fully validating) way: generic (double, strict) twitter.json: 974 µs citm_catalog.json: 2,057 µs canada.json: 6,338 µs jeopardy.json: 100,272 µs">
|
||||
<rect class="nj-heat-3" x="317" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="318" text-anchor="middle">3.88</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · select 3.27× the time of the fastest library (fully validating) twitter.json: 617 µs · parse_into structs citm_catalog.json: 1,205 µs · parse_into structs canada.json: 3,650 µs · parse jeopardy.json: 67,255 µs · parse_into structs">
|
||||
<rect class="nj-heat-3" x="409" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="318" text-anchor="middle">3.27</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select 1.81× the time of the fastest library (fully validating) way: structs (validate_skipped) twitter.json: 314 µs citm_catalog.json: 852 µs canada.json: 1,303 µs jeopardy.json: 47,692 µs">
|
||||
<rect class="nj-heat-2" x="409" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="318" text-anchor="middle">1.81</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · edit 3.21× the time of the fastest library (fully validating) way: parse twitter.json: 1,368 µs citm_catalog.json: 1,992 µs canada.json: 6,573 µs jeopardy.json: 155,237 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select, checking less 0.81× the time of the fastest fully validating library way: structs twitter.json: 238 µs citm_catalog.json: 253 µs canada.json: 310 µs jeopardy.json: 36,013 µs reads into structs and steps over fields it doesn't know without checking them (validate_skipped checks them too)">
|
||||
<rect class="nj-heat-0" x="455" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="312" text-anchor="middle">0.81</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="325" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · edit 4.44× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 1,527 µs citm_catalog.json: 3,216 µs canada.json: 11,033 µs jeopardy.json: 183,648 µs">
|
||||
<rect class="nj-heat-3" x="501" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="318" text-anchor="middle">3.21</text>
|
||||
<text class="nj-charts-cell" x="546" y="318" text-anchor="middle">4.44</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · minify 3.87× the time of the fastest library (fully validating) way: parse + serialize twitter.json: 1,393 µs citm_catalog.json: 1,986 µs canada.json: 6,542 µs jeopardy.json: 154,677 µs">
|
||||
<rect class="nj-heat-3" x="593" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="318" text-anchor="middle">3.87</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify 5.23× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 1,512 µs citm_catalog.json: 3,245 µs canada.json: 11,112 µs jeopardy.json: 172,173 µs">
|
||||
<rect class="nj-heat-4" x="593" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="318" text-anchor="middle">5.23</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · write 3.75× the time of the fastest library (fully validating) way: serialize twitter.json: 507 µs citm_catalog.json: 508 µs canada.json: 2,923 µs jeopardy.json: 62,583 µs">
|
||||
<rect class="nj-heat-3" x="685" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="318" text-anchor="middle">3.75</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify, checking less 1.05× the time of the fastest fully validating library way: minify_json twitter.json: 284 µs citm_catalog.json: 747 µs canada.json: 1,746 µs jeopardy.json: 40,439 µs minify_json only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="312" text-anchor="middle">1.05</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="325" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="354" text-anchor="end">serde_json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate 2.46× the time of the fastest library (fully validating) way: from_utf8 + IgnoredAny twitter.json: 452 µs citm_catalog.json: 1,103 µs canada.json: 1,556 µs jeopardy.json: 46,517 µs">
|
||||
<rect class="nj-heat-2" x="225" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="354" text-anchor="middle">2.46</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · write 2.19× the time of the fastest library (fully validating) twitter.json: 212 µs · generic citm_catalog.json: 476 µs · generic (strict) canada.json: 1,702 µs · generic (strict) jeopardy.json: 34,032 µs · generic">
|
||||
<rect class="nj-heat-2" x="685" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="318" text-anchor="middle">2.19</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate, checking less 2.23× the time of the fastest fully validating library way: IgnoredAny twitter.json: 354 µs citm_catalog.json: 1,047 µs canada.json: 1,451 µs jeopardy.json: 44,984 µs trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="271" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="348" text-anchor="middle">2.23</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="361" text-anchor="middle">U</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="354" text-anchor="end">Boost.J​SON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · validate 2.54× the time of the fastest library (fully validating) way: S​AX (numbers: none) twitter.json: 540 µs citm_catalog.json: 990 µs canada.json: 1,449 µs jeopardy.json: 54,480 µs">
|
||||
<rect class="nj-heat-3" x="225" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="354" text-anchor="middle">2.54</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · sum 2.59× the time of the fastest library (fully validating) way: visitor twitter.json: 652 µs citm_catalog.json: 1,242 µs canada.json: 4,772 µs jeopardy.json: 66,568 µs">
|
||||
<rect class="nj-heat-3" x="317" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="354" text-anchor="middle">2.59</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · sum 2.02× the time of the fastest library (fully validating) way: S​AX twitter.json: 538 µs citm_catalog.json: 1,028 µs canada.json: 3,084 µs jeopardy.json: 54,765 µs">
|
||||
<rect class="nj-heat-2" x="317" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="354" text-anchor="middle">2.02</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select 2.39× the time of the fastest library (fully validating) way: from_utf8 + structs twitter.json: 480 µs citm_catalog.json: 1,125 µs canada.json: 1,560 µs jeopardy.json: 62,378 µs">
|
||||
<rect class="nj-heat-2" x="409" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="354" text-anchor="middle">2.39</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · select 3.31× the time of the fastest library (fully validating) twitter.json: 623 µs · parse_into structs citm_catalog.json: 1,208 µs · parse_into structs canada.json: 3,638 µs · parse jeopardy.json: 67,923 µs · parse_into structs">
|
||||
<rect class="nj-heat-3" x="409" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="354" text-anchor="middle">3.31</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select, checking less 2.24× the time of the fastest fully validating library twitter.json: 410 µs · structs citm_catalog.json: 1,084 µs · structs canada.json: 1,455 µs · structs jeopardy.json: 62,378 µs · from_utf8 + structs (validates fully) trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="455" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="348" text-anchor="middle">2.24</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="361" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · edit 4.99× the time of the fastest library (fully validating) way: Value twitter.json: 2,009 µs citm_catalog.json: 3,316 µs canada.json: 9,666 µs jeopardy.json: 251,931 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · edit 3.23× the time of the fastest library (fully validating) way: parse twitter.json: 1,355 µs citm_catalog.json: 1,997 µs canada.json: 6,522 µs jeopardy.json: 157,849 µs">
|
||||
<rect class="nj-heat-3" x="501" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="354" text-anchor="middle">4.99</text>
|
||||
<text class="nj-charts-cell" x="546" y="354" text-anchor="middle">3.23</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · minify 3.89× the time of the fastest library (fully validating) way: parse + serialize twitter.json: 1,407 µs citm_catalog.json: 2,003 µs canada.json: 6,555 µs jeopardy.json: 154,865 µs">
|
||||
<rect class="nj-heat-3" x="593" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="354" text-anchor="middle">3.89</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · write 3.67× the time of the fastest library (fully validating) way: serialize twitter.json: 499 µs citm_catalog.json: 511 µs canada.json: 2,873 µs jeopardy.json: 63,201 µs">
|
||||
<rect class="nj-heat-3" x="685" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="354" text-anchor="middle">3.67</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="390" text-anchor="end">serde_json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate 2.44× the time of the fastest library (fully validating) way: from_utf8 + IgnoredAny twitter.json: 452 µs citm_catalog.json: 1,103 µs canada.json: 1,556 µs jeopardy.json: 46,517 µs">
|
||||
<rect class="nj-heat-2" x="225" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="390" text-anchor="middle">2.44</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate, checking less 2.21× the time of the fastest fully validating library way: IgnoredAny twitter.json: 354 µs citm_catalog.json: 1,047 µs canada.json: 1,451 µs jeopardy.json: 44,984 µs trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="271" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="384" text-anchor="middle">2.21</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="397" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · sum 2.60× the time of the fastest library (fully validating) way: visitor twitter.json: 652 µs citm_catalog.json: 1,242 µs canada.json: 4,772 µs jeopardy.json: 66,568 µs">
|
||||
<rect class="nj-heat-3" x="317" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="390" text-anchor="middle">2.60</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select 2.41× the time of the fastest library (fully validating) way: from_utf8 + structs twitter.json: 480 µs citm_catalog.json: 1,125 µs canada.json: 1,560 µs jeopardy.json: 62,378 µs">
|
||||
<rect class="nj-heat-2" x="409" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="390" text-anchor="middle">2.41</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select, checking less 2.26× the time of the fastest fully validating library twitter.json: 410 µs · structs citm_catalog.json: 1,084 µs · structs canada.json: 1,455 µs · structs jeopardy.json: 62,378 µs · from_utf8 + structs (validates fully) trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="455" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="384" text-anchor="middle">2.26</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="397" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · edit 5.02× the time of the fastest library (fully validating) way: Value twitter.json: 2,009 µs citm_catalog.json: 3,316 µs canada.json: 9,666 µs jeopardy.json: 251,931 µs">
|
||||
<rect class="nj-heat-4" x="501" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="390" text-anchor="middle">5.02</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · minify 5.85× the time of the fastest library (fully validating) way: Value twitter.json: 2,004 µs citm_catalog.json: 3,290 µs canada.json: 9,792 µs jeopardy.json: 227,369 µs">
|
||||
<rect class="nj-heat-4" x="593" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="354" text-anchor="middle">5.85</text>
|
||||
<rect class="nj-heat-4" x="593" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="390" text-anchor="middle">5.85</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · write 2.95× the time of the fastest library (fully validating) way: Value twitter.json: 322 µs citm_catalog.json: 490 µs canada.json: 2,286 µs jeopardy.json: 49,967 µs">
|
||||
<rect class="nj-heat-3" x="685" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="354" text-anchor="middle">2.95</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="390" text-anchor="end">nlohmann/json json</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · validate 2.71× the time of the fastest library (fully validating) way: accept twitter.json: 451 µs citm_catalog.json: 888 µs canada.json: 2,405 µs jeopardy.json: 55,286 µs">
|
||||
<rect class="nj-heat-3" x="225" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="390" text-anchor="middle">2.71</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · sum 1.96× the time of the fastest library (fully validating) way: sax twitter.json: 465 µs citm_catalog.json: 925 µs canada.json: 3,072 µs jeopardy.json: 64,089 µs">
|
||||
<rect class="nj-heat-2" x="317" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="390" text-anchor="middle">1.96</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · select 6.87× the time of the fastest library (fully validating) twitter.json: 1,360 µs · structs (from_json) citm_catalog.json: 2,416 µs · parse canada.json: 6,047 µs · structs (from_json) jeopardy.json: 179,533 µs · parse">
|
||||
<rect class="nj-heat-4" x="409" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="390" text-anchor="middle">6.87</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · edit 3.73× the time of the fastest library (fully validating) twitter.json: 1,273 µs · ordered_json citm_catalog.json: 2,344 µs · ordered_json canada.json: 8,334 µs · parse jeopardy.json: 203,232 µs · ordered_json">
|
||||
<rect class="nj-heat-3" x="501" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="390" text-anchor="middle">3.73</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · minify 4.89× the time of the fastest library (fully validating) way: parse + dump twitter.json: 1,600 µs citm_catalog.json: 2,706 µs canada.json: 8,389 µs jeopardy.json: 197,745 µs">
|
||||
<rect class="nj-heat-3" x="593" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="390" text-anchor="middle">4.89</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · write 2.10× the time of the fastest library (fully validating) way: dump twitter.json: 223 µs citm_catalog.json: 287 µs canada.json: 2,276 µs jeopardy.json: 31,825 µs">
|
||||
<rect class="nj-heat-2" x="685" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="390" text-anchor="middle">2.10</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · write 2.90× the time of the fastest library (fully validating) way: Value twitter.json: 322 µs citm_catalog.json: 490 µs canada.json: 2,286 µs jeopardy.json: 49,967 µs">
|
||||
<rect class="nj-heat-3" x="685" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="390" text-anchor="middle">2.90</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="426" text-anchor="end">RapidJSON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate 4.72× the time of the fastest library (fully validating) twitter.json: 1,307 µs · insitu (copy untimed) citm_catalog.json: 1,397 µs · S​AX (string stream, default precision) canada.json: 1,982 µs · S​AX (string stream, default precision) jeopardy.json: 134,679 µs · S​AX (string stream, default precision)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate 4.67× the time of the fastest library (fully validating) twitter.json: 1,318 µs · insitu (copy) citm_catalog.json: 1,391 µs · S​AX (string stream, default precision) canada.json: 1,971 µs · S​AX (string stream, default precision) jeopardy.json: 133,695 µs · S​AX (string stream, default precision) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="426" text-anchor="middle">4.72</text>
|
||||
<text class="nj-charts-cell" x="247.5" y="426" text-anchor="middle">4.67</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate, checking less 3.09× the time of the fastest fully validating library twitter.json: 686 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,032 µs · S​AX (string stream, default precision) (no encoding check) canada.json: 1,982 µs · S​AX (string stream, default precision) (validates fully) jeopardy.json: 63,589 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate, checking less 3.09× the time of the fastest fully validating library twitter.json: 706 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,033 µs · S​AX (string stream, default precision) (no encoding check) canada.json: 1,971 µs · S​AX (string stream, default precision) (validates fully) jeopardy.json: 64,732 µs · insitu (copy) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="271" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="420" text-anchor="middle">3.09</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum 4.15× the time of the fastest library (fully validating) twitter.json: 1,329 µs · S​AX citm_catalog.json: 1,455 µs · S​AX (string stream) canada.json: 6,453 µs · S​AX (string stream) jeopardy.json: 136,103 µs · S​AX (string stream)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum 4.18× the time of the fastest library (fully validating) twitter.json: 1,332 µs · S​AX citm_catalog.json: 1,472 µs · S​AX (string stream) canada.json: 6,448 µs · S​AX (string stream) jeopardy.json: 136,330 µs · S​AX (string stream)">
|
||||
<rect class="nj-heat-3" x="317" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="339.5" y="426" text-anchor="middle">4.15</text>
|
||||
<text class="nj-charts-cell" x="339.5" y="426" text-anchor="middle">4.18</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum, checking less 2.85× the time of the fastest fully validating library twitter.json: 735 µs · S​AX (string stream) (no encoding check) citm_catalog.json: 1,136 µs · S​AX (string stream) (no encoding check) canada.json: 6,453 µs · S​AX (string stream) (validates fully) jeopardy.json: 69,604 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum, checking less 2.89× the time of the fastest fully validating library twitter.json: 738 µs · S​AX (string stream) (no encoding check) citm_catalog.json: 1,157 µs · S​AX (string stream) (no encoding check) canada.json: 6,432 µs · S​AX (string stream) (no encoding check) jeopardy.json: 71,646 µs · insitu (copy) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="363" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="384.5" y="420" text-anchor="middle">2.85</text>
|
||||
<text class="nj-charts-cell" x="384.5" y="420" text-anchor="middle">2.89</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="384.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select 5.91× the time of the fastest library (fully validating) twitter.json: 1,304 µs · insitu (copy untimed) citm_catalog.json: 1,554 µs · insitu (copy untimed) canada.json: 6,776 µs · Document (string stream) jeopardy.json: 141,509 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select 6.02× the time of the fastest library (fully validating) twitter.json: 1,314 µs · insitu (copy) citm_catalog.json: 1,578 µs · insitu (copy) canada.json: 6,814 µs · Document (string stream) jeopardy.json: 144,649 µs · insitu (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-4" x="409" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="426" text-anchor="middle">5.91</text>
|
||||
<text class="nj-charts-cell" x="431.5" y="426" text-anchor="middle">6.02</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select, checking less 3.82× the time of the fastest fully validating library twitter.json: 679 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,126 µs · insitu (copy untimed) (no encoding check) canada.json: 6,776 µs · Document (string stream) (validates fully) jeopardy.json: 65,625 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select, checking less 3.93× the time of the fastest fully validating library twitter.json: 701 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,166 µs · insitu (copy) (no encoding check) canada.json: 6,745 µs · Document (string stream) (no encoding check) jeopardy.json: 67,617 µs · insitu (copy) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="455" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="420" text-anchor="middle">3.82</text>
|
||||
<text class="nj-charts-cell" x="476.5" y="420" text-anchor="middle">3.93</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit 4.82× the time of the fastest library (fully validating) twitter.json: 1,922 µs · Document citm_catalog.json: 2,388 µs · insitu (copy untimed) canada.json: 13,836 µs · Document (string stream) jeopardy.json: 221,270 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit 4.85× the time of the fastest library (fully validating) twitter.json: 1,924 µs · Document citm_catalog.json: 2,393 µs · insitu (copy) canada.json: 13,711 µs · Document (string stream) jeopardy.json: 224,328 µs · Document (string stream) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="501" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="426" text-anchor="middle">4.82</text>
|
||||
<text class="nj-charts-cell" x="523.5" y="426" text-anchor="middle">4.85</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit, checking less 3.77× the time of the fastest fully validating library way: insitu (copy untimed) (no encoding check) twitter.json: 1,344 µs citm_catalog.json: 1,964 µs canada.json: 13,794 µs jeopardy.json: 144,741 µs trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit, checking less 3.83× the time of the fastest fully validating library twitter.json: 1,356 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,992 µs · insitu (copy) (no encoding check) canada.json: 13,711 µs · Document (string stream) (validates fully) jeopardy.json: 147,902 µs · insitu (copy) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="547" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="420" text-anchor="middle">3.77</text>
|
||||
<text class="nj-charts-cell" x="568.5" y="420" text-anchor="middle">3.83</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify 4.86× the time of the fastest library (fully validating) twitter.json: 1,525 µs · S​AX to Writer citm_catalog.json: 1,808 µs · S​AX to Writer (string stream) canada.json: 14,460 µs · Document + Writer jeopardy.json: 174,558 µs · S​AX to Writer (string stream)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify 4.85× the time of the fastest library (fully validating) twitter.json: 1,523 µs · S​AX to Writer citm_catalog.json: 1,803 µs · S​AX to Writer (string stream) canada.json: 14,378 µs · Document + Writer jeopardy.json: 174,958 µs · S​AX to Writer (string stream)">
|
||||
<rect class="nj-heat-3" x="593" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="426" text-anchor="middle">4.86</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="426" text-anchor="middle">4.85</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify, checking less 3.60× the time of the fastest fully validating library twitter.json: 1,058 µs · S​AX to Writer (string stream) (no encoding check) citm_catalog.json: 1,485 µs · S​AX to Writer (string stream) (no encoding check) canada.json: 10,908 µs · S​AX to Writer (raw numbers) (no encoding check) jeopardy.json: 123,119 µs · S​AX to Writer (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) copies each number's text instead of formatting it (kParseNumbersAsStringsFlag)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify, checking less 3.66× the time of the fastest fully validating library twitter.json: 1,044 µs · S​AX to Writer (string stream) (no encoding check) citm_catalog.json: 1,499 µs · S​AX to Writer (string stream) (no encoding check) canada.json: 11,568 µs · S​AX to Writer (raw numbers) (validates fully) jeopardy.json: 123,908 µs · S​AX to Writer (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) copies each number's text instead of formatting it (kParseNumbersAsStringsFlag)">
|
||||
<rect class="nj-heat-3" x="639" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="420" text-anchor="middle">3.60</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="420" text-anchor="middle">3.66</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="433" text-anchor="middle">U N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · write 5.88× the time of the fastest library (fully validating) way: Writer twitter.json: 603 µs citm_catalog.json: 830 µs canada.json: 6,995 µs jeopardy.json: 81,150 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · write 5.74× the time of the fastest library (fully validating) way: Writer twitter.json: 596 µs citm_catalog.json: 836 µs canada.json: 6,928 µs jeopardy.json: 80,160 µs">
|
||||
<rect class="nj-heat-4" x="685" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="426" text-anchor="middle">5.88</text>
|
||||
<text class="nj-charts-cell" x="730" y="426" text-anchor="middle">5.74</text>
|
||||
</g>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="8" y="472">time relative to the fastest fully validating library, less is better</text>
|
||||
<g><rect class="nj-heat-0" x="8" y="482" width="76" height="20" rx="3"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 46 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--blog nj-charts--heat" viewBox="0 0 784 510" role="img" aria-labelledby="nj-blog-uc-x86-clang nj-blog-uc-x86-clang-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-uc-x86-clang">Use cases: time of each library relative to the fastest, x86-64 with Clang 23</title>
|
||||
<desc id="nj-blog-uc-x86-clang-d">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.</desc>
|
||||
<desc id="nj-blog-uc-x86-clang-d">Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.05; 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.71 doing less, N); yyjson validate: 2.21; yyjson sum: 1.23; yyjson select: 1.40; yyjson edit: 1.48; yyjson minify: 1.27 (1.09 doing less, N); yyjson write: 1.16; sonic-cpp validate: no fully validating way (2.32 doing less, U); sonic-cpp sum: no fully validating way (1.26 doing less, U); sonic-cpp select: no fully validating way (1.50 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.33; simdjson validate: 2.06; simdjson sum: 1.19; simdjson select: 1.33 (0.56 doing less, P); simdjson edit: n/a; simdjson minify: 1.55 (0.18 doing less, P); simdjson write: 2.07; sonic-rs (Rust) validate: 1.90; sonic-rs (Rust) sum: 1.13; sonic-rs (Rust) select: 1.37; sonic-rs (Rust) edit: 1.90; sonic-rs (Rust) minify: 1.75; sonic-rs (Rust) write: 2.01; Boost.J​SON validate: 1.80; Boost.J​SON sum: 1.17; Boost.J​SON select: 2.19; Boost.J​SON edit: 2.37; Boost.J​SON minify: 2.65; Boost.J​SON write: 2.38; nlohmann/json json validate: 1.43; nlohmann/json json sum: 1.00; nlohmann/json json select: 6.54; nlohmann/json json edit: 3.53; nlohmann/json json minify: 4.31; nlohmann/json json write: 1.88; simd-json (Rust) validate: 3.57; simd-json (Rust) sum: 1.91; simd-json (Rust) select: 2.61; simd-json (Rust) edit: 2.88; simd-json (Rust) minify: 3.43; simd-json (Rust) write: 2.28; serde_json (Rust) validate: 2.36 (2.11 doing less, U); serde_json (Rust) sum: 2.35; serde_json (Rust) select: 1.75; serde_json (Rust) edit: 4.53; serde_json (Rust) minify: 4.99; serde_json (Rust) write: 2.22; Glaze validate: 2.24; Glaze sum: 4.24 (3.96 doing less, P); Glaze select: 1.39 (0.61 doing less, P); Glaze edit: 5.50; Glaze minify: 5.78 (0.69 doing less, P); Glaze write: 1.95; RapidJSON validate: 5.18 (3.77 doing less, U); RapidJSON sum: 3.25 (2.40 doing less, U); RapidJSON select: 4.45 (3.45 doing less, U); RapidJSON edit: 3.16 (2.68 doing less, U); RapidJSON minify: 3.43 (2.57 doing less, U N); RapidJSON write: 2.86.</desc>
|
||||
<text class="nj-charts-tick" x="270" y="34">validate</text>
|
||||
<text class="nj-charts-tick" x="362" y="34">sum</text>
|
||||
<text class="nj-charts-tick" x="454" y="34">select</text>
|
||||
@@ -8,359 +8,359 @@
|
||||
<text class="nj-charts-tick" x="638" y="34">minify</text>
|
||||
<text class="nj-charts-tick" x="730" y="34">write</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="66" text-anchor="end">nlohmann/json json_document</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · validate 1.00× the time of the fastest library (fully validating) way: accept twitter.json: 255 µs citm_catalog.json: 512 µs canada.json: 1,055 µs jeopardy.json: 34,729 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · validate 1.00× the time of the fastest library (fully validating) way: accept twitter.json: 250 µs citm_catalog.json: 509 µs canada.json: 1,032 µs jeopardy.json: 34,454 µs">
|
||||
<rect class="nj-heat-0" x="225" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · sum 1.00× the time of the fastest library (fully validating) way: parse twitter.json: 374 µs citm_catalog.json: 923 µs canada.json: 3,846 µs jeopardy.json: 85,286 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · sum 1.05× the time of the fastest library (fully validating) way: parse twitter.json: 366 µs citm_catalog.json: 941 µs canada.json: 3,680 µs jeopardy.json: 86,966 µs">
|
||||
<rect class="nj-heat-0" x="317" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="66" text-anchor="middle">1.00</text>
|
||||
<text class="nj-charts-cell" x="362" y="66" text-anchor="middle">1.05</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · select 1.00× the time of the fastest library (fully validating) twitter.json: 320 µs · parse citm_catalog.json: 759 µs · parse canada.json: 1,390 µs · structs (from_json) jeopardy.json: 88,083 µs · parse">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · select 1.00× the time of the fastest library (fully validating) twitter.json: 316 µs · structs (from_json) citm_catalog.json: 783 µs · parse canada.json: 1,368 µs · structs (from_json) jeopardy.json: 91,736 µs · parse">
|
||||
<rect class="nj-heat-0" x="409" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit 1.00× the time of the fastest library (fully validating) way: editable twitter.json: 526 µs citm_catalog.json: 1,127 µs canada.json: 5,674 µs jeopardy.json: 196,370 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit 1.00× the time of the fastest library (fully validating) way: editable twitter.json: 519 µs citm_catalog.json: 1,152 µs canada.json: 5,671 µs jeopardy.json: 195,716 µs">
|
||||
<rect class="nj-heat-0" x="501" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit, checking less 0.81× the time of the fastest fully validating library twitter.json: 526 µs · editable (validates fully) citm_catalog.json: 1,127 µs · editable (validates fully) canada.json: 2,443 µs · editable (source numbers) (validates fully) jeopardy.json: 196,370 µs · editable (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit, checking less 0.81× the time of the fastest fully validating library twitter.json: 518 µs · editable (source numbers) (validates fully) citm_catalog.json: 1,152 µs · editable (validates fully) canada.json: 2,502 µs · editable (source numbers) (validates fully) jeopardy.json: 195,716 µs · editable (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="547" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="60" text-anchor="middle">0.81</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify 1.00× the time of the fastest library (fully validating) way: parse + dump twitter.json: 518 µs citm_catalog.json: 1,040 µs canada.json: 5,043 µs jeopardy.json: 146,125 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify 1.00× the time of the fastest library (fully validating) way: parse + dump twitter.json: 472 µs citm_catalog.json: 1,055 µs canada.json: 5,041 µs jeopardy.json: 149,143 µs">
|
||||
<rect class="nj-heat-0" x="593" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify, checking less 0.83× the time of the fastest fully validating library twitter.json: 518 µs · parse + dump (validates fully) citm_catalog.json: 1,030 µs · parse + dump (source numbers) (validates fully) canada.json: 2,456 µs · parse + dump (source numbers) (validates fully) jeopardy.json: 146,125 µs · parse + dump (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify, checking less 0.83× the time of the fastest fully validating library twitter.json: 467 µs · parse + dump (source numbers) (validates fully) citm_catalog.json: 1,055 µs · parse + dump (validates fully) canada.json: 2,363 µs · parse + dump (source numbers) (validates fully) jeopardy.json: 149,143 µs · parse + dump (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="639" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="60" text-anchor="middle">0.83</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write 1.00× the time of the fastest library (fully validating) way: dump twitter.json: 160 µs citm_catalog.json: 311 µs canada.json: 3,714 µs jeopardy.json: 67,038 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write 1.00× the time of the fastest library (fully validating) way: dump twitter.json: 158 µs citm_catalog.json: 279 µs canada.json: 3,637 µs jeopardy.json: 67,366 µs">
|
||||
<rect class="nj-heat-0" x="685" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="707.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write, checking less 0.69× the time of the fastest fully validating library way: dump (source numbers) twitter.json: 154 µs (validates fully) citm_catalog.json: 279 µs (validates fully) canada.json: 989 µs (validates fully) jeopardy.json: 64,301 µs (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write, checking less 0.71× the time of the fastest fully validating library twitter.json: 153 µs · dump (source numbers) (validates fully) citm_catalog.json: 276 µs · dump (source numbers) (validates fully) canada.json: 982 µs · dump (source numbers) (validates fully) jeopardy.json: 67,366 µs · dump (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="731" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="752.5" y="60" text-anchor="middle">0.69</text>
|
||||
<text class="nj-charts-cell" x="752.5" y="60" text-anchor="middle">0.71</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="752.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="102" text-anchor="end">yyjson</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · validate 1.87× the time of the fastest library (fully validating) twitter.json: 334 µs · insitu (copy untimed) citm_catalog.json: 811 µs · insitu (copy untimed) canada.json: 2,580 µs · read (raw numbers) jeopardy.json: 83,153 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · validate 2.21× the time of the fastest library (fully validating) twitter.json: 383 µs · read citm_catalog.json: 887 µs · read canada.json: 2,572 µs · read (raw numbers) jeopardy.json: 123,640 µs · read (raw numbers)">
|
||||
<rect class="nj-heat-2" x="225" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="102" text-anchor="middle">1.87</text>
|
||||
<text class="nj-charts-cell" x="270" y="102" text-anchor="middle">2.21</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · sum 1.00× the time of the fastest library (fully validating) way: insitu (copy untimed) twitter.json: 399 µs citm_catalog.json: 946 µs canada.json: 3,445 µs jeopardy.json: 88,447 µs">
|
||||
<rect class="nj-heat-0" x="317" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="102" text-anchor="middle">1.00</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · sum 1.23× the time of the fastest library (fully validating) twitter.json: 436 µs · read citm_catalog.json: 1,048 µs · insitu (copy) canada.json: 3,454 µs · read jeopardy.json: 133,577 µs · read (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="317" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="102" text-anchor="middle">1.23</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · select 1.23× the time of the fastest library (fully validating) twitter.json: 351 µs · insitu (copy untimed) citm_catalog.json: 788 µs · insitu (copy untimed) canada.json: 2,632 µs · read (raw numbers) jeopardy.json: 92,551 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · select 1.40× the time of the fastest library (fully validating) twitter.json: 386 µs · insitu (copy) citm_catalog.json: 891 µs · insitu (copy) canada.json: 2,572 µs · read (raw numbers) jeopardy.json: 135,813 µs · insitu (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="409" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="102" text-anchor="middle">1.23</text>
|
||||
<text class="nj-charts-cell" x="454" y="102" text-anchor="middle">1.40</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · edit 1.43× the time of the fastest library (fully validating) twitter.json: 918 µs · insitu (copy) + mut copy citm_catalog.json: 1,548 µs · insitu (copy untimed) + mut copy canada.json: 7,155 µs · insitu (copy untimed) + mut copy jeopardy.json: 270,654 µs · insitu (copy untimed) + mut copy (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · edit 1.48× the time of the fastest library (fully validating) twitter.json: 833 µs · mut copy citm_catalog.json: 1,674 µs · mut copy canada.json: 7,249 µs · mut copy jeopardy.json: 316,652 µs · insitu (copy) + mut copy (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="501" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="102" text-anchor="middle">1.43</text>
|
||||
<text class="nj-charts-cell" x="546" y="102" text-anchor="middle">1.48</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify 1.16× the time of the fastest library (fully validating) way: insitu (copy untimed) + write twitter.json: 620 µs citm_catalog.json: 1,189 µs canada.json: 6,283 µs jeopardy.json: 154,016 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify 1.27× the time of the fastest library (fully validating) way: read + write twitter.json: 626 µs citm_catalog.json: 1,261 µs canada.json: 6,179 µs jeopardy.json: 200,886 µs">
|
||||
<rect class="nj-heat-1" x="593" y="81" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="102" text-anchor="middle">1.16</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="102" text-anchor="middle">1.27</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify, checking less 1.00× the time of the fastest fully validating library twitter.json: 620 µs · insitu (copy untimed) + write (validates fully) citm_catalog.json: 1,189 µs · insitu (copy untimed) + write (validates fully) canada.json: 3,472 µs · read (raw numbers) + write (validates fully) jeopardy.json: 154,016 µs · insitu (copy untimed) + write (validates fully) copies each number's text instead of formatting it (YYJSON_READ_NUMBER_AS_RAW)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify, checking less 1.09× the time of the fastest fully validating library twitter.json: 626 µs · read + write (validates fully) citm_catalog.json: 1,236 µs · read (raw numbers) + write (validates fully) canada.json: 3,426 µs · read (raw numbers) + write (validates fully) jeopardy.json: 197,700 µs · read (raw numbers) + write (validates fully) copies each number's text instead of formatting it (YYJSON_READ_NUMBER_AS_RAW)">
|
||||
<rect class="nj-heat-0" x="639" y="81" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="96" text-anchor="middle">1.00</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="96" text-anchor="middle">1.09</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="109" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · write 1.14× the time of the fastest library (fully validating) way: write twitter.json: 218 µs citm_catalog.json: 386 µs canada.json: 3,476 µs jeopardy.json: 71,247 µs">
|
||||
<rect class="nj-heat-0" x="685" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="102" text-anchor="middle">1.14</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · write 1.16× the time of the fastest library (fully validating) way: write twitter.json: 216 µs citm_catalog.json: 367 µs canada.json: 3,366 µs jeopardy.json: 73,272 µs">
|
||||
<rect class="nj-heat-1" x="685" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="102" text-anchor="middle">1.16</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="138" text-anchor="end">sonic-cpp</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · validate, checking less 2.32× the time of the fastest fully validating library way: Document twitter.json: 448 µs citm_catalog.json: 1,032 µs canada.json: 3,143 µs jeopardy.json: 94,884 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · validate, checking less 2.32× the time of the fastest fully validating library way: Document twitter.json: 451 µs citm_catalog.json: 998 µs canada.json: 3,031 µs jeopardy.json: 95,823 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="225" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="132" text-anchor="middle">2.32</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="270" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · sum, checking less 1.20× the time of the fastest fully validating library way: Document twitter.json: 502 µs citm_catalog.json: 1,175 µs canada.json: 3,754 µs jeopardy.json: 104,583 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · sum, checking less 1.26× the time of the fastest fully validating library way: Document twitter.json: 504 µs citm_catalog.json: 1,176 µs canada.json: 3,701 µs jeopardy.json: 104,509 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="317" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="132" text-anchor="middle">1.20</text>
|
||||
<text class="nj-charts-cell" x="362" y="132" text-anchor="middle">1.26</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="362" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · select, checking less 1.53× the time of the fastest fully validating library way: Document twitter.json: 460 µs citm_catalog.json: 1,011 µs canada.json: 3,204 µs jeopardy.json: 108,245 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="409" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="132" text-anchor="middle">1.53</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · select, checking less 1.50× the time of the fastest fully validating library way: Document twitter.json: 454 µs citm_catalog.json: 1,015 µs canada.json: 3,025 µs jeopardy.json: 112,621 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="409" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="132" text-anchor="middle">1.50</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="454" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · edit, checking less 1.24× the time of the fastest fully validating library way: Document twitter.json: 711 µs citm_catalog.json: 1,472 µs canada.json: 7,996 µs jeopardy.json: 183,852 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · edit, checking less 1.21× the time of the fastest fully validating library way: Document twitter.json: 642 µs citm_catalog.json: 1,497 µs canada.json: 8,153 µs jeopardy.json: 184,321 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="501" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="132" text-anchor="middle">1.24</text>
|
||||
<text class="nj-charts-cell" x="546" y="132" text-anchor="middle">1.21</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="546" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · minify, checking less 1.38× the time of the fastest fully validating library way: Document + Serialize twitter.json: 710 µs citm_catalog.json: 1,485 µs canada.json: 8,122 µs jeopardy.json: 166,935 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · minify, checking less 1.36× the time of the fastest fully validating library way: Document + Serialize twitter.json: 655 µs citm_catalog.json: 1,474 µs canada.json: 7,856 µs jeopardy.json: 169,992 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="593" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="132" text-anchor="middle">1.38</text>
|
||||
<text class="nj-charts-cell" x="638" y="132" text-anchor="middle">1.36</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="638" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · write 1.28× the time of the fastest library (fully validating) way: Serialize twitter.json: 224 µs citm_catalog.json: 475 µs canada.json: 4,850 µs jeopardy.json: 65,131 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · write 1.33× the time of the fastest library (fully validating) way: Serialize twitter.json: 228 µs citm_catalog.json: 474 µs canada.json: 4,766 µs jeopardy.json: 66,619 µs">
|
||||
<rect class="nj-heat-1" x="685" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="138" text-anchor="middle">1.28</text>
|
||||
<text class="nj-charts-cell" x="730" y="138" text-anchor="middle">1.33</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="174" text-anchor="end">simdjson</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · validate 2.03× the time of the fastest library (fully validating) way: D​OM twitter.json: 306 µs citm_catalog.json: 732 µs canada.json: 3,206 µs jeopardy.json: 113,452 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · validate 2.06× the time of the fastest library (fully validating) way: D​OM twitter.json: 302 µs citm_catalog.json: 721 µs canada.json: 3,202 µs jeopardy.json: 116,859 µs">
|
||||
<rect class="nj-heat-2" x="225" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="174" text-anchor="middle">2.03</text>
|
||||
<text class="nj-charts-cell" x="270" y="174" text-anchor="middle">2.06</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · sum 1.13× the time of the fastest library (fully validating) twitter.json: 394 µs · D​OM citm_catalog.json: 977 µs · D​OM canada.json: 4,117 µs · D​OM jeopardy.json: 114,602 µs · On-Demand">
|
||||
<rect class="nj-heat-0" x="317" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="174" text-anchor="middle">1.13</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · sum 1.19× the time of the fastest library (fully validating) twitter.json: 391 µs · D​OM citm_catalog.json: 969 µs · D​OM canada.json: 4,121 µs · D​OM jeopardy.json: 116,855 µs · On-Demand">
|
||||
<rect class="nj-heat-1" x="317" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="174" text-anchor="middle">1.19</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select 1.32× the time of the fastest library (fully validating) way: D​OM twitter.json: 316 µs citm_catalog.json: 731 µs canada.json: 3,262 µs jeopardy.json: 120,808 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select 1.33× the time of the fastest library (fully validating) way: D​OM twitter.json: 318 µs citm_catalog.json: 728 µs canada.json: 3,213 µs jeopardy.json: 129,986 µs">
|
||||
<rect class="nj-heat-1" x="409" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="174" text-anchor="middle">1.32</text>
|
||||
<text class="nj-charts-cell" x="431.5" y="174" text-anchor="middle">1.33</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select, checking less 0.57× the time of the fastest fully validating library twitter.json: 181 µs · On-Demand structs citm_catalog.json: 495 µs · On-Demand canada.json: 702 µs · On-Demand jeopardy.json: 48,823 µs · On-Demand reads lazily: On-Demand reads only what you ask for and steps over the rest by matching brackets">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select, checking less 0.56× the time of the fastest fully validating library way: On-Demand twitter.json: 182 µs citm_catalog.json: 494 µs canada.json: 692 µs jeopardy.json: 50,660 µs reads lazily: On-Demand reads only what you ask for and steps over the rest by matching brackets">
|
||||
<rect class="nj-heat-0" x="455" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="168" text-anchor="middle">0.57</text>
|
||||
<text class="nj-charts-cell" x="476.5" y="168" text-anchor="middle">0.56</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="181" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · edit simdjson's documents are read-only: it has no A​PI to change a value and write the result">
|
||||
<rect class="nj-heat-na" x="501" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-tick" x="546" y="174">n/a</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify 1.58× the time of the fastest library (fully validating) way: D​OM + to_string twitter.json: 783 µs citm_catalog.json: 1,395 µs canada.json: 8,303 µs jeopardy.json: 275,007 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify 1.55× the time of the fastest library (fully validating) way: D​OM + to_string twitter.json: 706 µs citm_catalog.json: 1,411 µs canada.json: 8,125 µs jeopardy.json: 270,332 µs">
|
||||
<rect class="nj-heat-2" x="593" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="174" text-anchor="middle">1.58</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="174" text-anchor="middle">1.55</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify, checking less 0.18× the time of the fastest fully validating library way: minify twitter.json: 105 µs citm_catalog.json: 269 µs canada.json: 337 µs jeopardy.json: 45,087 µs simdjson::minify() only removes whitespace, without parsing the values">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify, checking less 0.18× the time of the fastest fully validating library way: minify twitter.json: 99.0 µs citm_catalog.json: 270 µs canada.json: 329 µs jeopardy.json: 42,546 µs simdjson::minify() only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="168" text-anchor="middle">0.18</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="181" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · write 2.00× the time of the fastest library (fully validating) way: to_string twitter.json: 389 µs citm_catalog.json: 656 µs canada.json: 4,896 µs jeopardy.json: 157,616 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · write 2.07× the time of the fastest library (fully validating) way: to_string twitter.json: 382 µs citm_catalog.json: 661 µs canada.json: 4,787 µs jeopardy.json: 162,220 µs">
|
||||
<rect class="nj-heat-2" x="685" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="174" text-anchor="middle">2.00</text>
|
||||
<text class="nj-charts-cell" x="730" y="174" text-anchor="middle">2.07</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="210" text-anchor="end">sonic-rs (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · validate 1.88× the time of the fastest library (fully validating) way: IgnoredAny twitter.json: 501 µs citm_catalog.json: 970 µs canada.json: 2,249 µs jeopardy.json: 54,369 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · validate 1.90× the time of the fastest library (fully validating) way: IgnoredAny twitter.json: 501 µs citm_catalog.json: 970 µs canada.json: 2,249 µs jeopardy.json: 54,369 µs">
|
||||
<rect class="nj-heat-2" x="225" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="210" text-anchor="middle">1.88</text>
|
||||
<text class="nj-charts-cell" x="270" y="210" text-anchor="middle">1.90</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · sum 1.07× the time of the fastest library (fully validating) way: visitor twitter.json: 501 µs citm_catalog.json: 1,123 µs canada.json: 4,397 µs jeopardy.json: 59,583 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · sum 1.13× the time of the fastest library (fully validating) way: visitor twitter.json: 501 µs citm_catalog.json: 1,123 µs canada.json: 4,397 µs jeopardy.json: 59,583 µs">
|
||||
<rect class="nj-heat-0" x="317" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="210" text-anchor="middle">1.07</text>
|
||||
<text class="nj-charts-cell" x="362" y="210" text-anchor="middle">1.13</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · select 1.39× the time of the fastest library (fully validating) way: structs twitter.json: 504 µs citm_catalog.json: 1,033 µs canada.json: 2,328 µs jeopardy.json: 90,486 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · select 1.37× the time of the fastest library (fully validating) way: structs twitter.json: 504 µs citm_catalog.json: 1,033 µs canada.json: 2,328 µs jeopardy.json: 90,486 µs">
|
||||
<rect class="nj-heat-1" x="409" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="210" text-anchor="middle">1.39</text>
|
||||
<text class="nj-charts-cell" x="454" y="210" text-anchor="middle">1.37</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · edit 1.90× the time of the fastest library (fully validating) way: Value twitter.json: 1,197 µs citm_catalog.json: 2,389 µs canada.json: 7,744 µs jeopardy.json: 390,952 µs">
|
||||
<rect class="nj-heat-2" x="501" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="210" text-anchor="middle">1.90</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · minify 1.73× the time of the fastest library (fully validating) way: Value twitter.json: 1,000 µs citm_catalog.json: 2,097 µs canada.json: 7,795 µs jeopardy.json: 215,280 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · minify 1.75× the time of the fastest library (fully validating) way: Value twitter.json: 1,000 µs citm_catalog.json: 2,097 µs canada.json: 7,795 µs jeopardy.json: 215,280 µs">
|
||||
<rect class="nj-heat-2" x="593" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="210" text-anchor="middle">1.73</text>
|
||||
<text class="nj-charts-cell" x="638" y="210" text-anchor="middle">1.75</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · write 1.94× the time of the fastest library (fully validating) way: Value twitter.json: 434 µs citm_catalog.json: 927 µs canada.json: 3,987 µs jeopardy.json: 109,176 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · write 2.01× the time of the fastest library (fully validating) way: Value twitter.json: 434 µs citm_catalog.json: 927 µs canada.json: 3,987 µs jeopardy.json: 109,176 µs">
|
||||
<rect class="nj-heat-2" x="685" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="210" text-anchor="middle">1.94</text>
|
||||
<text class="nj-charts-cell" x="730" y="210" text-anchor="middle">2.01</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="246" text-anchor="end">Boost.J​SON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · validate 1.79× the time of the fastest library (fully validating) way: S​AX (numbers: none) twitter.json: 571 µs citm_catalog.json: 910 µs canada.json: 1,684 µs jeopardy.json: 55,498 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · validate 1.80× the time of the fastest library (fully validating) twitter.json: 570 µs · S​AX (numbers: none) citm_catalog.json: 903 µs · S​AX (numbers: none) canada.json: 1,678 µs · S​AX (numbers: none) jeopardy.json: 55,087 µs · S​AX">
|
||||
<rect class="nj-heat-2" x="225" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="246" text-anchor="middle">1.79</text>
|
||||
<text class="nj-charts-cell" x="270" y="246" text-anchor="middle">1.80</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · sum 1.12× the time of the fastest library (fully validating) way: S​AX twitter.json: 580 µs citm_catalog.json: 928 µs canada.json: 5,809 µs jeopardy.json: 56,774 µs">
|
||||
<rect class="nj-heat-0" x="317" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="246" text-anchor="middle">1.12</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · sum 1.17× the time of the fastest library (fully validating) way: S​AX twitter.json: 580 µs citm_catalog.json: 928 µs canada.json: 5,715 µs jeopardy.json: 55,874 µs">
|
||||
<rect class="nj-heat-1" x="317" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="246" text-anchor="middle">1.17</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · select 2.24× the time of the fastest library (fully validating) twitter.json: 776 µs · parse_into structs citm_catalog.json: 1,389 µs · parse_into structs canada.json: 7,121 µs · parse jeopardy.json: 97,681 µs · parse_into structs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · select 2.19× the time of the fastest library (fully validating) twitter.json: 760 µs · parse_into structs citm_catalog.json: 1,388 µs · parse_into structs canada.json: 7,026 µs · parse jeopardy.json: 97,008 µs · parse_into structs">
|
||||
<rect class="nj-heat-2" x="409" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="246" text-anchor="middle">2.24</text>
|
||||
<text class="nj-charts-cell" x="454" y="246" text-anchor="middle">2.19</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · edit 2.39× the time of the fastest library (fully validating) way: parse twitter.json: 1,855 µs citm_catalog.json: 2,596 µs canada.json: 12,765 µs jeopardy.json: 350,286 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · edit 2.37× the time of the fastest library (fully validating) way: parse twitter.json: 1,716 µs citm_catalog.json: 2,578 µs canada.json: 13,427 µs jeopardy.json: 354,510 µs">
|
||||
<rect class="nj-heat-2" x="501" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="246" text-anchor="middle">2.39</text>
|
||||
<text class="nj-charts-cell" x="546" y="246" text-anchor="middle">2.37</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · minify 2.68× the time of the fastest library (fully validating) way: parse + serialize twitter.json: 1,924 µs citm_catalog.json: 2,569 µs canada.json: 12,622 µs jeopardy.json: 329,090 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · minify 2.65× the time of the fastest library (fully validating) way: parse + serialize twitter.json: 1,722 µs citm_catalog.json: 2,573 µs canada.json: 12,678 µs jeopardy.json: 330,878 µs">
|
||||
<rect class="nj-heat-3" x="593" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="246" text-anchor="middle">2.68</text>
|
||||
<text class="nj-charts-cell" x="638" y="246" text-anchor="middle">2.65</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · write 2.31× the time of the fastest library (fully validating) way: serialize twitter.json: 478 µs citm_catalog.json: 916 µs canada.json: 5,615 µs jeopardy.json: 141,846 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · write 2.38× the time of the fastest library (fully validating) way: serialize twitter.json: 478 µs citm_catalog.json: 913 µs canada.json: 5,610 µs jeopardy.json: 141,994 µs">
|
||||
<rect class="nj-heat-2" x="685" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="246" text-anchor="middle">2.31</text>
|
||||
<text class="nj-charts-cell" x="730" y="246" text-anchor="middle">2.38</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="282" text-anchor="end">simd-json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · validate 3.52× the time of the fastest library (fully validating) way: tape (copy) twitter.json: 567 µs citm_catalog.json: 1,430 µs canada.json: 4,359 µs jeopardy.json: 207,551 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="282" text-anchor="middle">3.52</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="282" text-anchor="end">nlohmann/json json</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · validate 1.43× the time of the fastest library (fully validating) way: accept twitter.json: 335 µs citm_catalog.json: 711 µs canada.json: 2,018 µs jeopardy.json: 39,513 µs">
|
||||
<rect class="nj-heat-1" x="225" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="282" text-anchor="middle">1.43</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · sum 1.80× the time of the fastest library (fully validating) way: visitor (copy) twitter.json: 681 µs citm_catalog.json: 1,650 µs canada.json: 5,083 µs jeopardy.json: 210,185 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="317" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="282" text-anchor="middle">1.80</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · sum 1.00× the time of the fastest library (fully validating) way: sax twitter.json: 431 µs citm_catalog.json: 914 µs canada.json: 3,824 µs jeopardy.json: 60,439 µs">
|
||||
<rect class="nj-heat-0" x="317" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="282" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · select 2.64× the time of the fastest library (fully validating) way: structs (copy) twitter.json: 679 µs citm_catalog.json: 1,731 µs canada.json: 5,144 µs jeopardy.json: 239,164 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="282" text-anchor="middle">2.64</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · select 6.54× the time of the fastest library (fully validating) way: parse twitter.json: 3,181 µs citm_catalog.json: 4,583 µs canada.json: 9,599 µs jeopardy.json: 405,734 µs">
|
||||
<rect class="nj-heat-4" x="409" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="282" text-anchor="middle">6.54</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · edit 3.53× the time of the fastest library (fully validating) twitter.json: 2,452 µs · ordered_json citm_catalog.json: 4,402 µs · ordered_json canada.json: 14,765 µs · parse jeopardy.json: 646,489 µs · ordered_json">
|
||||
<rect class="nj-heat-3" x="501" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="282" text-anchor="middle">3.53</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · minify 4.31× the time of the fastest library (fully validating) way: parse + dump twitter.json: 3,525 µs citm_catalog.json: 5,178 µs canada.json: 14,024 µs jeopardy.json: 506,705 µs">
|
||||
<rect class="nj-heat-3" x="593" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="282" text-anchor="middle">4.31</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · write 1.88× the time of the fastest library (fully validating) way: dump twitter.json: 438 µs citm_catalog.json: 599 µs canada.json: 4,458 µs jeopardy.json: 116,318 µs">
|
||||
<rect class="nj-heat-2" x="685" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="282" text-anchor="middle">1.88</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="318" text-anchor="end">simd-json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · validate 3.57× the time of the fastest library (fully validating) way: tape (copy) twitter.json: 567 µs citm_catalog.json: 1,430 µs canada.json: 4,359 µs jeopardy.json: 207,551 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="318" text-anchor="middle">3.57</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · sum 1.91× the time of the fastest library (fully validating) way: visitor (copy) twitter.json: 681 µs citm_catalog.json: 1,650 µs canada.json: 5,083 µs jeopardy.json: 210,185 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="317" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="318" text-anchor="middle">1.91</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · select 2.61× the time of the fastest library (fully validating) way: structs (copy) twitter.json: 679 µs citm_catalog.json: 1,731 µs canada.json: 5,144 µs jeopardy.json: 239,164 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="318" text-anchor="middle">2.61</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · edit 2.88× the time of the fastest library (fully validating) twitter.json: 1,862 µs · borrowed (copy) citm_catalog.json: 4,194 µs · borrowed (copy) canada.json: 14,896 µs · owned (copy) jeopardy.json: 391,369 µs · borrowed (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="501" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="282" text-anchor="middle">2.88</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · minify 3.38× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 1,889 µs citm_catalog.json: 4,196 µs canada.json: 15,716 µs jeopardy.json: 414,377 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="593" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="282" text-anchor="middle">3.38</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · write 2.21× the time of the fastest library (fully validating) way: borrowed twitter.json: 582 µs citm_catalog.json: 800 µs canada.json: 5,147 µs jeopardy.json: 122,623 µs">
|
||||
<rect class="nj-heat-2" x="685" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="282" text-anchor="middle">2.21</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="318" text-anchor="end">serde_json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate 2.33× the time of the fastest library (fully validating) way: from_utf8 + IgnoredAny twitter.json: 624 µs citm_catalog.json: 1,440 µs canada.json: 2,406 µs jeopardy.json: 64,720 µs">
|
||||
<rect class="nj-heat-2" x="225" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="318" text-anchor="middle">2.33</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate, checking less 2.08× the time of the fastest fully validating library way: IgnoredAny twitter.json: 484 µs citm_catalog.json: 1,370 µs canada.json: 2,314 µs jeopardy.json: 58,247 µs trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="271" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="312" text-anchor="middle">2.08</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="325" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · sum 2.22× the time of the fastest library (fully validating) way: visitor twitter.json: 1,311 µs citm_catalog.json: 2,288 µs canada.json: 7,127 µs jeopardy.json: 129,497 µs">
|
||||
<rect class="nj-heat-2" x="317" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="318" text-anchor="middle">2.22</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select 1.77× the time of the fastest library (fully validating) way: from_utf8 + structs twitter.json: 701 µs citm_catalog.json: 1,532 µs canada.json: 2,529 µs jeopardy.json: 107,316 µs">
|
||||
<rect class="nj-heat-2" x="409" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="318" text-anchor="middle">1.77</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · edit 4.54× the time of the fastest library (fully validating) way: Value twitter.json: 4,042 µs citm_catalog.json: 6,586 µs canada.json: 16,631 µs jeopardy.json: 632,766 µs">
|
||||
<rect class="nj-heat-3" x="501" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="318" text-anchor="middle">4.54</text>
|
||||
<text class="nj-charts-cell" x="546" y="318" text-anchor="middle">2.88</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · minify 4.92× the time of the fastest library (fully validating) way: Value twitter.json: 4,012 µs citm_catalog.json: 6,583 µs canada.json: 17,306 µs jeopardy.json: 509,702 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · minify 3.43× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 1,889 µs citm_catalog.json: 4,196 µs canada.json: 15,716 µs jeopardy.json: 414,377 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="593" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="318" text-anchor="middle">4.92</text>
|
||||
<text class="nj-charts-cell" x="638" y="318" text-anchor="middle">3.43</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · write 2.15× the time of the fastest library (fully validating) way: Value twitter.json: 550 µs citm_catalog.json: 887 µs canada.json: 4,005 µs jeopardy.json: 134,163 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · write 2.28× the time of the fastest library (fully validating) way: borrowed twitter.json: 582 µs citm_catalog.json: 800 µs canada.json: 5,147 µs jeopardy.json: 122,623 µs">
|
||||
<rect class="nj-heat-2" x="685" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="318" text-anchor="middle">2.15</text>
|
||||
<text class="nj-charts-cell" x="730" y="318" text-anchor="middle">2.28</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="354" text-anchor="end">Glaze</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · validate 2.23× the time of the fastest library (fully validating) way: validate_json twitter.json: 588 µs citm_catalog.json: 1,431 µs canada.json: 1,867 µs jeopardy.json: 75,571 µs">
|
||||
<rect class="nj-heat-2" x="225" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="354" text-anchor="middle">2.23</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="354" text-anchor="end">serde_json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate 2.36× the time of the fastest library (fully validating) way: from_utf8 + IgnoredAny twitter.json: 624 µs citm_catalog.json: 1,440 µs canada.json: 2,406 µs jeopardy.json: 64,720 µs">
|
||||
<rect class="nj-heat-2" x="225" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="354" text-anchor="middle">2.36</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum 4.03× the time of the fastest library (fully validating) way: generic (double, strict) twitter.json: 2,427 µs citm_catalog.json: 3,972 µs canada.json: 12,165 µs jeopardy.json: 253,385 µs">
|
||||
<rect class="nj-heat-3" x="317" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="339.5" y="354" text-anchor="middle">4.03</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate, checking less 2.11× the time of the fastest fully validating library way: IgnoredAny twitter.json: 484 µs citm_catalog.json: 1,370 µs canada.json: 2,314 µs jeopardy.json: 58,247 µs trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="271" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="348" text-anchor="middle">2.11</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="361" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum, checking less 3.78× the time of the fastest fully validating library twitter.json: 2,427 µs · generic (double, strict) (validates fully) citm_catalog.json: 3,972 µs · generic (double, strict) (validates fully) canada.json: 12,165 µs · generic (double, strict) (validates fully) jeopardy.json: 196,582 µs · lazy_json reads lazily: lazy_json reads only what you ask for and steps over the rest">
|
||||
<rect class="nj-heat-3" x="363" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="384.5" y="348" text-anchor="middle">3.78</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="384.5" y="361" text-anchor="middle">P</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · sum 2.35× the time of the fastest library (fully validating) way: visitor twitter.json: 1,311 µs citm_catalog.json: 2,288 µs canada.json: 7,127 µs jeopardy.json: 129,497 µs">
|
||||
<rect class="nj-heat-2" x="317" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="354" text-anchor="middle">2.35</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select 1.43× the time of the fastest library (fully validating) way: structs (validate_skipped) twitter.json: 544 µs citm_catalog.json: 1,368 µs canada.json: 1,924 µs jeopardy.json: 85,745 µs">
|
||||
<rect class="nj-heat-1" x="409" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="354" text-anchor="middle">1.43</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select 1.75× the time of the fastest library (fully validating) way: from_utf8 + structs twitter.json: 701 µs citm_catalog.json: 1,532 µs canada.json: 2,529 µs jeopardy.json: 107,316 µs">
|
||||
<rect class="nj-heat-2" x="409" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="354" text-anchor="middle">1.75</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select, checking less 0.62× the time of the fastest fully validating library way: structs twitter.json: 345 µs citm_catalog.json: 419 µs canada.json: 444 µs jeopardy.json: 66,442 µs reads into structs and steps over fields it doesn't know without checking them (validate_skipped checks them too)">
|
||||
<rect class="nj-heat-0" x="455" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="348" text-anchor="middle">0.62</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="361" text-anchor="middle">P</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · edit 4.53× the time of the fastest library (fully validating) way: Value twitter.json: 4,042 µs citm_catalog.json: 6,586 µs canada.json: 16,631 µs jeopardy.json: 632,766 µs">
|
||||
<rect class="nj-heat-3" x="501" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="354" text-anchor="middle">4.53</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · edit 5.53× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 4,341 µs citm_catalog.json: 7,322 µs canada.json: 26,786 µs jeopardy.json: 725,881 µs">
|
||||
<rect class="nj-heat-4" x="501" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="354" text-anchor="middle">5.53</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · minify 4.99× the time of the fastest library (fully validating) way: Value twitter.json: 4,012 µs citm_catalog.json: 6,583 µs canada.json: 17,306 µs jeopardy.json: 509,702 µs">
|
||||
<rect class="nj-heat-3" x="593" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="354" text-anchor="middle">4.99</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify 5.77× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 4,132 µs citm_catalog.json: 7,465 µs canada.json: 26,962 µs jeopardy.json: 528,811 µs">
|
||||
<rect class="nj-heat-4" x="593" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="354" text-anchor="middle">5.77</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify, checking less 0.70× the time of the fastest fully validating library way: minify_json twitter.json: 444 µs citm_catalog.json: 1,059 µs canada.json: 2,222 µs jeopardy.json: 91,153 µs minify_json only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="348" text-anchor="middle">0.70</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="361" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · write 1.90× the time of the fastest library (fully validating) way: generic twitter.json: 399 µs citm_catalog.json: 748 µs canada.json: 4,220 µs jeopardy.json: 128,020 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · write 2.22× the time of the fastest library (fully validating) way: Value twitter.json: 550 µs citm_catalog.json: 887 µs canada.json: 4,005 µs jeopardy.json: 134,163 µs">
|
||||
<rect class="nj-heat-2" x="685" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="354" text-anchor="middle">1.90</text>
|
||||
<text class="nj-charts-cell" x="730" y="354" text-anchor="middle">2.22</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="390" text-anchor="end">nlohmann/json json</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · validate 2.77× the time of the fastest library (fully validating) way: accept twitter.json: 658 µs citm_catalog.json: 1,390 µs canada.json: 4,265 µs jeopardy.json: 71,982 µs">
|
||||
<rect class="nj-heat-3" x="225" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="390" text-anchor="middle">2.77</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="390" text-anchor="end">Glaze</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · validate 2.24× the time of the fastest library (fully validating) way: validate_json twitter.json: 594 µs citm_catalog.json: 1,230 µs canada.json: 2,139 µs jeopardy.json: 73,235 µs">
|
||||
<rect class="nj-heat-2" x="225" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="390" text-anchor="middle">2.24</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · sum 1.44× the time of the fastest library (fully validating) way: sax twitter.json: 728 µs citm_catalog.json: 1,393 µs canada.json: 5,428 µs jeopardy.json: 89,481 µs">
|
||||
<rect class="nj-heat-1" x="317" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="390" text-anchor="middle">1.44</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum 4.24× the time of the fastest library (fully validating) way: generic (double, strict) twitter.json: 2,374 µs citm_catalog.json: 3,982 µs canada.json: 11,930 µs jeopardy.json: 261,204 µs">
|
||||
<rect class="nj-heat-3" x="317" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="339.5" y="390" text-anchor="middle">4.24</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · select 7.56× the time of the fastest library (fully validating) twitter.json: 3,602 µs · structs (from_json) citm_catalog.json: 5,124 µs · parse canada.json: 11,831 µs · parse jeopardy.json: 444,210 µs · parse">
|
||||
<rect class="nj-heat-4" x="409" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="390" text-anchor="middle">7.56</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum, checking less 3.96× the time of the fastest fully validating library twitter.json: 2,374 µs · generic (double, strict) (validates fully) citm_catalog.json: 3,982 µs · generic (double, strict) (validates fully) canada.json: 11,921 µs · generic (double) jeopardy.json: 198,036 µs · lazy_json accepts trailing garbage after the value: Glaze's default (validate_trailing_whitespace checks it) reads lazily: lazy_json reads only what you ask for and steps over the rest">
|
||||
<rect class="nj-heat-3" x="363" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="384.5" y="384" text-anchor="middle">3.96</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="384.5" y="397" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · edit 3.99× the time of the fastest library (fully validating) twitter.json: 3,069 µs · ordered_json citm_catalog.json: 4,905 µs · ordered_json canada.json: 16,702 µs · parse jeopardy.json: 666,261 µs · ordered_json">
|
||||
<rect class="nj-heat-3" x="501" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="390" text-anchor="middle">3.99</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select 1.39× the time of the fastest library (fully validating) way: structs (validate_skipped) twitter.json: 542 µs citm_catalog.json: 1,369 µs canada.json: 1,846 µs jeopardy.json: 83,907 µs">
|
||||
<rect class="nj-heat-1" x="409" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="390" text-anchor="middle">1.39</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · minify 4.91× the time of the fastest library (fully validating) way: parse + dump twitter.json: 4,445 µs citm_catalog.json: 5,713 µs canada.json: 16,711 µs jeopardy.json: 543,033 µs">
|
||||
<rect class="nj-heat-3" x="593" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="390" text-anchor="middle">4.91</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select, checking less 0.61× the time of the fastest fully validating library way: structs twitter.json: 337 µs citm_catalog.json: 416 µs canada.json: 447 µs jeopardy.json: 68,455 µs reads into structs and steps over fields it doesn't know without checking them (validate_skipped checks them too)">
|
||||
<rect class="nj-heat-0" x="455" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="384" text-anchor="middle">0.61</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="397" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · write 1.86× the time of the fastest library (fully validating) way: dump twitter.json: 451 µs citm_catalog.json: 628 µs canada.json: 4,506 µs jeopardy.json: 116,529 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · edit 5.50× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,896 µs citm_catalog.json: 7,671 µs canada.json: 28,104 µs jeopardy.json: 723,675 µs">
|
||||
<rect class="nj-heat-4" x="501" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="390" text-anchor="middle">5.50</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify 5.78× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,801 µs citm_catalog.json: 7,482 µs canada.json: 26,932 µs jeopardy.json: 544,342 µs">
|
||||
<rect class="nj-heat-4" x="593" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="390" text-anchor="middle">5.78</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify, checking less 0.69× the time of the fastest fully validating library way: minify_json twitter.json: 422 µs citm_catalog.json: 1,051 µs canada.json: 2,140 µs jeopardy.json: 87,842 µs minify_json only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="384" text-anchor="middle">0.69</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="397" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · write 1.95× the time of the fastest library (fully validating) twitter.json: 396 µs · generic citm_catalog.json: 725 µs · generic (strict) canada.json: 4,107 µs · generic (strict) jeopardy.json: 132,573 µs · generic">
|
||||
<rect class="nj-heat-2" x="685" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="390" text-anchor="middle">1.86</text>
|
||||
<text class="nj-charts-cell" x="730" y="390" text-anchor="middle">1.95</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="426" text-anchor="end">RapidJSON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate 4.94× the time of the fastest library (fully validating) twitter.json: 1,756 µs · insitu (copy untimed) citm_catalog.json: 1,971 µs · S​AX (default precision) canada.json: 4,118 µs · S​AX (string stream, default precision) jeopardy.json: 198,915 µs · insitu (copy untimed)">
|
||||
<rect class="nj-heat-3" x="225" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="426" text-anchor="middle">4.94</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate 5.18× the time of the fastest library (fully validating) twitter.json: 1,798 µs · insitu (copy) citm_catalog.json: 1,944 µs · S​AX (default precision) canada.json: 4,019 µs · S​AX (string stream, default precision) jeopardy.json: 232,684 µs · S​AX (string stream, default precision) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-4" x="225" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="426" text-anchor="middle">5.18</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate, checking less 3.76× the time of the fastest fully validating library twitter.json: 1,132 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,572 µs · S​AX (default precision) (no encoding check) canada.json: 4,083 µs · S​AX (string stream, default precision) (no encoding check) jeopardy.json: 131,204 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate, checking less 3.77× the time of the fastest fully validating library twitter.json: 1,173 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,504 µs · S​AX (default precision) (no encoding check) canada.json: 4,019 µs · S​AX (string stream, default precision) (validates fully) jeopardy.json: 128,516 µs · S​AX (string stream, default precision) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="271" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="420" text-anchor="middle">3.76</text>
|
||||
<text class="nj-charts-cell" x="292.5" y="420" text-anchor="middle">3.77</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum 2.98× the time of the fastest library (fully validating) twitter.json: 1,816 µs · insitu (copy untimed) citm_catalog.json: 2,224 µs · S​AX canada.json: 10,719 µs · S​AX (string stream) jeopardy.json: 206,811 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum 3.25× the time of the fastest library (fully validating) twitter.json: 1,846 µs · insitu (copy) citm_catalog.json: 2,176 µs · S​AX canada.json: 10,561 µs · S​AX (string stream) jeopardy.json: 239,499 µs · S​AX (string stream) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="317" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="339.5" y="426" text-anchor="middle">2.98</text>
|
||||
<text class="nj-charts-cell" x="339.5" y="426" text-anchor="middle">3.25</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum, checking less 2.28× the time of the fastest fully validating library twitter.json: 1,187 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,765 µs · S​AX (no encoding check) canada.json: 10,719 µs · S​AX (string stream) (validates fully) jeopardy.json: 135,945 µs · S​AX (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum, checking less 2.40× the time of the fastest fully validating library twitter.json: 1,229 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,761 µs · S​AX (no encoding check) canada.json: 10,561 µs · S​AX (string stream) (validates fully) jeopardy.json: 131,510 µs · S​AX (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="363" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="384.5" y="420" text-anchor="middle">2.28</text>
|
||||
<text class="nj-charts-cell" x="384.5" y="420" text-anchor="middle">2.40</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="384.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select 4.20× the time of the fastest library (fully validating) way: insitu (copy untimed) twitter.json: 1,762 µs citm_catalog.json: 2,198 µs canada.json: 11,464 µs jeopardy.json: 209,290 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select 4.45× the time of the fastest library (fully validating) way: insitu (copy) twitter.json: 1,806 µs citm_catalog.json: 2,303 µs canada.json: 11,395 µs jeopardy.json: 257,762 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="426" text-anchor="middle">4.20</text>
|
||||
<text class="nj-charts-cell" x="431.5" y="426" text-anchor="middle">4.45</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select, checking less 3.27× the time of the fastest fully validating library twitter.json: 1,144 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,817 µs · insitu (copy untimed) (no encoding check) canada.json: 11,464 µs · insitu (copy untimed) (validates fully) jeopardy.json: 142,852 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select, checking less 3.45× the time of the fastest fully validating library twitter.json: 1,184 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,929 µs · insitu (copy) (no encoding check) canada.json: 11,261 µs · Document (string stream) (no encoding check) jeopardy.json: 171,716 µs · Document (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="455" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="420" text-anchor="middle">3.27</text>
|
||||
<text class="nj-charts-cell" x="476.5" y="420" text-anchor="middle">3.45</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit 3.06× the time of the fastest library (fully validating) twitter.json: 2,635 µs · insitu (copy) citm_catalog.json: 3,103 µs · insitu (copy untimed) canada.json: 21,139 µs · insitu (copy untimed) jeopardy.json: 333,913 µs · insitu (copy untimed) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit 3.16× the time of the fastest library (fully validating) way: insitu (copy) twitter.json: 2,478 µs citm_catalog.json: 3,261 µs canada.json: 21,686 µs jeopardy.json: 378,727 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="501" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="426" text-anchor="middle">3.06</text>
|
||||
<text class="nj-charts-cell" x="523.5" y="426" text-anchor="middle">3.16</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit, checking less 2.60× the time of the fastest fully validating library twitter.json: 1,952 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 2,728 µs · insitu (copy untimed) (no encoding check) canada.json: 21,139 µs · insitu (copy untimed) (validates fully) jeopardy.json: 267,081 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit, checking less 2.68× the time of the fastest fully validating library twitter.json: 1,842 µs · insitu (copy) (no encoding check) citm_catalog.json: 2,887 µs · insitu (copy) (no encoding check) canada.json: 21,686 µs · insitu (copy) (validates fully) jeopardy.json: 294,727 µs · Document (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="547" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="420" text-anchor="middle">2.60</text>
|
||||
<text class="nj-charts-cell" x="568.5" y="420" text-anchor="middle">2.68</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify 3.61× the time of the fastest library (fully validating) twitter.json: 2,808 µs · S​AX to Writer citm_catalog.json: 2,975 µs · S​AX to Writer canada.json: 22,589 µs · Document + Writer jeopardy.json: 358,807 µs · S​AX to Writer (string stream)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify 3.43× the time of the fastest library (fully validating) twitter.json: 2,456 µs · S​AX to Writer citm_catalog.json: 2,864 µs · S​AX to Writer canada.json: 21,753 µs · Document + Writer jeopardy.json: 338,985 µs · S​AX to Writer (string stream)">
|
||||
<rect class="nj-heat-3" x="593" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="426" text-anchor="middle">3.61</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="426" text-anchor="middle">3.43</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify, checking less 2.65× the time of the fastest fully validating library twitter.json: 2,022 µs · S​AX to Writer (raw numbers) (no encoding check) citm_catalog.json: 2,480 µs · S​AX to Writer (no encoding check) canada.json: 14,986 µs · S​AX to Writer (raw numbers) (validates fully) jeopardy.json: 261,527 µs · S​AX to Writer (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) copies each number's text instead of formatting it (kParseNumbersAsStringsFlag)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify, checking less 2.57× the time of the fastest fully validating library twitter.json: 1,794 µs · S​AX to Writer (no encoding check) citm_catalog.json: 2,444 µs · S​AX to Writer (no encoding check) canada.json: 14,707 µs · S​AX to Writer (raw numbers) (no encoding check) jeopardy.json: 252,656 µs · S​AX to Writer (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) copies each number's text instead of formatting it (kParseNumbersAsStringsFlag)">
|
||||
<rect class="nj-heat-3" x="639" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="420" text-anchor="middle">2.65</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="420" text-anchor="middle">2.57</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="433" text-anchor="middle">U N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · write 2.79× the time of the fastest library (fully validating) way: Writer twitter.json: 627 µs citm_catalog.json: 1,008 µs canada.json: 9,596 µs jeopardy.json: 123,764 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · write 2.86× the time of the fastest library (fully validating) way: Writer twitter.json: 633 µs citm_catalog.json: 960 µs canada.json: 9,388 µs jeopardy.json: 127,319 µs">
|
||||
<rect class="nj-heat-3" x="685" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="426" text-anchor="middle">2.79</text>
|
||||
<text class="nj-charts-cell" x="730" y="426" text-anchor="middle">2.86</text>
|
||||
</g>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="8" y="472">time relative to the fastest fully validating library, less is better</text>
|
||||
<g><rect class="nj-heat-0" x="8" y="482" width="76" height="20" rx="3"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--blog nj-charts--heat" viewBox="0 0 784 510" role="img" aria-labelledby="nj-blog-uc-x86-gcc nj-blog-uc-x86-gcc-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-uc-x86-gcc">Use cases: time of each library relative to the fastest, x86-64 with G​CC 16.2</title>
|
||||
<desc id="nj-blog-uc-x86-gcc-d">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.</desc>
|
||||
<desc id="nj-blog-uc-x86-gcc-d">Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.10; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00 (0.78 doing less, N); nlohmann/json json_document minify: 1.00 (0.78 doing less, N); nlohmann/json json_document write: 1.00 (0.64 doing less, N); yyjson validate: 2.23; yyjson sum: 1.31; yyjson select: 1.37; yyjson edit: 1.43; yyjson minify: 1.24 (0.99 doing less, N); yyjson write: 1.08; sonic-cpp validate: no fully validating way (2.32 doing less, U); sonic-cpp sum: no fully validating way (1.26 doing less, U); sonic-cpp select: no fully validating way (1.43 doing less, U); sonic-cpp edit: no fully validating way (1.18 doing less, U); sonic-cpp minify: no fully validating way (1.33 doing less, U); sonic-cpp write: 1.49; simdjson validate: 2.08; simdjson sum: 1.00; simdjson select: 1.29 (0.55 doing less, P); simdjson edit: n/a; simdjson minify: 1.49 (0.17 doing less, P); simdjson write: 2.09; sonic-rs (Rust) validate: 1.98; sonic-rs (Rust) sum: 1.14; sonic-rs (Rust) select: 1.36; sonic-rs (Rust) edit: 1.87; sonic-rs (Rust) minify: 1.68; sonic-rs (Rust) write: 2.05; Boost.J​SON validate: 1.98; Boost.J​SON sum: 1.29; Boost.J​SON select: 2.21; Boost.J​SON edit: 2.33; Boost.J​SON minify: 2.54; Boost.J​SON write: 2.33; nlohmann/json json validate: 1.69; nlohmann/json json sum: 1.17; nlohmann/json json select: 6.20; nlohmann/json json edit: 3.42; nlohmann/json json minify: 4.07; nlohmann/json json write: 1.84; simd-json (Rust) validate: 3.71; simd-json (Rust) sum: 1.93; simd-json (Rust) select: 2.59; simd-json (Rust) edit: 2.83; simd-json (Rust) minify: 3.30; simd-json (Rust) write: 2.34; serde_json (Rust) validate: 2.46 (2.19 doing less, U); serde_json (Rust) sum: 2.38; serde_json (Rust) select: 1.74; serde_json (Rust) edit: 4.45; serde_json (Rust) minify: 4.80; serde_json (Rust) write: 2.27; RapidJSON validate: 3.86 (3.48 doing less, U); RapidJSON sum: 2.35 (2.15 doing less, U); RapidJSON select: 3.17 (3.02 doing less, U); RapidJSON edit: 2.49 (2.40 doing less, U); RapidJSON minify: 2.58 (2.36 doing less, U N); RapidJSON write: 2.94; Glaze validate: 2.87; Glaze sum: 4.05; Glaze select: 1.71 (0.59 doing less, P); Glaze edit: 4.48; Glaze minify: 4.56 (0.75 doing less, P); Glaze write: 1.96.</desc>
|
||||
<text class="nj-charts-tick" x="270" y="34">validate</text>
|
||||
<text class="nj-charts-tick" x="362" y="34">sum</text>
|
||||
<text class="nj-charts-tick" x="454" y="34">select</text>
|
||||
@@ -8,354 +8,354 @@
|
||||
<text class="nj-charts-tick" x="638" y="34">minify</text>
|
||||
<text class="nj-charts-tick" x="730" y="34">write</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="66" text-anchor="end">nlohmann/json json_document</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · validate 1.00× the time of the fastest library (fully validating) way: accept twitter.json: 258 µs citm_catalog.json: 513 µs canada.json: 934 µs jeopardy.json: 34,514 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · validate 1.00× the time of the fastest library (fully validating) way: accept twitter.json: 254 µs citm_catalog.json: 515 µs canada.json: 892 µs jeopardy.json: 33,006 µs">
|
||||
<rect class="nj-heat-0" x="225" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · sum 1.08× the time of the fastest library (fully validating) way: parse twitter.json: 398 µs citm_catalog.json: 972 µs canada.json: 3,501 µs jeopardy.json: 89,756 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · sum 1.10× the time of the fastest library (fully validating) way: parse twitter.json: 384 µs citm_catalog.json: 1,066 µs canada.json: 3,526 µs jeopardy.json: 88,527 µs">
|
||||
<rect class="nj-heat-0" x="317" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="66" text-anchor="middle">1.08</text>
|
||||
<text class="nj-charts-cell" x="362" y="66" text-anchor="middle">1.10</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · select 1.00× the time of the fastest library (fully validating) twitter.json: 333 µs · structs (from_json) citm_catalog.json: 828 µs · parse canada.json: 1,368 µs · parse jeopardy.json: 89,876 µs · parse">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · select 1.00× the time of the fastest library (fully validating) way: parse twitter.json: 325 µs citm_catalog.json: 863 µs canada.json: 1,302 µs jeopardy.json: 87,940 µs">
|
||||
<rect class="nj-heat-0" x="409" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit 1.00× the time of the fastest library (fully validating) way: editable twitter.json: 536 µs citm_catalog.json: 1,162 µs canada.json: 5,567 µs jeopardy.json: 192,323 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit 1.00× the time of the fastest library (fully validating) way: editable twitter.json: 538 µs citm_catalog.json: 1,214 µs canada.json: 5,640 µs jeopardy.json: 193,024 µs">
|
||||
<rect class="nj-heat-0" x="501" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit, checking less 0.79× the time of the fastest fully validating library twitter.json: 530 µs · editable (source numbers) (validates fully) citm_catalog.json: 1,149 µs · editable (source numbers) (validates fully) canada.json: 2,188 µs · editable (source numbers) (validates fully) jeopardy.json: 192,323 µs · editable (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit, checking less 0.78× the time of the fastest fully validating library twitter.json: 533 µs · editable (source numbers) (validates fully) citm_catalog.json: 1,214 µs · editable (validates fully) canada.json: 2,140 µs · editable (source numbers) (validates fully) jeopardy.json: 193,024 µs · editable (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="547" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="60" text-anchor="middle">0.79</text>
|
||||
<text class="nj-charts-cell" x="568.5" y="60" text-anchor="middle">0.78</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify 1.00× the time of the fastest library (fully validating) way: parse + dump twitter.json: 518 µs citm_catalog.json: 1,045 µs canada.json: 5,240 µs jeopardy.json: 143,737 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify 1.00× the time of the fastest library (fully validating) way: parse + dump twitter.json: 478 µs citm_catalog.json: 1,152 µs canada.json: 5,209 µs jeopardy.json: 152,631 µs">
|
||||
<rect class="nj-heat-0" x="593" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify, checking less 0.80× the time of the fastest fully validating library twitter.json: 496 µs · parse + dump (source numbers) (validates fully) citm_catalog.json: 1,045 µs · parse + dump (validates fully) canada.json: 2,196 µs · parse + dump (source numbers) (validates fully) jeopardy.json: 143,206 µs · parse + dump (source numbers) (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify, checking less 0.78× the time of the fastest fully validating library way: parse + dump (source numbers) twitter.json: 467 µs (validates fully) citm_catalog.json: 1,118 µs (validates fully) canada.json: 2,150 µs (validates fully) jeopardy.json: 145,664 µs (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="639" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="60" text-anchor="middle">0.80</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="60" text-anchor="middle">0.78</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write 1.00× the time of the fastest library (fully validating) way: dump twitter.json: 156 µs citm_catalog.json: 251 µs canada.json: 3,842 µs jeopardy.json: 67,769 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write 1.00× the time of the fastest library (fully validating) way: dump twitter.json: 154 µs citm_catalog.json: 251 µs canada.json: 3,946 µs jeopardy.json: 64,776 µs">
|
||||
<rect class="nj-heat-0" x="685" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="707.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write, checking less 0.64× the time of the fastest fully validating library way: dump (source numbers) twitter.json: 140 µs (validates fully) citm_catalog.json: 230 µs (validates fully) canada.json: 823 µs (validates fully) jeopardy.json: 65,376 µs (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write, checking less 0.64× the time of the fastest fully validating library way: dump (source numbers) twitter.json: 139 µs (validates fully) citm_catalog.json: 229 µs (validates fully) canada.json: 831 µs (validates fully) jeopardy.json: 62,866 µs (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="731" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="752.5" y="60" text-anchor="middle">0.64</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="752.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="102" text-anchor="end">yyjson</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · validate 1.94× the time of the fastest library (fully validating) twitter.json: 352 µs · insitu (copy untimed) citm_catalog.json: 837 µs · insitu (copy untimed) canada.json: 2,199 µs · read (raw numbers) jeopardy.json: 93,043 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · validate 2.23× the time of the fastest library (fully validating) twitter.json: 393 µs · read citm_catalog.json: 930 µs · read (raw numbers) canada.json: 2,140 µs · read (raw numbers) jeopardy.json: 122,230 µs · insitu (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="225" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="102" text-anchor="middle">1.94</text>
|
||||
<text class="nj-charts-cell" x="270" y="102" text-anchor="middle">2.23</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · sum 1.14× the time of the fastest library (fully validating) way: insitu (copy untimed) twitter.json: 415 µs citm_catalog.json: 986 µs canada.json: 3,818 µs jeopardy.json: 97,586 µs">
|
||||
<rect class="nj-heat-0" x="317" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="102" text-anchor="middle">1.14</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · sum 1.31× the time of the fastest library (fully validating) way: read twitter.json: 445 µs citm_catalog.json: 1,093 µs canada.json: 3,948 µs jeopardy.json: 133,860 µs">
|
||||
<rect class="nj-heat-1" x="317" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="102" text-anchor="middle">1.31</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · select 1.18× the time of the fastest library (fully validating) twitter.json: 366 µs · insitu (copy untimed) citm_catalog.json: 840 µs · insitu (copy untimed) canada.json: 2,204 µs · read (raw numbers) jeopardy.json: 96,172 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · select 1.37× the time of the fastest library (fully validating) twitter.json: 402 µs · read (raw numbers) citm_catalog.json: 954 µs · read canada.json: 2,127 µs · read (raw numbers) jeopardy.json: 140,491 µs · read">
|
||||
<rect class="nj-heat-1" x="409" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="102" text-anchor="middle">1.18</text>
|
||||
<text class="nj-charts-cell" x="454" y="102" text-anchor="middle">1.37</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · edit 1.37× the time of the fastest library (fully validating) way: insitu (copy untimed) + mut copy twitter.json: 746 µs citm_catalog.json: 1,526 µs canada.json: 7,479 µs jeopardy.json: 275,025 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · edit 1.43× the time of the fastest library (fully validating) twitter.json: 786 µs · mut copy citm_catalog.json: 1,642 µs · insitu (copy) + mut copy canada.json: 7,599 µs · insitu (copy) + mut copy jeopardy.json: 303,303 µs · mut copy (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="501" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="102" text-anchor="middle">1.37</text>
|
||||
<text class="nj-charts-cell" x="546" y="102" text-anchor="middle">1.43</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify 1.17× the time of the fastest library (fully validating) twitter.json: 626 µs · insitu (copy) + write citm_catalog.json: 1,160 µs · insitu (copy untimed) + write canada.json: 6,701 µs · insitu (copy untimed) + write jeopardy.json: 156,605 µs · insitu (copy untimed) + write (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify 1.24× the time of the fastest library (fully validating) twitter.json: 610 µs · read + write citm_catalog.json: 1,277 µs · read + write canada.json: 6,630 µs · read + write jeopardy.json: 199,086 µs · insitu (copy) + write (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="593" y="81" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="102" text-anchor="middle">1.17</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="102" text-anchor="middle">1.24</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify, checking less 0.95× the time of the fastest fully validating library twitter.json: 626 µs · insitu (copy) + write (validates fully) citm_catalog.json: 1,160 µs · insitu (copy untimed) + write (validates fully) canada.json: 2,901 µs · read (raw numbers) + write (validates fully) jeopardy.json: 156,605 µs · insitu (copy untimed) + write (validates fully) copies each number's text instead of formatting it (YYJSON_READ_NUMBER_AS_RAW) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify, checking less 0.99× the time of the fastest fully validating library twitter.json: 609 µs · read (raw numbers) + write (validates fully) citm_catalog.json: 1,221 µs · read (raw numbers) + write (validates fully) canada.json: 2,860 µs · read (raw numbers) + write (validates fully) jeopardy.json: 199,086 µs · insitu (copy) + write (validates fully) copies each number's text instead of formatting it (YYJSON_READ_NUMBER_AS_RAW) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-0" x="639" y="81" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="96" text-anchor="middle">0.95</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="96" text-anchor="middle">0.99</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="109" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · write 1.11× the time of the fastest library (fully validating) way: write twitter.json: 215 µs citm_catalog.json: 319 µs canada.json: 3,360 µs jeopardy.json: 66,669 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · write 1.08× the time of the fastest library (fully validating) way: write twitter.json: 185 µs citm_catalog.json: 318 µs canada.json: 3,330 µs jeopardy.json: 67,531 µs">
|
||||
<rect class="nj-heat-0" x="685" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="102" text-anchor="middle">1.11</text>
|
||||
<text class="nj-charts-cell" x="730" y="102" text-anchor="middle">1.08</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="138" text-anchor="end">sonic-cpp</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · validate, checking less 2.32× the time of the fastest fully validating library way: Document twitter.json: 403 µs citm_catalog.json: 932 µs canada.json: 3,349 µs jeopardy.json: 98,511 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · validate, checking less 2.32× the time of the fastest fully validating library way: Document twitter.json: 404 µs citm_catalog.json: 923 µs canada.json: 3,216 µs jeopardy.json: 93,142 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="225" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="132" text-anchor="middle">2.32</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="270" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · sum, checking less 1.24× the time of the fastest fully validating library way: Document twitter.json: 456 µs citm_catalog.json: 1,115 µs canada.json: 3,980 µs jeopardy.json: 105,081 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · sum, checking less 1.26× the time of the fastest fully validating library way: Document twitter.json: 458 µs citm_catalog.json: 1,120 µs canada.json: 3,887 µs jeopardy.json: 107,494 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="317" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="132" text-anchor="middle">1.24</text>
|
||||
<text class="nj-charts-cell" x="362" y="132" text-anchor="middle">1.26</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="362" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · select, checking less 1.45× the time of the fastest fully validating library way: Document twitter.json: 407 µs citm_catalog.json: 948 µs canada.json: 3,464 µs jeopardy.json: 110,885 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · select, checking less 1.43× the time of the fastest fully validating library way: Document twitter.json: 408 µs citm_catalog.json: 942 µs canada.json: 3,166 µs jeopardy.json: 110,763 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="409" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="132" text-anchor="middle">1.45</text>
|
||||
<text class="nj-charts-cell" x="454" y="132" text-anchor="middle">1.43</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="454" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · edit, checking less 1.21× the time of the fastest fully validating library way: Document twitter.json: 620 µs citm_catalog.json: 1,438 µs canada.json: 8,495 µs jeopardy.json: 186,078 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · edit, checking less 1.18× the time of the fastest fully validating library way: Document twitter.json: 620 µs citm_catalog.json: 1,426 µs canada.json: 8,466 µs jeopardy.json: 181,035 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="501" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="132" text-anchor="middle">1.21</text>
|
||||
<text class="nj-charts-cell" x="546" y="132" text-anchor="middle">1.18</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="546" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · minify, checking less 1.36× the time of the fastest fully validating library way: Document + Serialize twitter.json: 675 µs citm_catalog.json: 1,417 µs canada.json: 8,958 µs jeopardy.json: 164,630 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · minify, checking less 1.33× the time of the fastest fully validating library way: Document + Serialize twitter.json: 636 µs citm_catalog.json: 1,498 µs canada.json: 8,354 µs jeopardy.json: 173,180 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="593" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="132" text-anchor="middle">1.36</text>
|
||||
<text class="nj-charts-cell" x="638" y="132" text-anchor="middle">1.33</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="638" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · write 1.45× the time of the fastest library (fully validating) way: Serialize twitter.json: 249 µs citm_catalog.json: 509 µs canada.json: 5,074 µs jeopardy.json: 69,916 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · write 1.49× the time of the fastest library (fully validating) way: Serialize twitter.json: 258 µs citm_catalog.json: 508 µs canada.json: 5,077 µs jeopardy.json: 72,262 µs">
|
||||
<rect class="nj-heat-1" x="685" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="138" text-anchor="middle">1.45</text>
|
||||
<text class="nj-charts-cell" x="730" y="138" text-anchor="middle">1.49</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="174" text-anchor="end">simdjson</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · validate 2.11× the time of the fastest library (fully validating) way: D​OM twitter.json: 301 µs citm_catalog.json: 695 µs canada.json: 3,337 µs jeopardy.json: 120,982 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · validate 2.08× the time of the fastest library (fully validating) way: D​OM twitter.json: 297 µs citm_catalog.json: 687 µs canada.json: 3,165 µs jeopardy.json: 111,631 µs">
|
||||
<rect class="nj-heat-2" x="225" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="174" text-anchor="middle">2.11</text>
|
||||
<text class="nj-charts-cell" x="270" y="174" text-anchor="middle">2.08</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · sum 1.00× the time of the fastest library (fully validating) way: On-Demand twitter.json: 348 µs citm_catalog.json: 805 µs canada.json: 3,452 µs jeopardy.json: 92,769 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · sum 1.00× the time of the fastest library (fully validating) way: On-Demand twitter.json: 344 µs citm_catalog.json: 809 µs canada.json: 3,405 µs jeopardy.json: 90,960 µs">
|
||||
<rect class="nj-heat-0" x="317" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="174" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select 1.27× the time of the fastest library (fully validating) way: D​OM twitter.json: 313 µs citm_catalog.json: 699 µs canada.json: 3,325 µs jeopardy.json: 122,556 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select 1.29× the time of the fastest library (fully validating) way: D​OM twitter.json: 311 µs citm_catalog.json: 698 µs canada.json: 3,141 µs jeopardy.json: 130,228 µs">
|
||||
<rect class="nj-heat-1" x="409" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="174" text-anchor="middle">1.27</text>
|
||||
<text class="nj-charts-cell" x="431.5" y="174" text-anchor="middle">1.29</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select, checking less 0.54× the time of the fastest fully validating library twitter.json: 180 µs · On-Demand citm_catalog.json: 496 µs · On-Demand (key selectors) canada.json: 690 µs · On-Demand (key selectors) jeopardy.json: 48,272 µs · On-Demand (key selectors) reads lazily: On-Demand reads only what you ask for and steps over the rest by matching brackets">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select, checking less 0.55× the time of the fastest fully validating library twitter.json: 178 µs · On-Demand citm_catalog.json: 494 µs · On-Demand (key selectors) canada.json: 674 µs · On-Demand jeopardy.json: 48,492 µs · On-Demand reads lazily: On-Demand reads only what you ask for and steps over the rest by matching brackets">
|
||||
<rect class="nj-heat-0" x="455" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="168" text-anchor="middle">0.54</text>
|
||||
<text class="nj-charts-cell" x="476.5" y="168" text-anchor="middle">0.55</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="181" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · edit simdjson's documents are read-only: it has no A​PI to change a value and write the result">
|
||||
<rect class="nj-heat-na" x="501" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-tick" x="546" y="174">n/a</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify 1.54× the time of the fastest library (fully validating) way: D​OM + to_string twitter.json: 714 µs citm_catalog.json: 1,318 µs canada.json: 9,135 µs jeopardy.json: 269,597 µs">
|
||||
<rect class="nj-heat-2" x="593" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="174" text-anchor="middle">1.54</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify 1.49× the time of the fastest library (fully validating) way: D​OM + to_string twitter.json: 666 µs citm_catalog.json: 1,354 µs canada.json: 8,606 µs jeopardy.json: 280,739 µs">
|
||||
<rect class="nj-heat-1" x="593" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="174" text-anchor="middle">1.49</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify, checking less 0.17× the time of the fastest fully validating library way: minify twitter.json: 99.9 µs citm_catalog.json: 278 µs canada.json: 312 µs jeopardy.json: 42,644 µs simdjson::minify() only removes whitespace, without parsing the values">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify, checking less 0.17× the time of the fastest fully validating library way: minify twitter.json: 93.3 µs citm_catalog.json: 279 µs canada.json: 314 µs jeopardy.json: 46,006 µs simdjson::minify() only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="168" text-anchor="middle">0.17</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="181" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · write 2.10× the time of the fastest library (fully validating) way: to_string twitter.json: 361 µs citm_catalog.json: 614 µs canada.json: 5,609 µs jeopardy.json: 158,492 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · write 2.09× the time of the fastest library (fully validating) way: to_string twitter.json: 346 µs citm_catalog.json: 610 µs canada.json: 5,580 µs jeopardy.json: 158,670 µs">
|
||||
<rect class="nj-heat-2" x="685" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="174" text-anchor="middle">2.10</text>
|
||||
<text class="nj-charts-cell" x="730" y="174" text-anchor="middle">2.09</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="210" text-anchor="end">sonic-rs (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · validate 1.93× the time of the fastest library (fully validating) way: IgnoredAny twitter.json: 501 µs citm_catalog.json: 970 µs canada.json: 2,249 µs jeopardy.json: 54,369 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · validate 1.98× the time of the fastest library (fully validating) way: IgnoredAny twitter.json: 501 µs citm_catalog.json: 970 µs canada.json: 2,249 µs jeopardy.json: 54,369 µs">
|
||||
<rect class="nj-heat-2" x="225" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="210" text-anchor="middle">1.93</text>
|
||||
<text class="nj-charts-cell" x="270" y="210" text-anchor="middle">1.98</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · sum 1.13× the time of the fastest library (fully validating) way: visitor twitter.json: 501 µs citm_catalog.json: 1,123 µs canada.json: 4,397 µs jeopardy.json: 59,583 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · sum 1.14× the time of the fastest library (fully validating) way: visitor twitter.json: 501 µs citm_catalog.json: 1,123 µs canada.json: 4,397 µs jeopardy.json: 59,583 µs">
|
||||
<rect class="nj-heat-0" x="317" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="210" text-anchor="middle">1.13</text>
|
||||
<text class="nj-charts-cell" x="362" y="210" text-anchor="middle">1.14</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · select 1.34× the time of the fastest library (fully validating) way: structs twitter.json: 504 µs citm_catalog.json: 1,033 µs canada.json: 2,328 µs jeopardy.json: 90,486 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · select 1.36× the time of the fastest library (fully validating) way: structs twitter.json: 504 µs citm_catalog.json: 1,033 µs canada.json: 2,328 µs jeopardy.json: 90,486 µs">
|
||||
<rect class="nj-heat-1" x="409" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="210" text-anchor="middle">1.34</text>
|
||||
<text class="nj-charts-cell" x="454" y="210" text-anchor="middle">1.36</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · edit 1.90× the time of the fastest library (fully validating) way: Value twitter.json: 1,197 µs citm_catalog.json: 2,389 µs canada.json: 7,744 µs jeopardy.json: 390,952 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · edit 1.87× the time of the fastest library (fully validating) way: Value twitter.json: 1,197 µs citm_catalog.json: 2,389 µs canada.json: 7,744 µs jeopardy.json: 390,952 µs">
|
||||
<rect class="nj-heat-2" x="501" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="210" text-anchor="middle">1.90</text>
|
||||
<text class="nj-charts-cell" x="546" y="210" text-anchor="middle">1.87</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · minify 1.71× the time of the fastest library (fully validating) way: Value twitter.json: 1,000 µs citm_catalog.json: 2,097 µs canada.json: 7,795 µs jeopardy.json: 215,280 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · minify 1.68× the time of the fastest library (fully validating) way: Value twitter.json: 1,000 µs citm_catalog.json: 2,097 µs canada.json: 7,795 µs jeopardy.json: 215,280 µs">
|
||||
<rect class="nj-heat-2" x="593" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="210" text-anchor="middle">1.71</text>
|
||||
<text class="nj-charts-cell" x="638" y="210" text-anchor="middle">1.68</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · write 2.04× the time of the fastest library (fully validating) way: Value twitter.json: 434 µs citm_catalog.json: 927 µs canada.json: 3,987 µs jeopardy.json: 109,176 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · write 2.05× the time of the fastest library (fully validating) way: Value twitter.json: 434 µs citm_catalog.json: 927 µs canada.json: 3,987 µs jeopardy.json: 109,176 µs">
|
||||
<rect class="nj-heat-2" x="685" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="210" text-anchor="middle">2.04</text>
|
||||
<text class="nj-charts-cell" x="730" y="210" text-anchor="middle">2.05</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="246" text-anchor="end">Boost.J​SON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · validate 1.99× the time of the fastest library (fully validating) way: S​AX (numbers: none) twitter.json: 690 µs citm_catalog.json: 917 µs canada.json: 1,676 µs jeopardy.json: 62,781 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · validate 1.98× the time of the fastest library (fully validating) way: S​AX (numbers: none) twitter.json: 683 µs citm_catalog.json: 913 µs canada.json: 1,642 µs jeopardy.json: 57,932 µs">
|
||||
<rect class="nj-heat-2" x="225" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="246" text-anchor="middle">1.99</text>
|
||||
<text class="nj-charts-cell" x="270" y="246" text-anchor="middle">1.98</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · sum 1.27× the time of the fastest library (fully validating) way: S​AX twitter.json: 699 µs citm_catalog.json: 957 µs canada.json: 5,835 µs jeopardy.json: 59,656 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · sum 1.29× the time of the fastest library (fully validating) way: S​AX twitter.json: 690 µs citm_catalog.json: 956 µs canada.json: 5,762 µs jeopardy.json: 62,051 µs">
|
||||
<rect class="nj-heat-1" x="317" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="246" text-anchor="middle">1.27</text>
|
||||
<text class="nj-charts-cell" x="362" y="246" text-anchor="middle">1.29</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · select 2.20× the time of the fastest library (fully validating) twitter.json: 887 µs · parse_into structs citm_catalog.json: 1,270 µs · parse_into structs canada.json: 7,292 µs · parse jeopardy.json: 95,866 µs · parse_into structs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · select 2.21× the time of the fastest library (fully validating) twitter.json: 883 µs · parse_into structs citm_catalog.json: 1,286 µs · parse_into structs canada.json: 6,690 µs · parse jeopardy.json: 101,286 µs · parse_into structs">
|
||||
<rect class="nj-heat-2" x="409" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="246" text-anchor="middle">2.20</text>
|
||||
<text class="nj-charts-cell" x="454" y="246" text-anchor="middle">2.21</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · edit 2.30× the time of the fastest library (fully validating) way: parse twitter.json: 1,767 µs citm_catalog.json: 2,493 µs canada.json: 12,767 µs jeopardy.json: 331,310 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · edit 2.33× the time of the fastest library (fully validating) way: parse twitter.json: 1,859 µs citm_catalog.json: 2,513 µs canada.json: 12,765 µs jeopardy.json: 348,703 µs">
|
||||
<rect class="nj-heat-2" x="501" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="246" text-anchor="middle">2.30</text>
|
||||
<text class="nj-charts-cell" x="546" y="246" text-anchor="middle">2.33</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · minify 2.65× the time of the fastest library (fully validating) way: parse + serialize twitter.json: 1,974 µs citm_catalog.json: 2,525 µs canada.json: 12,748 µs jeopardy.json: 314,299 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · minify 2.54× the time of the fastest library (fully validating) way: parse + serialize twitter.json: 1,783 µs citm_catalog.json: 2,498 µs canada.json: 12,367 µs jeopardy.json: 329,300 µs">
|
||||
<rect class="nj-heat-3" x="593" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="246" text-anchor="middle">2.65</text>
|
||||
<text class="nj-charts-cell" x="638" y="246" text-anchor="middle">2.54</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · write 2.36× the time of the fastest library (fully validating) way: serialize twitter.json: 469 µs citm_catalog.json: 830 µs canada.json: 5,659 µs jeopardy.json: 144,174 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · write 2.33× the time of the fastest library (fully validating) way: serialize twitter.json: 451 µs citm_catalog.json: 832 µs canada.json: 5,570 µs jeopardy.json: 138,780 µs">
|
||||
<rect class="nj-heat-2" x="685" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="246" text-anchor="middle">2.36</text>
|
||||
<text class="nj-charts-cell" x="730" y="246" text-anchor="middle">2.33</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="282" text-anchor="end">simd-json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · validate 3.62× the time of the fastest library (fully validating) way: tape (copy) twitter.json: 567 µs citm_catalog.json: 1,430 µs canada.json: 4,359 µs jeopardy.json: 207,551 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="282" text-anchor="middle">3.62</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="282" text-anchor="end">nlohmann/json json</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · validate 1.69× the time of the fastest library (fully validating) way: accept twitter.json: 370 µs citm_catalog.json: 883 µs canada.json: 2,441 µs jeopardy.json: 39,142 µs">
|
||||
<rect class="nj-heat-2" x="225" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="282" text-anchor="middle">1.69</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · sum 1.91× the time of the fastest library (fully validating) way: visitor (copy) twitter.json: 681 µs citm_catalog.json: 1,650 µs canada.json: 5,083 µs jeopardy.json: 210,185 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="317" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="282" text-anchor="middle">1.91</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · sum 1.17× the time of the fastest library (fully validating) way: sax twitter.json: 533 µs citm_catalog.json: 1,113 µs canada.json: 4,134 µs jeopardy.json: 66,403 µs">
|
||||
<rect class="nj-heat-1" x="317" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="282" text-anchor="middle">1.17</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · select 2.56× the time of the fastest library (fully validating) way: structs (copy) twitter.json: 679 µs citm_catalog.json: 1,731 µs canada.json: 5,144 µs jeopardy.json: 239,164 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="282" text-anchor="middle">2.56</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · select 6.20× the time of the fastest library (fully validating) twitter.json: 2,984 µs · parse citm_catalog.json: 4,548 µs · parse canada.json: 9,124 µs · structs (from_json) jeopardy.json: 383,108 µs · parse">
|
||||
<rect class="nj-heat-4" x="409" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="282" text-anchor="middle">6.20</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · edit 2.87× the time of the fastest library (fully validating) twitter.json: 1,862 µs · borrowed (copy) citm_catalog.json: 4,194 µs · borrowed (copy) canada.json: 14,896 µs · owned (copy) jeopardy.json: 391,369 µs · borrowed (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · edit 3.42× the time of the fastest library (fully validating) twitter.json: 2,535 µs · ordered_json citm_catalog.json: 4,484 µs · ordered_json canada.json: 13,526 µs · parse jeopardy.json: 635,912 µs · ordered_json">
|
||||
<rect class="nj-heat-3" x="501" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="282" text-anchor="middle">2.87</text>
|
||||
<text class="nj-charts-cell" x="546" y="282" text-anchor="middle">3.42</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · minify 3.35× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 1,889 µs citm_catalog.json: 4,196 µs canada.json: 15,716 µs jeopardy.json: 414,377 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · minify 4.07× the time of the fastest library (fully validating) way: parse + dump twitter.json: 3,369 µs citm_catalog.json: 5,399 µs canada.json: 13,402 µs jeopardy.json: 493,302 µs">
|
||||
<rect class="nj-heat-3" x="593" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="282" text-anchor="middle">3.35</text>
|
||||
<text class="nj-charts-cell" x="638" y="282" text-anchor="middle">4.07</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · write 2.32× the time of the fastest library (fully validating) way: borrowed twitter.json: 582 µs citm_catalog.json: 800 µs canada.json: 5,147 µs jeopardy.json: 122,623 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · write 1.84× the time of the fastest library (fully validating) way: dump twitter.json: 413 µs citm_catalog.json: 611 µs canada.json: 3,905 µs jeopardy.json: 113,990 µs">
|
||||
<rect class="nj-heat-2" x="685" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="282" text-anchor="middle">2.32</text>
|
||||
<text class="nj-charts-cell" x="730" y="282" text-anchor="middle">1.84</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="318" text-anchor="end">RapidJSON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate 3.71× the time of the fastest library (fully validating) twitter.json: 1,166 µs · insitu (copy untimed) citm_catalog.json: 1,553 µs · S​AX (string stream, default precision) canada.json: 3,875 µs · S​AX (string stream, default precision) jeopardy.json: 114,704 µs · insitu (copy untimed)">
|
||||
<rect class="nj-heat-3" x="225" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="318" text-anchor="middle">3.71</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="318" text-anchor="end">simd-json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · validate 3.71× the time of the fastest library (fully validating) way: tape (copy) twitter.json: 567 µs citm_catalog.json: 1,430 µs canada.json: 4,359 µs jeopardy.json: 207,551 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="318" text-anchor="middle">3.71</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate, checking less 3.41× the time of the fastest fully validating library twitter.json: 1,012 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,434 µs · S​AX (default precision) (no encoding check) canada.json: 3,875 µs · S​AX (string stream, default precision) (validates fully) jeopardy.json: 102,635 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<rect class="nj-heat-3" x="271" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="312" text-anchor="middle">3.41</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="325" text-anchor="middle">U</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · sum 1.93× the time of the fastest library (fully validating) way: visitor (copy) twitter.json: 681 µs citm_catalog.json: 1,650 µs canada.json: 5,083 µs jeopardy.json: 210,185 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="317" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="318" text-anchor="middle">1.93</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum 2.23× the time of the fastest library (fully validating) twitter.json: 1,221 µs · insitu (copy untimed) citm_catalog.json: 1,717 µs · S​AX (string stream) canada.json: 9,435 µs · S​AX (string stream) jeopardy.json: 112,158 µs · insitu (copy untimed)">
|
||||
<rect class="nj-heat-2" x="317" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="339.5" y="318" text-anchor="middle">2.23</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · select 2.59× the time of the fastest library (fully validating) way: structs (copy) twitter.json: 679 µs citm_catalog.json: 1,731 µs canada.json: 5,144 µs jeopardy.json: 239,164 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="318" text-anchor="middle">2.59</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum, checking less 2.09× the time of the fastest fully validating library twitter.json: 1,063 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,635 µs · S​AX (string stream) (no encoding check) canada.json: 9,368 µs · S​AX (string stream) (no encoding check) jeopardy.json: 105,845 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<rect class="nj-heat-2" x="363" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="384.5" y="312" text-anchor="middle">2.09</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="384.5" y="325" text-anchor="middle">U</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · edit 2.83× the time of the fastest library (fully validating) twitter.json: 1,862 µs · borrowed (copy) citm_catalog.json: 4,194 µs · borrowed (copy) canada.json: 14,896 µs · owned (copy) jeopardy.json: 391,369 µs · borrowed (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="501" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="318" text-anchor="middle">2.83</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select 2.91× the time of the fastest library (fully validating) twitter.json: 1,180 µs · insitu (copy untimed) citm_catalog.json: 1,693 µs · insitu (copy untimed) canada.json: 10,390 µs · Document (string stream) jeopardy.json: 116,394 µs · insitu (copy untimed)">
|
||||
<rect class="nj-heat-3" x="409" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="318" text-anchor="middle">2.91</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · minify 3.30× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 1,889 µs citm_catalog.json: 4,196 µs canada.json: 15,716 µs jeopardy.json: 414,377 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="593" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="318" text-anchor="middle">3.30</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select, checking less 2.73× the time of the fastest fully validating library twitter.json: 1,022 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,648 µs · insitu (copy untimed) (no encoding check) canada.json: 10,390 µs · Document (string stream) (validates fully) jeopardy.json: 108,290 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<rect class="nj-heat-3" x="455" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="312" text-anchor="middle">2.73</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="325" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit 2.41× the time of the fastest library (fully validating) twitter.json: 1,865 µs · insitu (copy untimed) citm_catalog.json: 2,616 µs · insitu (copy untimed) canada.json: 18,812 µs · Document (string stream) jeopardy.json: 245,724 µs · insitu (copy untimed)">
|
||||
<rect class="nj-heat-2" x="501" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="318" text-anchor="middle">2.41</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit, checking less 2.34× the time of the fastest fully validating library twitter.json: 1,737 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 2,595 µs · insitu (copy untimed) (no encoding check) canada.json: 18,812 µs · Document (string stream) (validates fully) jeopardy.json: 234,669 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<rect class="nj-heat-2" x="547" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="312" text-anchor="middle">2.34</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="325" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify 2.68× the time of the fastest library (fully validating) way: S​AX to Writer (string stream) twitter.json: 1,949 µs citm_catalog.json: 2,382 µs canada.json: 19,548 µs jeopardy.json: 231,979 µs">
|
||||
<rect class="nj-heat-3" x="593" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="318" text-anchor="middle">2.68</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify, checking less 2.42× the time of the fastest fully validating library twitter.json: 1,880 µs · S​AX to Writer (string stream) (no encoding check) citm_catalog.json: 2,314 µs · S​AX to Writer (string stream) (no encoding check) canada.json: 14,400 µs · S​AX to Writer (raw numbers) (validates fully) jeopardy.json: 224,249 µs · S​AX to Writer (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) copies each number's text instead of formatting it (kParseNumbersAsStringsFlag)">
|
||||
<rect class="nj-heat-2" x="639" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="312" text-anchor="middle">2.42</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="325" text-anchor="middle">U N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · write 2.97× the time of the fastest library (fully validating) way: Writer twitter.json: 678 µs citm_catalog.json: 979 µs canada.json: 9,095 µs jeopardy.json: 131,408 µs">
|
||||
<rect class="nj-heat-3" x="685" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="318" text-anchor="middle">2.97</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · write 2.34× the time of the fastest library (fully validating) way: borrowed twitter.json: 582 µs citm_catalog.json: 800 µs canada.json: 5,147 µs jeopardy.json: 122,623 µs">
|
||||
<rect class="nj-heat-2" x="685" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="318" text-anchor="middle">2.34</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="354" text-anchor="end">serde_json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate 2.39× the time of the fastest library (fully validating) way: from_utf8 + IgnoredAny twitter.json: 624 µs citm_catalog.json: 1,440 µs canada.json: 2,406 µs jeopardy.json: 64,720 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate 2.46× the time of the fastest library (fully validating) way: from_utf8 + IgnoredAny twitter.json: 624 µs citm_catalog.json: 1,440 µs canada.json: 2,406 µs jeopardy.json: 64,720 µs">
|
||||
<rect class="nj-heat-2" x="225" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="354" text-anchor="middle">2.39</text>
|
||||
<text class="nj-charts-cell" x="247.5" y="354" text-anchor="middle">2.46</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate, checking less 2.14× the time of the fastest fully validating library way: IgnoredAny twitter.json: 484 µs citm_catalog.json: 1,370 µs canada.json: 2,314 µs jeopardy.json: 58,247 µs trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate, checking less 2.19× the time of the fastest fully validating library way: IgnoredAny twitter.json: 484 µs citm_catalog.json: 1,370 µs canada.json: 2,314 µs jeopardy.json: 58,247 µs trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="271" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="348" text-anchor="middle">2.14</text>
|
||||
<text class="nj-charts-cell" x="292.5" y="348" text-anchor="middle">2.19</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="361" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · sum 2.36× the time of the fastest library (fully validating) way: visitor twitter.json: 1,311 µs citm_catalog.json: 2,288 µs canada.json: 7,127 µs jeopardy.json: 129,497 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · sum 2.38× the time of the fastest library (fully validating) way: visitor twitter.json: 1,311 µs citm_catalog.json: 2,288 µs canada.json: 7,127 µs jeopardy.json: 129,497 µs">
|
||||
<rect class="nj-heat-2" x="317" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="354" text-anchor="middle">2.36</text>
|
||||
<text class="nj-charts-cell" x="362" y="354" text-anchor="middle">2.38</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select 1.71× the time of the fastest library (fully validating) way: from_utf8 + structs twitter.json: 701 µs citm_catalog.json: 1,532 µs canada.json: 2,529 µs jeopardy.json: 107,316 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select 1.74× the time of the fastest library (fully validating) way: from_utf8 + structs twitter.json: 701 µs citm_catalog.json: 1,532 µs canada.json: 2,529 µs jeopardy.json: 107,316 µs">
|
||||
<rect class="nj-heat-2" x="409" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="354" text-anchor="middle">1.71</text>
|
||||
<text class="nj-charts-cell" x="454" y="354" text-anchor="middle">1.74</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · edit 4.53× the time of the fastest library (fully validating) way: Value twitter.json: 4,042 µs citm_catalog.json: 6,586 µs canada.json: 16,631 µs jeopardy.json: 632,766 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · edit 4.45× the time of the fastest library (fully validating) way: Value twitter.json: 4,042 µs citm_catalog.json: 6,586 µs canada.json: 16,631 µs jeopardy.json: 632,766 µs">
|
||||
<rect class="nj-heat-3" x="501" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="354" text-anchor="middle">4.53</text>
|
||||
<text class="nj-charts-cell" x="546" y="354" text-anchor="middle">4.45</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · minify 4.89× the time of the fastest library (fully validating) way: Value twitter.json: 4,012 µs citm_catalog.json: 6,583 µs canada.json: 17,306 µs jeopardy.json: 509,702 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · minify 4.80× the time of the fastest library (fully validating) way: Value twitter.json: 4,012 µs citm_catalog.json: 6,583 µs canada.json: 17,306 µs jeopardy.json: 509,702 µs">
|
||||
<rect class="nj-heat-3" x="593" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="354" text-anchor="middle">4.89</text>
|
||||
<text class="nj-charts-cell" x="638" y="354" text-anchor="middle">4.80</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · write 2.25× the time of the fastest library (fully validating) way: Value twitter.json: 550 µs citm_catalog.json: 887 µs canada.json: 4,005 µs jeopardy.json: 134,163 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · write 2.27× the time of the fastest library (fully validating) way: Value twitter.json: 550 µs citm_catalog.json: 887 µs canada.json: 4,005 µs jeopardy.json: 134,163 µs">
|
||||
<rect class="nj-heat-2" x="685" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="354" text-anchor="middle">2.25</text>
|
||||
<text class="nj-charts-cell" x="730" y="354" text-anchor="middle">2.27</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="390" text-anchor="end">Glaze</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · validate 2.86× the time of the fastest library (fully validating) way: validate_json twitter.json: 712 µs citm_catalog.json: 1,983 µs canada.json: 2,625 µs jeopardy.json: 76,759 µs">
|
||||
<rect class="nj-heat-3" x="225" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="390" text-anchor="middle">2.86</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="390" text-anchor="end">RapidJSON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate 3.86× the time of the fastest library (fully validating) twitter.json: 1,215 µs · insitu (copy) citm_catalog.json: 1,550 µs · S​AX (string stream, default precision) canada.json: 3,625 µs · S​AX (string stream, default precision) jeopardy.json: 125,139 µs · S​AX (string stream, default precision) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="390" text-anchor="middle">3.86</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum 4.16× the time of the fastest library (fully validating) way: generic (double, strict) twitter.json: 2,483 µs citm_catalog.json: 4,413 µs canada.json: 10,532 µs jeopardy.json: 231,505 µs">
|
||||
<rect class="nj-heat-3" x="317" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="390" text-anchor="middle">4.16</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate, checking less 3.48× the time of the fastest fully validating library twitter.json: 1,052 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,427 µs · S​AX (default precision) (no encoding check) canada.json: 3,625 µs · S​AX (string stream, default precision) (validates fully) jeopardy.json: 104,342 µs · S​AX (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="271" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="384" text-anchor="middle">3.48</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="397" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select 1.79× the time of the fastest library (fully validating) way: structs (validate_skipped) twitter.json: 606 µs citm_catalog.json: 2,476 µs canada.json: 2,557 µs jeopardy.json: 89,957 µs">
|
||||
<rect class="nj-heat-2" x="409" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="390" text-anchor="middle">1.79</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum 2.35× the time of the fastest library (fully validating) twitter.json: 1,256 µs · insitu (copy) citm_catalog.json: 1,713 µs · S​AX (string stream) canada.json: 9,547 µs · S​AX (string stream) jeopardy.json: 127,564 µs · S​AX (string stream) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="317" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="339.5" y="390" text-anchor="middle">2.35</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select, checking less 0.58× the time of the fastest fully validating library way: structs twitter.json: 344 µs citm_catalog.json: 402 µs canada.json: 417 µs jeopardy.json: 67,467 µs reads into structs and steps over fields it doesn't know without checking them (validate_skipped checks them too)">
|
||||
<rect class="nj-heat-0" x="455" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="384" text-anchor="middle">0.58</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="397" text-anchor="middle">P</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum, checking less 2.15× the time of the fastest fully validating library twitter.json: 1,099 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,635 µs · S​AX (string stream) (no encoding check) canada.json: 9,105 µs · S​AX (string stream) (no encoding check) jeopardy.json: 113,500 µs · S​AX (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="363" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="384.5" y="384" text-anchor="middle">2.15</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="384.5" y="397" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · edit 4.47× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,389 µs citm_catalog.json: 6,002 µs canada.json: 21,598 µs jeopardy.json: 607,767 µs">
|
||||
<rect class="nj-heat-3" x="501" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="390" text-anchor="middle">4.47</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select 3.17× the time of the fastest library (fully validating) twitter.json: 1,217 µs · insitu (copy) citm_catalog.json: 1,807 µs · insitu (copy) canada.json: 9,688 µs · Document (string stream) jeopardy.json: 152,275 µs · Document (string stream) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="390" text-anchor="middle">3.17</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify 4.81× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,685 µs citm_catalog.json: 5,942 µs canada.json: 22,138 µs jeopardy.json: 450,322 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select, checking less 3.02× the time of the fastest fully validating library twitter.json: 1,056 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,767 µs · insitu (copy) (no encoding check) canada.json: 9,632 µs · Document (string stream) (no encoding check) jeopardy.json: 148,964 µs · Document (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="455" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="384" text-anchor="middle">3.02</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="397" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit 2.49× the time of the fastest library (fully validating) twitter.json: 1,896 µs · insitu (copy) citm_catalog.json: 2,754 µs · insitu (copy) canada.json: 19,359 µs · Document (string stream) jeopardy.json: 269,071 µs · Document (string stream) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="501" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="390" text-anchor="middle">2.49</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit, checking less 2.40× the time of the fastest fully validating library twitter.json: 1,749 µs · insitu (copy) (no encoding check) citm_catalog.json: 2,730 µs · insitu (copy) (no encoding check) canada.json: 19,155 µs · Document (string stream) (no encoding check) jeopardy.json: 259,148 µs · Document (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="547" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="384" text-anchor="middle">2.40</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="397" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify 2.58× the time of the fastest library (fully validating) way: S​AX to Writer (string stream) twitter.json: 1,851 µs citm_catalog.json: 2,429 µs canada.json: 18,810 µs jeopardy.json: 229,769 µs">
|
||||
<rect class="nj-heat-3" x="593" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="390" text-anchor="middle">4.81</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="390" text-anchor="middle">2.58</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify, checking less 0.78× the time of the fastest fully validating library way: minify_json twitter.json: 442 µs citm_catalog.json: 1,292 µs canada.json: 2,726 µs jeopardy.json: 97,377 µs minify_json only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="384" text-anchor="middle">0.78</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="397" text-anchor="middle">P</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify, checking less 2.36× the time of the fastest fully validating library twitter.json: 1,710 µs · S​AX to Writer (string stream) (no encoding check) citm_catalog.json: 2,429 µs · S​AX to Writer (string stream) (validates fully) canada.json: 14,205 µs · S​AX to Writer (raw numbers) (validates fully) jeopardy.json: 229,769 µs · S​AX to Writer (string stream) (validates fully) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) copies each number's text instead of formatting it (kParseNumbersAsStringsFlag)">
|
||||
<rect class="nj-heat-2" x="639" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="384" text-anchor="middle">2.36</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="397" text-anchor="middle">U N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · write 1.96× the time of the fastest library (fully validating) way: generic twitter.json: 381 µs citm_catalog.json: 730 µs canada.json: 4,071 µs jeopardy.json: 131,946 µs">
|
||||
<rect class="nj-heat-2" x="685" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="390" text-anchor="middle">1.96</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · write 2.94× the time of the fastest library (fully validating) way: Writer twitter.json: 638 µs citm_catalog.json: 984 µs canada.json: 8,886 µs jeopardy.json: 131,435 µs">
|
||||
<rect class="nj-heat-3" x="685" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="390" text-anchor="middle">2.94</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="426" text-anchor="end">nlohmann/json json</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · validate 2.96× the time of the fastest library (fully validating) way: accept twitter.json: 683 µs citm_catalog.json: 1,419 µs canada.json: 4,559 µs jeopardy.json: 74,331 µs">
|
||||
<text class="nj-charts-rowlabel " x="216" y="426" text-anchor="end">Glaze</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · validate 2.87× the time of the fastest library (fully validating) way: validate_json twitter.json: 705 µs citm_catalog.json: 1,971 µs canada.json: 2,532 µs jeopardy.json: 74,805 µs">
|
||||
<rect class="nj-heat-3" x="225" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="426" text-anchor="middle">2.96</text>
|
||||
<text class="nj-charts-cell" x="270" y="426" text-anchor="middle">2.87</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · sum 1.70× the time of the fastest library (fully validating) way: sax twitter.json: 814 µs citm_catalog.json: 1,666 µs canada.json: 5,690 µs jeopardy.json: 97,414 µs">
|
||||
<rect class="nj-heat-2" x="317" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="426" text-anchor="middle">1.70</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum 4.05× the time of the fastest library (fully validating) way: generic (double, strict) twitter.json: 2,317 µs citm_catalog.json: 4,068 µs canada.json: 10,333 µs jeopardy.json: 237,723 µs">
|
||||
<rect class="nj-heat-3" x="317" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="426" text-anchor="middle">4.05</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · select 7.12× the time of the fastest library (fully validating) twitter.json: 3,360 µs · structs (from_json) citm_catalog.json: 5,268 µs · structs (from_json) canada.json: 12,006 µs · structs (from_json) jeopardy.json: 410,221 µs · parse">
|
||||
<rect class="nj-heat-4" x="409" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="426" text-anchor="middle">7.12</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select 1.71× the time of the fastest library (fully validating) way: structs (validate_skipped) twitter.json: 608 µs citm_catalog.json: 1,978 µs canada.json: 2,521 µs jeopardy.json: 90,807 µs">
|
||||
<rect class="nj-heat-2" x="409" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="426" text-anchor="middle">1.71</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · edit 3.83× the time of the fastest library (fully validating) way: ordered_json twitter.json: 2,832 µs citm_catalog.json: 4,970 µs canada.json: 15,806 µs jeopardy.json: 647,704 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select, checking less 0.59× the time of the fastest fully validating library way: structs twitter.json: 345 µs citm_catalog.json: 401 µs canada.json: 415 µs jeopardy.json: 67,456 µs reads into structs and steps over fields it doesn't know without checking them (validate_skipped checks them too)">
|
||||
<rect class="nj-heat-0" x="455" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="420" text-anchor="middle">0.59</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="433" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · edit 4.48× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,364 µs citm_catalog.json: 6,036 µs canada.json: 21,592 µs jeopardy.json: 652,302 µs">
|
||||
<rect class="nj-heat-3" x="501" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="426" text-anchor="middle">3.83</text>
|
||||
<text class="nj-charts-cell" x="546" y="426" text-anchor="middle">4.48</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · minify 4.79× the time of the fastest library (fully validating) way: parse + dump twitter.json: 4,196 µs citm_catalog.json: 5,806 µs canada.json: 16,626 µs jeopardy.json: 529,560 µs">
|
||||
<rect class="nj-heat-3" x="593" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="426" text-anchor="middle">4.79</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify 4.56× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,243 µs citm_catalog.json: 6,175 µs canada.json: 20,961 µs jeopardy.json: 451,368 µs">
|
||||
<rect class="nj-heat-3" x="593" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="426" text-anchor="middle">4.56</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · write 1.91× the time of the fastest library (fully validating) way: dump twitter.json: 444 µs citm_catalog.json: 640 µs canada.json: 4,089 µs jeopardy.json: 117,316 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify, checking less 0.75× the time of the fastest fully validating library way: minify_json twitter.json: 417 µs citm_catalog.json: 1,299 µs canada.json: 2,699 µs jeopardy.json: 93,794 µs minify_json only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="420" text-anchor="middle">0.75</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="433" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · write 1.96× the time of the fastest library (fully validating) way: generic twitter.json: 377 µs citm_catalog.json: 730 µs canada.json: 4,050 µs jeopardy.json: 129,720 µs">
|
||||
<rect class="nj-heat-2" x="685" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="426" text-anchor="middle">1.91</text>
|
||||
<text class="nj-charts-cell" x="730" y="426" text-anchor="middle">1.96</text>
|
||||
</g>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="8" y="472">time relative to the fastest fully validating library, less is better</text>
|
||||
<g><rect class="nj-heat-0" x="8" y="482" width="76" height="20" rx="3"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 46 KiB |
@@ -1,6 +1,6 @@
|
||||
<svg class="nj-fig nj-charts nj-charts--blog nj-charts--heat" viewBox="0 0 784 510" role="img" aria-labelledby="nj-blog-uc-x86-gcc13 nj-blog-uc-x86-gcc13-d" xmlns="http://www.w3.org/2000/svg">
|
||||
<title id="nj-blog-uc-x86-gcc13">Use cases: time of each library relative to the fastest, x86-64 with G​CC 13</title>
|
||||
<desc id="nj-blog-uc-x86-gcc13-d">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.</desc>
|
||||
<desc id="nj-blog-uc-x86-gcc13-d">Table of relative times, libraries by use case. nlohmann/json json_document validate: 1.00; nlohmann/json json_document sum: 1.10; nlohmann/json json_document select: 1.00; nlohmann/json json_document edit: 1.00 (0.82 doing less, N); nlohmann/json json_document minify: 1.00 (0.81 doing less, N); nlohmann/json json_document write: 1.00 (0.71 doing less, N); yyjson validate: 2.06; yyjson sum: 1.44; yyjson select: 1.37; yyjson edit: 1.57; yyjson minify: 1.37 (1.03 doing less, N); yyjson write: 1.08; sonic-cpp validate: no fully validating way (2.21 doing less, U); sonic-cpp sum: no fully validating way (1.28 doing less, U); sonic-cpp select: no fully validating way (1.48 doing less, U); sonic-cpp edit: no fully validating way (1.22 doing less, U); sonic-cpp minify: no fully validating way (1.40 doing less, U); sonic-cpp write: 1.50; simdjson validate: 1.93; simdjson sum: 1.00; simdjson select: 1.29 (0.56 doing less, P); simdjson edit: n/a; simdjson minify: 1.55 (0.21 doing less, P); simdjson write: 2.09; sonic-rs (Rust) validate: 1.77; sonic-rs (Rust) sum: 1.13; sonic-rs (Rust) select: 1.33; sonic-rs (Rust) edit: 1.86; sonic-rs (Rust) minify: 1.71; sonic-rs (Rust) write: 2.00; Boost.J​SON validate: 1.83; Boost.J​SON sum: 1.30; Boost.J​SON select: 2.23; Boost.J​SON edit: 2.45; Boost.J​SON minify: 2.83; Boost.J​SON write: 2.50; nlohmann/json json validate: 1.34; nlohmann/json json sum: 1.04; nlohmann/json json select: 6.05; nlohmann/json json edit: 3.37; nlohmann/json json minify: 4.13; nlohmann/json json write: 1.85; simd-json (Rust) validate: 3.31; simd-json (Rust) sum: 1.91; simd-json (Rust) select: 2.54; simd-json (Rust) edit: 2.82; simd-json (Rust) minify: 3.35; simd-json (Rust) write: 2.28; serde_json (Rust) validate: 2.19 (1.96 doing less, U); serde_json (Rust) sum: 2.35; serde_json (Rust) select: 1.70; serde_json (Rust) edit: 4.44; serde_json (Rust) minify: 4.88; serde_json (Rust) write: 2.21; Glaze validate: 2.05; Glaze sum: 4.06 (3.93 doing less, P); Glaze select: 1.39 (0.58 doing less, P); Glaze edit: 4.71; Glaze minify: 4.96 (0.70 doing less, P); Glaze write: 1.80; RapidJSON validate: 3.88 (3.36 doing less, U); RapidJSON sum: 2.67 (2.34 doing less, U); RapidJSON select: 3.39 (3.12 doing less, U); RapidJSON edit: 2.65 (2.52 doing less, U); RapidJSON minify: 3.64 (2.61 doing less, U N); RapidJSON write: 2.95.</desc>
|
||||
<text class="nj-charts-tick" x="270" y="34">validate</text>
|
||||
<text class="nj-charts-tick" x="362" y="34">sum</text>
|
||||
<text class="nj-charts-tick" x="454" y="34">select</text>
|
||||
@@ -8,354 +8,359 @@
|
||||
<text class="nj-charts-tick" x="638" y="34">minify</text>
|
||||
<text class="nj-charts-tick" x="730" y="34">write</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="66" text-anchor="end">nlohmann/json json_document</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · validate 1.00× the time of the fastest library (fully validating) way: accept twitter.json: 271 µs citm_catalog.json: 609 µs canada.json: 1,011 µs jeopardy.json: 34,722 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · validate 1.00× the time of the fastest library (fully validating) way: accept twitter.json: 267 µs citm_catalog.json: 664 µs canada.json: 986 µs jeopardy.json: 34,874 µs">
|
||||
<rect class="nj-heat-0" x="225" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · sum 1.08× the time of the fastest library (fully validating) way: parse twitter.json: 392 µs citm_catalog.json: 946 µs canada.json: 3,888 µs jeopardy.json: 89,044 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · sum 1.10× the time of the fastest library (fully validating) way: parse twitter.json: 387 µs citm_catalog.json: 1,036 µs canada.json: 3,704 µs jeopardy.json: 89,477 µs">
|
||||
<rect class="nj-heat-0" x="317" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="66" text-anchor="middle">1.08</text>
|
||||
<text class="nj-charts-cell" x="362" y="66" text-anchor="middle">1.10</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · select 1.00× the time of the fastest library (fully validating) way: parse twitter.json: 332 µs citm_catalog.json: 765 µs canada.json: 1,390 µs jeopardy.json: 88,202 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · select 1.00× the time of the fastest library (fully validating) twitter.json: 329 µs · structs (from_json) citm_catalog.json: 855 µs · parse canada.json: 1,360 µs · structs (from_json) jeopardy.json: 90,597 µs · parse">
|
||||
<rect class="nj-heat-0" x="409" y="45" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit 1.00× the time of the fastest library (fully validating) way: editable twitter.json: 532 µs citm_catalog.json: 1,116 µs canada.json: 5,714 µs jeopardy.json: 192,363 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit 1.00× the time of the fastest library (fully validating) way: editable twitter.json: 530 µs citm_catalog.json: 1,209 µs canada.json: 5,792 µs jeopardy.json: 193,925 µs">
|
||||
<rect class="nj-heat-0" x="501" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit, checking less 0.83× the time of the fastest fully validating library twitter.json: 532 µs · editable (validates fully) citm_catalog.json: 1,116 µs · editable (validates fully) canada.json: 2,702 µs · editable (source numbers) (validates fully) jeopardy.json: 192,363 µs · editable (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · edit, checking less 0.82× the time of the fastest fully validating library twitter.json: 530 µs · editable (validates fully) citm_catalog.json: 1,209 µs · editable (validates fully) canada.json: 2,621 µs · editable (source numbers) (validates fully) jeopardy.json: 193,925 µs · editable (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="547" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="60" text-anchor="middle">0.83</text>
|
||||
<text class="nj-charts-cell" x="568.5" y="60" text-anchor="middle">0.82</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify 1.00× the time of the fastest library (fully validating) twitter.json: 483 µs · parse + dump citm_catalog.json: 1,014 µs · parse + dump canada.json: 5,459 µs · parse_copy + dump jeopardy.json: 146,320 µs · parse + dump">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify 1.00× the time of the fastest library (fully validating) way: parse + dump twitter.json: 475 µs citm_catalog.json: 1,102 µs canada.json: 5,414 µs jeopardy.json: 144,877 µs">
|
||||
<rect class="nj-heat-0" x="593" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify, checking less 0.83× the time of the fastest fully validating library twitter.json: 483 µs · parse + dump (validates fully) citm_catalog.json: 1,014 µs · parse + dump (validates fully) canada.json: 2,620 µs · parse + dump (source numbers) (validates fully) jeopardy.json: 146,320 µs · parse + dump (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · minify, checking less 0.81× the time of the fastest fully validating library twitter.json: 471 µs · parse + dump (source numbers) (validates fully) citm_catalog.json: 1,102 µs · parse + dump (validates fully) canada.json: 2,372 µs · parse + dump (source numbers) (validates fully) jeopardy.json: 144,877 µs · parse + dump (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="639" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="60" text-anchor="middle">0.83</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="60" text-anchor="middle">0.81</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write 1.00× the time of the fastest library (fully validating) way: dump twitter.json: 150 µs citm_catalog.json: 260 µs canada.json: 3,861 µs jeopardy.json: 63,958 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write 1.00× the time of the fastest library (fully validating) way: dump twitter.json: 152 µs citm_catalog.json: 260 µs canada.json: 3,811 µs jeopardy.json: 72,196 µs">
|
||||
<rect class="nj-heat-0" x="685" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="707.5" y="66" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write, checking less 0.71× the time of the fastest fully validating library twitter.json: 148 µs · dump (source numbers) (validates fully) citm_catalog.json: 260 µs · dump (validates fully) canada.json: 998 µs · dump (source numbers) (validates fully) jeopardy.json: 63,958 µs · dump (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json_document · write, checking less 0.71× the time of the fastest fully validating library twitter.json: 147 µs · dump (source numbers) (validates fully) citm_catalog.json: 260 µs · dump (validates fully) canada.json: 997 µs · dump (source numbers) (validates fully) jeopardy.json: 71,822 µs · dump (source numbers) (validates fully) copies each number's text instead of formatting it (number_format::source)">
|
||||
<rect class="nj-heat-0" x="731" y="45" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="752.5" y="60" text-anchor="middle">0.71</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="752.5" y="73" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="102" text-anchor="end">yyjson</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · validate 1.81× the time of the fastest library (fully validating) twitter.json: 348 µs · insitu (copy untimed) citm_catalog.json: 878 µs · insitu (copy untimed) canada.json: 2,256 µs · read (raw numbers) jeopardy.json: 90,959 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · validate 2.06× the time of the fastest library (fully validating) twitter.json: 394 µs · insitu (copy) citm_catalog.json: 984 µs · read canada.json: 2,222 µs · read (raw numbers) jeopardy.json: 128,528 µs · insitu (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="225" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="102" text-anchor="middle">1.81</text>
|
||||
<text class="nj-charts-cell" x="270" y="102" text-anchor="middle">2.06</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · sum 1.28× the time of the fastest library (fully validating) way: insitu (copy untimed) twitter.json: 407 µs citm_catalog.json: 1,045 µs canada.json: 6,021 µs jeopardy.json: 99,764 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · sum 1.44× the time of the fastest library (fully validating) twitter.json: 443 µs · insitu (copy) citm_catalog.json: 1,146 µs · insitu (copy) canada.json: 5,974 µs · read jeopardy.json: 129,054 µs · read (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="317" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="102" text-anchor="middle">1.28</text>
|
||||
<text class="nj-charts-cell" x="362" y="102" text-anchor="middle">1.44</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · select 1.22× the time of the fastest library (fully validating) twitter.json: 361 µs · insitu (copy untimed) citm_catalog.json: 880 µs · insitu (copy untimed) canada.json: 2,236 µs · read (raw numbers) jeopardy.json: 98,637 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · select 1.37× the time of the fastest library (fully validating) twitter.json: 397 µs · read citm_catalog.json: 994 µs · insitu (copy) canada.json: 2,228 µs · read (raw numbers) jeopardy.json: 140,073 µs · read (raw numbers) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="409" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="102" text-anchor="middle">1.22</text>
|
||||
<text class="nj-charts-cell" x="454" y="102" text-anchor="middle">1.37</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · edit 1.49× the time of the fastest library (fully validating) way: insitu (copy untimed) + mut copy twitter.json: 761 µs citm_catalog.json: 1,590 µs canada.json: 9,860 µs jeopardy.json: 271,227 µs">
|
||||
<rect class="nj-heat-1" x="501" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="102" text-anchor="middle">1.49</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · edit 1.57× the time of the fastest library (fully validating) twitter.json: 841 µs · insitu (copy) + mut copy citm_catalog.json: 1,719 µs · mut copy canada.json: 9,803 µs · insitu (copy) + mut copy jeopardy.json: 309,935 µs · insitu (copy) + mut copy (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="501" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="102" text-anchor="middle">1.57</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify 1.27× the time of the fastest library (fully validating) twitter.json: 592 µs · insitu (copy untimed) + write citm_catalog.json: 1,205 µs · insitu (copy untimed) + write canada.json: 9,008 µs · read + write jeopardy.json: 158,577 µs · insitu (copy untimed) + write">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify 1.37× the time of the fastest library (fully validating) twitter.json: 600 µs · insitu (copy) + write citm_catalog.json: 1,316 µs · insitu (copy) + write canada.json: 9,151 µs · read + write jeopardy.json: 201,645 µs · read + write (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-1" x="593" y="81" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="102" text-anchor="middle">1.27</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="102" text-anchor="middle">1.37</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify, checking less 0.97× the time of the fastest fully validating library twitter.json: 592 µs · insitu (copy untimed) + write (validates fully) citm_catalog.json: 1,205 µs · insitu (copy untimed) + write (validates fully) canada.json: 3,106 µs · read (raw numbers) + write (validates fully) jeopardy.json: 158,577 µs · insitu (copy untimed) + write (validates fully) copies each number's text instead of formatting it (YYJSON_READ_NUMBER_AS_RAW)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · minify, checking less 1.03× the time of the fastest fully validating library twitter.json: 600 µs · read (raw numbers) + write (validates fully) citm_catalog.json: 1,264 µs · read (raw numbers) + write (validates fully) canada.json: 2,994 µs · read (raw numbers) + write (validates fully) jeopardy.json: 201,645 µs · read + write (validates fully) copies each number's text instead of formatting it (YYJSON_READ_NUMBER_AS_RAW)">
|
||||
<rect class="nj-heat-0" x="639" y="81" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="96" text-anchor="middle">0.97</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="96" text-anchor="middle">1.03</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="109" text-anchor="middle">N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · write 1.14× the time of the fastest library (fully validating) way: write twitter.json: 204 µs citm_catalog.json: 327 µs canada.json: 3,748 µs jeopardy.json: 65,989 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="yyjson · write 1.08× the time of the fastest library (fully validating) way: write twitter.json: 180 µs citm_catalog.json: 325 µs canada.json: 3,548 µs jeopardy.json: 71,044 µs">
|
||||
<rect class="nj-heat-0" x="685" y="81" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="102" text-anchor="middle">1.14</text>
|
||||
<text class="nj-charts-cell" x="730" y="102" text-anchor="middle">1.08</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="138" text-anchor="end">sonic-cpp</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · validate, checking less 2.24× the time of the fastest fully validating library way: Document twitter.json: 408 µs citm_catalog.json: 1,028 µs canada.json: 3,622 µs jeopardy.json: 96,080 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · validate, checking less 2.21× the time of the fastest fully validating library way: Document twitter.json: 409 µs citm_catalog.json: 1,025 µs canada.json: 3,561 µs jeopardy.json: 96,607 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="225" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="132" text-anchor="middle">2.24</text>
|
||||
<text class="nj-charts-cell" x="270" y="132" text-anchor="middle">2.21</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="270" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · sum, checking less 1.28× the time of the fastest fully validating library way: Document twitter.json: 460 µs citm_catalog.json: 1,210 µs canada.json: 4,295 µs jeopardy.json: 107,092 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · sum, checking less 1.28× the time of the fastest fully validating library way: Document twitter.json: 459 µs citm_catalog.json: 1,209 µs canada.json: 4,247 µs jeopardy.json: 103,731 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="317" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="132" text-anchor="middle">1.28</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="362" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · select, checking less 1.53× the time of the fastest fully validating library way: Document twitter.json: 413 µs citm_catalog.json: 1,043 µs canada.json: 3,695 µs jeopardy.json: 108,297 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-2" x="409" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="132" text-anchor="middle">1.53</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · select, checking less 1.48× the time of the fastest fully validating library way: Document twitter.json: 412 µs citm_catalog.json: 1,044 µs canada.json: 3,632 µs jeopardy.json: 106,188 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="409" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="132" text-anchor="middle">1.48</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="454" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · edit, checking less 1.26× the time of the fastest fully validating library way: Document twitter.json: 637 µs citm_catalog.json: 1,559 µs canada.json: 8,936 µs jeopardy.json: 186,232 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · edit, checking less 1.22× the time of the fastest fully validating library way: Document twitter.json: 632 µs citm_catalog.json: 1,583 µs canada.json: 8,734 µs jeopardy.json: 184,592 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="501" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="132" text-anchor="middle">1.26</text>
|
||||
<text class="nj-charts-cell" x="546" y="132" text-anchor="middle">1.22</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="546" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · minify, checking less 1.42× the time of the fastest fully validating library way: Document + Serialize twitter.json: 695 µs citm_catalog.json: 1,541 µs canada.json: 8,838 µs jeopardy.json: 168,901 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · minify, checking less 1.40× the time of the fastest fully validating library way: Document + Serialize twitter.json: 647 µs citm_catalog.json: 1,563 µs canada.json: 8,917 µs jeopardy.json: 176,625 µs trusts U​TF-8: sonic-cpp 1.0.2 doesn't check it">
|
||||
<rect class="nj-heat-1" x="593" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="132" text-anchor="middle">1.42</text>
|
||||
<text class="nj-charts-cell" x="638" y="132" text-anchor="middle">1.40</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="638" y="145" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · write 1.50× the time of the fastest library (fully validating) way: Serialize twitter.json: 256 µs citm_catalog.json: 541 µs canada.json: 5,120 µs jeopardy.json: 69,546 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-cpp · write 1.50× the time of the fastest library (fully validating) way: Serialize twitter.json: 268 µs citm_catalog.json: 543 µs canada.json: 5,057 µs jeopardy.json: 75,734 µs">
|
||||
<rect class="nj-heat-2" x="685" y="117" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="138" text-anchor="middle">1.50</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="174" text-anchor="end">simdjson</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · validate 2.01× the time of the fastest library (fully validating) way: D​OM twitter.json: 311 µs citm_catalog.json: 780 µs canada.json: 3,351 µs jeopardy.json: 116,704 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · validate 1.93× the time of the fastest library (fully validating) way: D​OM twitter.json: 309 µs citm_catalog.json: 737 µs canada.json: 3,183 µs jeopardy.json: 115,296 µs">
|
||||
<rect class="nj-heat-2" x="225" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="174" text-anchor="middle">2.01</text>
|
||||
<text class="nj-charts-cell" x="270" y="174" text-anchor="middle">1.93</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · sum 1.00× the time of the fastest library (fully validating) way: On-Demand twitter.json: 356 µs citm_catalog.json: 812 µs canada.json: 3,435 µs jeopardy.json: 96,250 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · sum 1.00× the time of the fastest library (fully validating) way: On-Demand twitter.json: 356 µs citm_catalog.json: 819 µs canada.json: 3,291 µs jeopardy.json: 94,267 µs">
|
||||
<rect class="nj-heat-0" x="317" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="174" text-anchor="middle">1.00</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select 1.35× the time of the fastest library (fully validating) way: D​OM twitter.json: 324 µs citm_catalog.json: 756 µs canada.json: 3,409 µs jeopardy.json: 123,214 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select 1.29× the time of the fastest library (fully validating) way: D​OM twitter.json: 323 µs citm_catalog.json: 748 µs canada.json: 3,189 µs jeopardy.json: 126,288 µs">
|
||||
<rect class="nj-heat-1" x="409" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="174" text-anchor="middle">1.35</text>
|
||||
<text class="nj-charts-cell" x="431.5" y="174" text-anchor="middle">1.29</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select, checking less 0.57× the time of the fastest fully validating library twitter.json: 184 µs · On-Demand (key selectors) citm_catalog.json: 509 µs · On-Demand canada.json: 700 µs · On-Demand jeopardy.json: 48,614 µs · On-Demand reads lazily: On-Demand reads only what you ask for and steps over the rest by matching brackets">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · select, checking less 0.56× the time of the fastest fully validating library twitter.json: 186 µs · On-Demand citm_catalog.json: 508 µs · On-Demand canada.json: 707 µs · On-Demand jeopardy.json: 50,215 µs · On-Demand (key selectors) reads lazily: On-Demand reads only what you ask for and steps over the rest by matching brackets">
|
||||
<rect class="nj-heat-0" x="455" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="168" text-anchor="middle">0.57</text>
|
||||
<text class="nj-charts-cell" x="476.5" y="168" text-anchor="middle">0.56</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="181" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · edit simdjson's documents are read-only: it has no A​PI to change a value and write the result">
|
||||
<rect class="nj-heat-na" x="501" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-tick" x="546" y="174">n/a</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify 1.58× the time of the fastest library (fully validating) way: D​OM + to_string twitter.json: 742 µs citm_catalog.json: 1,393 µs canada.json: 8,808 µs jeopardy.json: 266,718 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify 1.55× the time of the fastest library (fully validating) way: D​OM + to_string twitter.json: 689 µs citm_catalog.json: 1,394 µs canada.json: 8,457 µs jeopardy.json: 292,576 µs">
|
||||
<rect class="nj-heat-2" x="593" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="174" text-anchor="middle">1.58</text>
|
||||
<text class="nj-charts-cell" x="615.5" y="174" text-anchor="middle">1.55</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify, checking less 0.22× the time of the fastest fully validating library way: minify twitter.json: 123 µs citm_catalog.json: 337 µs canada.json: 433 µs jeopardy.json: 47,040 µs simdjson::minify() only removes whitespace, without parsing the values">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · minify, checking less 0.21× the time of the fastest fully validating library way: minify twitter.json: 122 µs citm_catalog.json: 336 µs canada.json: 426 µs jeopardy.json: 49,731 µs simdjson::minify() only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="153" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="168" text-anchor="middle">0.22</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="168" text-anchor="middle">0.21</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="181" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · write 2.07× the time of the fastest library (fully validating) way: to_string twitter.json: 359 µs citm_catalog.json: 637 µs canada.json: 4,999 µs jeopardy.json: 154,364 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simdjson · write 2.09× the time of the fastest library (fully validating) way: to_string twitter.json: 360 µs citm_catalog.json: 636 µs canada.json: 5,363 µs jeopardy.json: 169,032 µs">
|
||||
<rect class="nj-heat-2" x="685" y="153" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="174" text-anchor="middle">2.07</text>
|
||||
<text class="nj-charts-cell" x="730" y="174" text-anchor="middle">2.09</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="210" text-anchor="end">sonic-rs (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · validate 1.79× the time of the fastest library (fully validating) way: IgnoredAny twitter.json: 501 µs citm_catalog.json: 970 µs canada.json: 2,249 µs jeopardy.json: 54,369 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · validate 1.77× the time of the fastest library (fully validating) way: IgnoredAny twitter.json: 501 µs citm_catalog.json: 970 µs canada.json: 2,249 µs jeopardy.json: 54,369 µs">
|
||||
<rect class="nj-heat-2" x="225" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="210" text-anchor="middle">1.79</text>
|
||||
<text class="nj-charts-cell" x="270" y="210" text-anchor="middle">1.77</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · sum 1.11× the time of the fastest library (fully validating) way: visitor twitter.json: 501 µs citm_catalog.json: 1,123 µs canada.json: 4,397 µs jeopardy.json: 59,583 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · sum 1.13× the time of the fastest library (fully validating) way: visitor twitter.json: 501 µs citm_catalog.json: 1,123 µs canada.json: 4,397 µs jeopardy.json: 59,583 µs">
|
||||
<rect class="nj-heat-0" x="317" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="210" text-anchor="middle">1.11</text>
|
||||
<text class="nj-charts-cell" x="362" y="210" text-anchor="middle">1.13</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · select 1.37× the time of the fastest library (fully validating) way: structs twitter.json: 504 µs citm_catalog.json: 1,033 µs canada.json: 2,328 µs jeopardy.json: 90,486 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · select 1.33× the time of the fastest library (fully validating) way: structs twitter.json: 504 µs citm_catalog.json: 1,033 µs canada.json: 2,328 µs jeopardy.json: 90,486 µs">
|
||||
<rect class="nj-heat-1" x="409" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="210" text-anchor="middle">1.37</text>
|
||||
<text class="nj-charts-cell" x="454" y="210" text-anchor="middle">1.33</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · edit 1.91× the time of the fastest library (fully validating) way: Value twitter.json: 1,197 µs citm_catalog.json: 2,389 µs canada.json: 7,744 µs jeopardy.json: 390,952 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · edit 1.86× the time of the fastest library (fully validating) way: Value twitter.json: 1,197 µs citm_catalog.json: 2,389 µs canada.json: 7,744 µs jeopardy.json: 390,952 µs">
|
||||
<rect class="nj-heat-2" x="501" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="210" text-anchor="middle">1.91</text>
|
||||
<text class="nj-charts-cell" x="546" y="210" text-anchor="middle">1.86</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · minify 1.73× the time of the fastest library (fully validating) way: Value twitter.json: 1,000 µs citm_catalog.json: 2,097 µs canada.json: 7,795 µs jeopardy.json: 215,280 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · minify 1.71× the time of the fastest library (fully validating) way: Value twitter.json: 1,000 µs citm_catalog.json: 2,097 µs canada.json: 7,795 µs jeopardy.json: 215,280 µs">
|
||||
<rect class="nj-heat-2" x="593" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="210" text-anchor="middle">1.73</text>
|
||||
<text class="nj-charts-cell" x="638" y="210" text-anchor="middle">1.71</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · write 2.07× the time of the fastest library (fully validating) way: Value twitter.json: 434 µs citm_catalog.json: 927 µs canada.json: 3,987 µs jeopardy.json: 109,176 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="sonic-rs (Rust) · write 2.00× the time of the fastest library (fully validating) way: Value twitter.json: 434 µs citm_catalog.json: 927 µs canada.json: 3,987 µs jeopardy.json: 109,176 µs">
|
||||
<rect class="nj-heat-2" x="685" y="189" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="210" text-anchor="middle">2.07</text>
|
||||
<text class="nj-charts-cell" x="730" y="210" text-anchor="middle">2.00</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="246" text-anchor="end">Boost.J​SON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · validate 1.88× the time of the fastest library (fully validating) way: S​AX (numbers: none) twitter.json: 710 µs citm_catalog.json: 969 µs canada.json: 1,718 µs jeopardy.json: 61,476 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · validate 1.83× the time of the fastest library (fully validating) twitter.json: 730 µs · S​AX (numbers: none) citm_catalog.json: 934 µs · S​AX (numbers: none) canada.json: 1,637 µs · S​AX (numbers: none) jeopardy.json: 60,745 µs · S​AX">
|
||||
<rect class="nj-heat-2" x="225" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="246" text-anchor="middle">1.88</text>
|
||||
<text class="nj-charts-cell" x="270" y="246" text-anchor="middle">1.83</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · sum 1.33× the time of the fastest library (fully validating) way: S​AX twitter.json: 734 µs citm_catalog.json: 1,030 µs canada.json: 6,103 µs jeopardy.json: 64,382 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · sum 1.30× the time of the fastest library (fully validating) way: S​AX twitter.json: 746 µs citm_catalog.json: 1,025 µs canada.json: 5,370 µs jeopardy.json: 63,333 µs">
|
||||
<rect class="nj-heat-1" x="317" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="246" text-anchor="middle">1.33</text>
|
||||
<text class="nj-charts-cell" x="362" y="246" text-anchor="middle">1.30</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · select 2.30× the time of the fastest library (fully validating) twitter.json: 884 µs · parse_into structs citm_catalog.json: 1,380 µs · parse_into structs canada.json: 7,217 µs · parse jeopardy.json: 99,078 µs · parse_into structs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · select 2.23× the time of the fastest library (fully validating) twitter.json: 899 µs · parse_into structs citm_catalog.json: 1,353 µs · parse_into structs canada.json: 7,011 µs · parse jeopardy.json: 100,039 µs · parse_into structs">
|
||||
<rect class="nj-heat-2" x="409" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="246" text-anchor="middle">2.30</text>
|
||||
<text class="nj-charts-cell" x="454" y="246" text-anchor="middle">2.23</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · edit 2.55× the time of the fastest library (fully validating) way: parse twitter.json: 1,963 µs citm_catalog.json: 2,936 µs canada.json: 13,414 µs jeopardy.json: 356,244 µs">
|
||||
<rect class="nj-heat-3" x="501" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="246" text-anchor="middle">2.55</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · edit 2.45× the time of the fastest library (fully validating) way: parse twitter.json: 1,889 µs citm_catalog.json: 2,952 µs canada.json: 13,537 µs jeopardy.json: 346,542 µs">
|
||||
<rect class="nj-heat-2" x="501" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="246" text-anchor="middle">2.45</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · minify 2.92× the time of the fastest library (fully validating) way: parse + serialize twitter.json: 2,086 µs citm_catalog.json: 2,919 µs canada.json: 13,974 µs jeopardy.json: 334,468 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · minify 2.83× the time of the fastest library (fully validating) way: parse + serialize twitter.json: 1,907 µs citm_catalog.json: 2,950 µs canada.json: 13,662 µs jeopardy.json: 342,183 µs">
|
||||
<rect class="nj-heat-3" x="593" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="246" text-anchor="middle">2.92</text>
|
||||
<text class="nj-charts-cell" x="638" y="246" text-anchor="middle">2.83</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · write 2.56× the time of the fastest library (fully validating) way: serialize twitter.json: 480 µs citm_catalog.json: 1,016 µs canada.json: 6,154 µs jeopardy.json: 139,022 µs">
|
||||
<rect class="nj-heat-3" x="685" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="246" text-anchor="middle">2.56</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Boost.J​SON · write 2.50× the time of the fastest library (fully validating) way: serialize twitter.json: 474 µs citm_catalog.json: 1,003 µs canada.json: 6,012 µs jeopardy.json: 148,120 µs">
|
||||
<rect class="nj-heat-2" x="685" y="225" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="246" text-anchor="middle">2.50</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="282" text-anchor="end">simd-json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · validate 3.35× the time of the fastest library (fully validating) way: tape (copy) twitter.json: 567 µs citm_catalog.json: 1,430 µs canada.json: 4,359 µs jeopardy.json: 207,551 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="282" text-anchor="middle">3.35</text>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="282" text-anchor="end">nlohmann/json json</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · validate 1.34× the time of the fastest library (fully validating) way: accept twitter.json: 312 µs citm_catalog.json: 686 µs canada.json: 2,345 µs jeopardy.json: 38,948 µs">
|
||||
<rect class="nj-heat-1" x="225" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="282" text-anchor="middle">1.34</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · sum 1.88× the time of the fastest library (fully validating) way: visitor (copy) twitter.json: 681 µs citm_catalog.json: 1,650 µs canada.json: 5,083 µs jeopardy.json: 210,185 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="317" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="282" text-anchor="middle">1.88</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · sum 1.04× the time of the fastest library (fully validating) way: sax twitter.json: 451 µs citm_catalog.json: 941 µs canada.json: 3,816 µs jeopardy.json: 64,406 µs">
|
||||
<rect class="nj-heat-0" x="317" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="282" text-anchor="middle">1.04</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · select 2.61× the time of the fastest library (fully validating) way: structs (copy) twitter.json: 679 µs citm_catalog.json: 1,731 µs canada.json: 5,144 µs jeopardy.json: 239,164 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="282" text-anchor="middle">2.61</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · select 6.05× the time of the fastest library (fully validating) way: parse twitter.json: 3,032 µs citm_catalog.json: 4,466 µs canada.json: 9,085 µs jeopardy.json: 376,812 µs">
|
||||
<rect class="nj-heat-4" x="409" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="282" text-anchor="middle">6.05</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · edit 2.89× the time of the fastest library (fully validating) twitter.json: 1,862 µs · borrowed (copy) citm_catalog.json: 4,194 µs · borrowed (copy) canada.json: 14,896 µs · owned (copy) jeopardy.json: 391,369 µs · borrowed (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · edit 3.37× the time of the fastest library (fully validating) twitter.json: 2,503 µs · ordered_json citm_catalog.json: 4,414 µs · ordered_json canada.json: 13,479 µs · parse jeopardy.json: 622,816 µs · ordered_json">
|
||||
<rect class="nj-heat-3" x="501" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="282" text-anchor="middle">2.89</text>
|
||||
<text class="nj-charts-cell" x="546" y="282" text-anchor="middle">3.37</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · minify 3.39× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 1,889 µs citm_catalog.json: 4,196 µs canada.json: 15,716 µs jeopardy.json: 414,377 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · minify 4.13× the time of the fastest library (fully validating) way: parse + dump twitter.json: 3,417 µs citm_catalog.json: 5,153 µs canada.json: 13,425 µs jeopardy.json: 504,511 µs">
|
||||
<rect class="nj-heat-3" x="593" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="282" text-anchor="middle">3.39</text>
|
||||
<text class="nj-charts-cell" x="638" y="282" text-anchor="middle">4.13</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · write 2.35× the time of the fastest library (fully validating) way: borrowed twitter.json: 582 µs citm_catalog.json: 800 µs canada.json: 5,147 µs jeopardy.json: 122,623 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · write 1.85× the time of the fastest library (fully validating) way: dump twitter.json: 413 µs citm_catalog.json: 617 µs canada.json: 4,036 µs jeopardy.json: 124,865 µs">
|
||||
<rect class="nj-heat-2" x="685" y="261" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="282" text-anchor="middle">2.35</text>
|
||||
<text class="nj-charts-cell" x="730" y="282" text-anchor="middle">1.85</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="318" text-anchor="end">serde_json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate 2.22× the time of the fastest library (fully validating) way: from_utf8 + IgnoredAny twitter.json: 624 µs citm_catalog.json: 1,440 µs canada.json: 2,406 µs jeopardy.json: 64,720 µs">
|
||||
<rect class="nj-heat-2" x="225" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="318" text-anchor="middle">2.22</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="318" text-anchor="end">simd-json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · validate 3.31× the time of the fastest library (fully validating) way: tape (copy) twitter.json: 567 µs citm_catalog.json: 1,430 µs canada.json: 4,359 µs jeopardy.json: 207,551 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="318" text-anchor="middle">3.31</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate, checking less 1.98× the time of the fastest fully validating library way: IgnoredAny twitter.json: 484 µs citm_catalog.json: 1,370 µs canada.json: 2,314 µs jeopardy.json: 58,247 µs trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="271" y="297" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="312" text-anchor="middle">1.98</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="325" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · sum 2.32× the time of the fastest library (fully validating) way: visitor twitter.json: 1,311 µs citm_catalog.json: 2,288 µs canada.json: 7,127 µs jeopardy.json: 129,497 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · sum 1.91× the time of the fastest library (fully validating) way: visitor (copy) twitter.json: 681 µs citm_catalog.json: 1,650 µs canada.json: 5,083 µs jeopardy.json: 210,185 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="317" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="318" text-anchor="middle">2.32</text>
|
||||
<text class="nj-charts-cell" x="362" y="318" text-anchor="middle">1.91</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select 1.75× the time of the fastest library (fully validating) way: from_utf8 + structs twitter.json: 701 µs citm_catalog.json: 1,532 µs canada.json: 2,529 µs jeopardy.json: 107,316 µs">
|
||||
<rect class="nj-heat-2" x="409" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="318" text-anchor="middle">1.75</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · select 2.54× the time of the fastest library (fully validating) way: structs (copy) twitter.json: 679 µs citm_catalog.json: 1,731 µs canada.json: 5,144 µs jeopardy.json: 239,164 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="318" text-anchor="middle">2.54</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · edit 4.55× the time of the fastest library (fully validating) way: Value twitter.json: 4,042 µs citm_catalog.json: 6,586 µs canada.json: 16,631 µs jeopardy.json: 632,766 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · edit 2.82× the time of the fastest library (fully validating) twitter.json: 1,862 µs · borrowed (copy) citm_catalog.json: 4,194 µs · borrowed (copy) canada.json: 14,896 µs · owned (copy) jeopardy.json: 391,369 µs · borrowed (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="501" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="318" text-anchor="middle">4.55</text>
|
||||
<text class="nj-charts-cell" x="546" y="318" text-anchor="middle">2.82</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · minify 4.94× the time of the fastest library (fully validating) way: Value twitter.json: 4,012 µs citm_catalog.json: 6,583 µs canada.json: 17,306 µs jeopardy.json: 509,702 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · minify 3.35× the time of the fastest library (fully validating) way: borrowed (copy) twitter.json: 1,889 µs citm_catalog.json: 4,196 µs canada.json: 15,716 µs jeopardy.json: 414,377 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="593" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="318" text-anchor="middle">4.94</text>
|
||||
<text class="nj-charts-cell" x="638" y="318" text-anchor="middle">3.35</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · write 2.28× the time of the fastest library (fully validating) way: Value twitter.json: 550 µs citm_catalog.json: 887 µs canada.json: 4,005 µs jeopardy.json: 134,163 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="simd-json (Rust) · write 2.28× the time of the fastest library (fully validating) way: borrowed twitter.json: 582 µs citm_catalog.json: 800 µs canada.json: 5,147 µs jeopardy.json: 122,623 µs">
|
||||
<rect class="nj-heat-2" x="685" y="297" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="318" text-anchor="middle">2.28</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="354" text-anchor="end">Glaze</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · validate 2.21× the time of the fastest library (fully validating) way: validate_json twitter.json: 590 µs citm_catalog.json: 1,545 µs canada.json: 1,980 µs jeopardy.json: 76,009 µs">
|
||||
<rect class="nj-heat-2" x="225" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="354" text-anchor="middle">2.21</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="354" text-anchor="end">serde_json (Rust)</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate 2.19× the time of the fastest library (fully validating) way: from_utf8 + IgnoredAny twitter.json: 624 µs citm_catalog.json: 1,440 µs canada.json: 2,406 µs jeopardy.json: 64,720 µs">
|
||||
<rect class="nj-heat-2" x="225" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="354" text-anchor="middle">2.19</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum 4.04× the time of the fastest library (fully validating) way: generic (double, strict) twitter.json: 2,345 µs citm_catalog.json: 4,080 µs canada.json: 10,576 µs jeopardy.json: 250,685 µs">
|
||||
<rect class="nj-heat-3" x="317" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="354" text-anchor="middle">4.04</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · validate, checking less 1.96× the time of the fastest fully validating library way: IgnoredAny twitter.json: 484 µs citm_catalog.json: 1,370 µs canada.json: 2,314 µs jeopardy.json: 58,247 µs trusts U​TF-8 in the strings it skips (from_slice); strings it reads are checked">
|
||||
<rect class="nj-heat-2" x="271" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="348" text-anchor="middle">1.96</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="361" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select 1.44× the time of the fastest library (fully validating) way: structs (validate_skipped) twitter.json: 529 µs citm_catalog.json: 1,435 µs canada.json: 1,913 µs jeopardy.json: 91,253 µs">
|
||||
<rect class="nj-heat-1" x="409" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="354" text-anchor="middle">1.44</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · sum 2.35× the time of the fastest library (fully validating) way: visitor twitter.json: 1,311 µs citm_catalog.json: 2,288 µs canada.json: 7,127 µs jeopardy.json: 129,497 µs">
|
||||
<rect class="nj-heat-2" x="317" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="354" text-anchor="middle">2.35</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select, checking less 0.60× the time of the fastest fully validating library way: structs twitter.json: 342 µs citm_catalog.json: 410 µs canada.json: 431 µs jeopardy.json: 66,069 µs reads into structs and steps over fields it doesn't know without checking them (validate_skipped checks them too)">
|
||||
<rect class="nj-heat-0" x="455" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="348" text-anchor="middle">0.60</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="361" text-anchor="middle">P</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · select 1.70× the time of the fastest library (fully validating) way: from_utf8 + structs twitter.json: 701 µs citm_catalog.json: 1,532 µs canada.json: 2,529 µs jeopardy.json: 107,316 µs">
|
||||
<rect class="nj-heat-2" x="409" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="354" text-anchor="middle">1.70</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · edit 4.85× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,525 µs citm_catalog.json: 6,551 µs canada.json: 23,644 µs jeopardy.json: 661,941 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · edit 4.44× the time of the fastest library (fully validating) way: Value twitter.json: 4,042 µs citm_catalog.json: 6,586 µs canada.json: 16,631 µs jeopardy.json: 632,766 µs">
|
||||
<rect class="nj-heat-3" x="501" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="354" text-anchor="middle">4.85</text>
|
||||
<text class="nj-charts-cell" x="546" y="354" text-anchor="middle">4.44</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify 5.10× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,780 µs citm_catalog.json: 6,416 µs canada.json: 23,765 µs jeopardy.json: 458,311 µs">
|
||||
<rect class="nj-heat-4" x="593" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="354" text-anchor="middle">5.10</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · minify 4.88× the time of the fastest library (fully validating) way: Value twitter.json: 4,012 µs citm_catalog.json: 6,583 µs canada.json: 17,306 µs jeopardy.json: 509,702 µs">
|
||||
<rect class="nj-heat-3" x="593" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="354" text-anchor="middle">4.88</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify, checking less 0.73× the time of the fastest fully validating library way: minify_json twitter.json: 422 µs citm_catalog.json: 1,144 µs canada.json: 2,350 µs jeopardy.json: 96,405 µs minify_json only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="333" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="348" text-anchor="middle">0.73</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="361" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · write 1.84× the time of the fastest library (fully validating) twitter.json: 360 µs · generic citm_catalog.json: 660 µs · generic canada.json: 3,714 µs · generic (strict) jeopardy.json: 124,598 µs · generic">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="serde_json (Rust) · write 2.21× the time of the fastest library (fully validating) way: Value twitter.json: 550 µs citm_catalog.json: 887 µs canada.json: 4,005 µs jeopardy.json: 134,163 µs">
|
||||
<rect class="nj-heat-2" x="685" y="333" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="354" text-anchor="middle">1.84</text>
|
||||
<text class="nj-charts-cell" x="730" y="354" text-anchor="middle">2.21</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel nj-charts-name-json" x="216" y="390" text-anchor="end">nlohmann/json json</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · validate 2.74× the time of the fastest library (fully validating) way: accept twitter.json: 677 µs citm_catalog.json: 1,433 µs canada.json: 4,584 µs jeopardy.json: 73,561 µs">
|
||||
<rect class="nj-heat-3" x="225" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="390" text-anchor="middle">2.74</text>
|
||||
<text class="nj-charts-rowlabel " x="216" y="390" text-anchor="end">Glaze</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · validate 2.05× the time of the fastest library (fully validating) way: validate_json twitter.json: 584 µs citm_catalog.json: 1,402 µs canada.json: 1,837 µs jeopardy.json: 71,382 µs">
|
||||
<rect class="nj-heat-2" x="225" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="270" y="390" text-anchor="middle">2.05</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · sum 1.67× the time of the fastest library (fully validating) way: sax twitter.json: 797 µs citm_catalog.json: 1,548 µs canada.json: 6,004 µs jeopardy.json: 101,516 µs">
|
||||
<rect class="nj-heat-2" x="317" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="362" y="390" text-anchor="middle">1.67</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum 4.06× the time of the fastest library (fully validating) way: generic (double, strict) twitter.json: 2,341 µs citm_catalog.json: 4,037 µs canada.json: 10,434 µs jeopardy.json: 249,828 µs">
|
||||
<rect class="nj-heat-3" x="317" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="339.5" y="390" text-anchor="middle">4.06</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · select 7.24× the time of the fastest library (fully validating) way: structs (from_json) twitter.json: 3,325 µs citm_catalog.json: 5,126 µs canada.json: 11,908 µs jeopardy.json: 423,362 µs">
|
||||
<rect class="nj-heat-4" x="409" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="454" y="390" text-anchor="middle">7.24</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · sum, checking less 3.93× the time of the fastest fully validating library twitter.json: 2,341 µs · generic (double, strict) (validates fully) citm_catalog.json: 4,037 µs · generic (double, strict) (validates fully) canada.json: 10,434 µs · generic (double, strict) (validates fully) jeopardy.json: 219,119 µs · lazy_json reads lazily: lazy_json reads only what you ask for and steps over the rest">
|
||||
<rect class="nj-heat-3" x="363" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="384.5" y="384" text-anchor="middle">3.93</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="384.5" y="397" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · edit 3.81× the time of the fastest library (fully validating) way: ordered_json twitter.json: 2,912 µs citm_catalog.json: 4,999 µs canada.json: 15,603 µs jeopardy.json: 604,744 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select 1.39× the time of the fastest library (fully validating) way: structs (validate_skipped) twitter.json: 523 µs citm_catalog.json: 1,473 µs canada.json: 1,853 µs jeopardy.json: 89,506 µs">
|
||||
<rect class="nj-heat-1" x="409" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="390" text-anchor="middle">1.39</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · select, checking less 0.58× the time of the fastest fully validating library way: structs twitter.json: 338 µs citm_catalog.json: 406 µs canada.json: 434 µs jeopardy.json: 66,029 µs reads into structs and steps over fields it doesn't know without checking them (validate_skipped checks them too)">
|
||||
<rect class="nj-heat-0" x="455" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="384" text-anchor="middle">0.58</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="397" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · edit 4.71× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,474 µs citm_catalog.json: 6,531 µs canada.json: 23,193 µs jeopardy.json: 673,526 µs">
|
||||
<rect class="nj-heat-3" x="501" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="546" y="390" text-anchor="middle">3.81</text>
|
||||
<text class="nj-charts-cell" x="546" y="390" text-anchor="middle">4.71</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · minify 4.79× the time of the fastest library (fully validating) way: parse + dump twitter.json: 4,143 µs citm_catalog.json: 5,702 µs canada.json: 16,463 µs jeopardy.json: 528,092 µs">
|
||||
<rect class="nj-heat-3" x="593" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="638" y="390" text-anchor="middle">4.79</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify 4.96× the time of the fastest library (fully validating) way: generic (strict) twitter.json: 3,359 µs citm_catalog.json: 6,437 µs canada.json: 23,896 µs jeopardy.json: 480,814 µs">
|
||||
<rect class="nj-heat-3" x="593" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="390" text-anchor="middle">4.96</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="nlohmann/json json · write 1.99× the time of the fastest library (fully validating) way: dump twitter.json: 471 µs citm_catalog.json: 644 µs canada.json: 4,344 µs jeopardy.json: 114,096 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · minify, checking less 0.70× the time of the fastest fully validating library way: minify_json twitter.json: 417 µs citm_catalog.json: 1,116 µs canada.json: 2,113 µs jeopardy.json: 97,812 µs minify_json only removes whitespace, without parsing the values">
|
||||
<rect class="nj-heat-0" x="639" y="369" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="384" text-anchor="middle">0.70</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="397" text-anchor="middle">P</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="Glaze · write 1.80× the time of the fastest library (fully validating) way: generic twitter.json: 336 µs citm_catalog.json: 682 µs canada.json: 3,750 µs jeopardy.json: 133,730 µs">
|
||||
<rect class="nj-heat-2" x="685" y="369" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="390" text-anchor="middle">1.99</text>
|
||||
<text class="nj-charts-cell" x="730" y="390" text-anchor="middle">1.80</text>
|
||||
</g>
|
||||
<text class="nj-charts-rowlabel " x="216" y="426" text-anchor="end">RapidJSON</text>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate 4.50× the time of the fastest library (fully validating) twitter.json: 1,552 µs · insitu (copy untimed) citm_catalog.json: 2,210 µs · insitu (copy untimed) canada.json: 4,104 µs · S​AX (string stream, default precision) jeopardy.json: 168,747 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate 3.88× the time of the fastest library (fully validating) twitter.json: 1,201 µs · insitu (copy) citm_catalog.json: 1,931 µs · insitu (copy) canada.json: 4,114 µs · S​AX (string stream, default precision) jeopardy.json: 145,137 µs · insitu (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="225" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="247.5" y="426" text-anchor="middle">4.50</text>
|
||||
<text class="nj-charts-cell" x="247.5" y="426" text-anchor="middle">3.88</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate, checking less 3.40× the time of the fastest fully validating library twitter.json: 1,082 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,570 µs · S​AX (default precision) (no encoding check) canada.json: 4,104 µs · S​AX (string stream, default precision) (validates fully) jeopardy.json: 110,856 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · validate, checking less 3.36× the time of the fastest fully validating library twitter.json: 1,033 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,487 µs · S​AX (default precision) (no encoding check) canada.json: 3,966 µs · S​AX (string stream, default precision) (no encoding check) jeopardy.json: 127,587 µs · S​AX (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="271" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="292.5" y="420" text-anchor="middle">3.40</text>
|
||||
<text class="nj-charts-cell" x="292.5" y="420" text-anchor="middle">3.36</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="292.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum 2.98× the time of the fastest library (fully validating) twitter.json: 1,616 µs · insitu (copy untimed) citm_catalog.json: 2,290 µs · insitu (copy untimed) canada.json: 11,183 µs · S​AX (string stream) jeopardy.json: 181,500 µs · insitu (copy untimed)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum 2.67× the time of the fastest library (fully validating) twitter.json: 1,256 µs · insitu (copy) citm_catalog.json: 2,114 µs · insitu (copy) canada.json: 11,059 µs · S​AX (string stream) jeopardy.json: 155,532 µs · insitu (copy) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="317" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="339.5" y="426" text-anchor="middle">2.98</text>
|
||||
<text class="nj-charts-cell" x="339.5" y="426" text-anchor="middle">2.67</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum, checking less 2.29× the time of the fastest fully validating library twitter.json: 1,130 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,743 µs · S​AX (no encoding check) canada.json: 11,109 µs · S​AX (string stream) (no encoding check) jeopardy.json: 119,706 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · sum, checking less 2.34× the time of the fastest fully validating library twitter.json: 1,085 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,750 µs · S​AX (no encoding check) canada.json: 11,008 µs · S​AX (string stream) (no encoding check) jeopardy.json: 128,734 µs · S​AX (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-2" x="363" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="384.5" y="420" text-anchor="middle">2.29</text>
|
||||
<text class="nj-charts-cell" x="384.5" y="420" text-anchor="middle">2.34</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="384.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select 3.84× the time of the fastest library (fully validating) way: insitu (copy untimed) twitter.json: 1,560 µs citm_catalog.json: 2,127 µs canada.json: 11,547 µs jeopardy.json: 176,066 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select 3.39× the time of the fastest library (fully validating) way: insitu (copy) twitter.json: 1,207 µs citm_catalog.json: 1,947 µs canada.json: 11,910 µs jeopardy.json: 164,386 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="409" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="431.5" y="426" text-anchor="middle">3.84</text>
|
||||
<text class="nj-charts-cell" x="431.5" y="426" text-anchor="middle">3.39</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select, checking less 3.06× the time of the fastest fully validating library twitter.json: 1,079 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 1,817 µs · insitu (copy untimed) (no encoding check) canada.json: 11,436 µs · Document (string stream) (no encoding check) jeopardy.json: 122,354 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · select, checking less 3.12× the time of the fastest fully validating library twitter.json: 1,037 µs · insitu (copy) (no encoding check) citm_catalog.json: 1,847 µs · insitu (copy) (no encoding check) canada.json: 11,692 µs · Document (no encoding check) jeopardy.json: 147,489 µs · insitu (copy) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="455" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="476.5" y="420" text-anchor="middle">3.06</text>
|
||||
<text class="nj-charts-cell" x="476.5" y="420" text-anchor="middle">3.12</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="476.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit 2.92× the time of the fastest library (fully validating) twitter.json: 2,333 µs · insitu (copy untimed) citm_catalog.json: 3,133 µs · insitu (copy untimed) canada.json: 20,518 µs · insitu (copy) jeopardy.json: 315,892 µs · insitu (copy untimed) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit 2.65× the time of the fastest library (fully validating) way: insitu (copy) twitter.json: 1,920 µs citm_catalog.json: 2,977 µs canada.json: 21,152 µs jeopardy.json: 293,851 µs (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="501" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="523.5" y="426" text-anchor="middle">2.92</text>
|
||||
<text class="nj-charts-cell" x="523.5" y="426" text-anchor="middle">2.65</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit, checking less 2.58× the time of the fastest fully validating library twitter.json: 1,838 µs · insitu (copy untimed) (no encoding check) citm_catalog.json: 2,836 µs · insitu (copy untimed) (no encoding check) canada.json: 20,320 µs · Document (string stream) (no encoding check) jeopardy.json: 271,888 µs · insitu (copy untimed) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · edit, checking less 2.52× the time of the fastest fully validating library twitter.json: 1,747 µs · insitu (copy) (no encoding check) citm_catalog.json: 2,823 µs · insitu (copy) (no encoding check) canada.json: 20,998 µs · Document (no encoding check) jeopardy.json: 280,165 µs · insitu (copy) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) (copy): parses in place, on a copy of the input that is part of the time">
|
||||
<rect class="nj-heat-3" x="547" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="568.5" y="420" text-anchor="middle">2.58</text>
|
||||
<text class="nj-charts-cell" x="568.5" y="420" text-anchor="middle">2.52</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="568.5" y="433" text-anchor="middle">U</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify 3.64× the time of the fastest library (fully validating) twitter.json: 3,015 µs · S​AX to Writer citm_catalog.json: 3,012 µs · S​AX to Writer canada.json: 21,177 µs · Document + Writer jeopardy.json: 355,727 µs · S​AX to Writer (string stream)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify 3.64× the time of the fastest library (fully validating) twitter.json: 2,746 µs · S​AX to Writer (string stream) citm_catalog.json: 3,162 µs · S​AX to Writer (string stream) canada.json: 21,674 µs · S​AX to Writer jeopardy.json: 381,832 µs · S​AX to Writer (string stream)">
|
||||
<rect class="nj-heat-3" x="593" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="615.5" y="426" text-anchor="middle">3.64</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify, checking less 2.64× the time of the fastest fully validating library twitter.json: 1,978 µs · S​AX to Writer (no encoding check) citm_catalog.json: 2,493 µs · S​AX to Writer (no encoding check) canada.json: 15,512 µs · S​AX to Writer (raw numbers) (no encoding check) jeopardy.json: 249,235 µs · S​AX to Writer (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) copies each number's text instead of formatting it (kParseNumbersAsStringsFlag)">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · minify, checking less 2.61× the time of the fastest fully validating library twitter.json: 1,824 µs · S​AX to Writer (string stream) (no encoding check) citm_catalog.json: 2,672 µs · S​AX to Writer (string stream) (no encoding check) canada.json: 15,166 µs · S​AX to Writer (raw numbers) (no encoding check) jeopardy.json: 259,100 µs · S​AX to Writer (string stream) (no encoding check) trusts U​TF-8: RapidJSON's default (kParseValidateEncodingFlag checks it) copies each number's text instead of formatting it (kParseNumbersAsStringsFlag)">
|
||||
<rect class="nj-heat-3" x="639" y="405" width="44" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="660.5" y="420" text-anchor="middle">2.64</text>
|
||||
<text class="nj-charts-cell" x="660.5" y="420" text-anchor="middle">2.61</text>
|
||||
<text class="nj-charts-cell nj-charts-cell--small" x="660.5" y="433" text-anchor="middle">U N</text>
|
||||
</g>
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · write 3.11× the time of the fastest library (fully validating) way: Writer twitter.json: 717 µs citm_catalog.json: 1,033 µs canada.json: 9,017 µs jeopardy.json: 134,260 µs">
|
||||
<g class="nj-heat-cell" tabindex="0" data-tip="RapidJSON · write 2.95× the time of the fastest library (fully validating) way: Writer twitter.json: 661 µs citm_catalog.json: 1,015 µs canada.json: 8,980 µs jeopardy.json: 136,957 µs">
|
||||
<rect class="nj-heat-3" x="685" y="405" width="90" height="34" rx="3"/>
|
||||
<text class="nj-charts-cell" x="730" y="426" text-anchor="middle">3.11</text>
|
||||
<text class="nj-charts-cell" x="730" y="426" text-anchor="middle">2.95</text>
|
||||
</g>
|
||||
<text class="nj-charts-tick nj-charts-tick--l" x="8" y="472">time relative to the fastest fully validating library, less is better</text>
|
||||
<g><rect class="nj-heat-0" x="8" y="482" width="76" height="20" rx="3"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 46 KiB |
@@ -1,183 +1,183 @@
|
||||
benchmark,unit,3.12.0,3.13.0,speedup
|
||||
Accept/canada,ns,1.29488e+07,2.3494e+06,5.512
|
||||
Accept/citm_catalog,ns,6.53091e+06,923408,7.073
|
||||
Accept/floats,ns,1.15702e+08,2.26771e+07,5.102
|
||||
Accept/jeopardy,ns,2.20758e+08,5.92935e+07,3.723
|
||||
Accept/signed_ints,ns,1.17358e+08,2.82947e+07,4.148
|
||||
Accept/small_signed_ints,ns,5.75113e+07,1.80352e+07,3.189
|
||||
Accept/twitter,ns,2.51345e+06,483792,5.195
|
||||
Accept/unsigned_ints,ns,1.16297e+08,2.97181e+07,3.913
|
||||
BinaryToCbor/1024,ns,298.444,107.095,2.787
|
||||
BinaryToCbor/128,ns,248.661,116.711,2.131
|
||||
BinaryToCbor/16,ns,244.687,49.6325,4.930
|
||||
BinaryToCbor/16384,ns,952.115,413.62,2.302
|
||||
BinaryToCbor/2048,ns,328.419,125.183,2.624
|
||||
BinaryToCbor/256,ns,264.678,90.8937,2.912
|
||||
BinaryToCbor/32,ns,251.632,50.4059,4.992
|
||||
BinaryToCbor/32768,ns,1541.05,802.721,1.920
|
||||
BinaryToCbor/4096,ns,406.957,177.412,2.294
|
||||
BinaryToCbor/512,ns,289.876,102.063,2.840
|
||||
BinaryToCbor/64,ns,254.928,84.6434,3.012
|
||||
BinaryToCbor/8,ns,247.618,49.3761,5.015
|
||||
BinaryToCbor/8192,ns,514.281,256.456,2.005
|
||||
Copy/canada,ns,3.78116e+06,2.92734e+06,1.292
|
||||
Copy/citm_catalog,ns,1.7026e+06,1.51108e+06,1.127
|
||||
Copy/twitter,ns,840201,767400,1.095
|
||||
CopyAssign/canada,ns,3.86416e+06,2.94449e+06,1.312
|
||||
CopyAssign/citm_catalog,ns,1.76529e+06,1.58608e+06,1.113
|
||||
CopyAssign/twitter,ns,884985,790724,1.119
|
||||
CopyOnly/canada,ns,1.60229e+06,1.57507e+06,1.017
|
||||
CopyOnly/citm_catalog,ns,786244,817481,0.962
|
||||
CopyOnly/twitter,ns,423631,420649,1.007
|
||||
CopyRing/canada,ns,3.86433e+06,2.99657e+06,1.290
|
||||
CopyRing/citm_catalog,ns,1.84434e+06,1.60579e+06,1.149
|
||||
CopyRing/twitter,ns,951510,818035,1.163
|
||||
DestroyOnly/canada,ns,2.22138e+06,1.40157e+06,1.585
|
||||
DestroyOnly/citm_catalog,ns,926244,711471,1.302
|
||||
DestroyOnly/twitter,ns,416055,336082,1.238
|
||||
Diff/canada,ns,3.98055e+07,3.80466e+06,10.462
|
||||
Diff/citm_catalog,ns,7.1859e+06,1.12351e+06,6.396
|
||||
Diff/twitter,ns,5.11261e+06,661062,7.734
|
||||
Dump/canada / -,ns,6.95189e+06,2.33647e+06,2.975
|
||||
Dump/canada / 4,ns,9.09882e+06,3.10291e+06,2.932
|
||||
Dump/citm_catalog / -,ns,1.42117e+06,295678,4.806
|
||||
Dump/citm_catalog / 4,ns,1.98589e+06,422600,4.699
|
||||
Dump/floats / -,ns,6.4332e+07,2.37747e+07,2.706
|
||||
Dump/floats / 4,ns,7.25695e+07,2.46207e+07,2.947
|
||||
Dump/jeopardy / -,ns,2.06771e+08,3.17494e+07,6.513
|
||||
Dump/jeopardy / 4,ns,2.27967e+08,3.53626e+07,6.447
|
||||
Dump/signed_ints / -,ns,2.40551e+07,1.0736e+07,2.241
|
||||
Dump/signed_ints / 4,ns,3.25192e+07,1.1333e+07,2.869
|
||||
Dump/small_signed_ints / -,ns,1.81398e+07,8.12457e+06,2.233
|
||||
Dump/small_signed_ints / 4,ns,2.55296e+07,8.80796e+06,2.898
|
||||
Dump/twitter / -,ns,1.43584e+06,214252,6.702
|
||||
Dump/twitter / 4,ns,1.63183e+06,253042,6.449
|
||||
Dump/unsigned_ints / -,ns,2.39512e+07,8.11916e+06,2.950
|
||||
Dump/unsigned_ints / 4,ns,3.22761e+07,8.58925e+06,3.758
|
||||
Equal/canada,ns,473767,349284,1.356
|
||||
Equal/citm_catalog,ns,279548,263329,1.062
|
||||
Equal/twitter,ns,145555,131450,1.107
|
||||
Flatten/canada,ns,2.94475e+07,1.11184e+07,2.649
|
||||
Flatten/citm_catalog,ns,6.7155e+06,3.07325e+06,2.185
|
||||
Flatten/twitter,ns,3.66077e+06,2.10599e+06,1.738
|
||||
FlattenOrdered/citm_catalog,ns,2.62026e+08,1.42645e+06,183.691
|
||||
FlattenOrdered/twitter,ns,5.1275e+07,890275,57.595
|
||||
FromBinaryBuffer/bjdata / canada,ns,8.81972e+06,4.16727e+06,2.116
|
||||
FromBinaryBuffer/bjdata / twitter,ns,3.32045e+06,976266,3.401
|
||||
FromBinaryBuffer/bjdata_optimized / canada,ns,9.2386e+06,2.47996e+06,3.725
|
||||
FromBinaryBuffer/bjdata_optimized / twitter,ns,3.30526e+06,985625,3.353
|
||||
FromBinaryBuffer/bson / canada,ns,1.00372e+07,4.31554e+06,2.326
|
||||
FromBinaryBuffer/bson / citm_catalog,ns,4.07611e+06,1.60647e+06,2.537
|
||||
FromBinaryBuffer/bson / twitter,ns,3.25635e+06,936933,3.476
|
||||
FromBinaryBuffer/cbor / canada,ns,8.89562e+06,2.11517e+06,4.206
|
||||
FromBinaryBuffer/cbor / citm_catalog,ns,3.94234e+06,1.45242e+06,2.714
|
||||
FromBinaryBuffer/cbor / floats,ns,3.0473e+07,5.47969e+06,5.561
|
||||
FromBinaryBuffer/cbor / jeopardy,ns,3.73185e+08,1.14934e+08,3.247
|
||||
FromBinaryBuffer/cbor / signed_ints,ns,3.66673e+07,9.88892e+06,3.708
|
||||
FromBinaryBuffer/cbor / twitter,ns,3.23196e+06,953415,3.390
|
||||
FromBinaryBuffer/msgpack / canada,ns,8.85983e+06,2.12215e+06,4.175
|
||||
FromBinaryBuffer/msgpack / citm_catalog,ns,3.84901e+06,1.4503e+06,2.654
|
||||
FromBinaryBuffer/msgpack / jeopardy,ns,3.73143e+08,1.11034e+08,3.361
|
||||
FromBinaryBuffer/msgpack / twitter,ns,3.2397e+06,954811,3.393
|
||||
FromBinaryBuffer/ubjson / canada,ns,8.84059e+06,4.20402e+06,2.103
|
||||
FromBinaryBuffer/ubjson / citm_catalog,ns,4.0708e+06,1.78566e+06,2.280
|
||||
FromBinaryBuffer/ubjson / jeopardy,ns,3.79093e+08,1.17024e+08,3.239
|
||||
FromBinaryBuffer/ubjson / twitter,ns,3.29948e+06,981057,3.363
|
||||
FromBinaryBuffer/ubjson_optimized / canada,ns,8.88909e+06,2.42788e+06,3.661
|
||||
FromBinaryBuffer/ubjson_optimized / twitter,ns,3.29784e+06,974810,3.383
|
||||
FromBinaryFile/bjdata / twitter,ns,1.09208e+07,1.94678e+06,5.610
|
||||
FromBinaryFile/bson / twitter,ns,1.07209e+07,1.84971e+06,5.796
|
||||
FromBinaryFile/cbor / canada,ns,1.49218e+07,4.48832e+06,3.325
|
||||
FromBinaryFile/cbor / twitter,ns,1.03718e+07,1.57388e+06,6.590
|
||||
FromBinaryFile/ubjson / canada,ns,1.43414e+07,6.42996e+06,2.230
|
||||
FromBinaryFile/ubjson / twitter,ns,1.09266e+07,1.97275e+06,5.539
|
||||
FromBinaryShape/containers / bjdata,ns,1.46977e+07,7.23447e+06,2.032
|
||||
FromBinaryShape/containers / bson,ns,1.75596e+07,7.88867e+06,2.226
|
||||
FromBinaryShape/containers / cbor,ns,1.46488e+07,4.15792e+06,3.523
|
||||
FromBinaryShape/containers / msgpack,ns,1.45853e+07,3.89266e+06,3.747
|
||||
FromBinaryShape/containers / ubjson,ns,1.49773e+07,7.23987e+06,2.069
|
||||
FromBinaryShape/containers / ubjson_optimized,ns,1.54989e+07,4.55976e+06,3.399
|
||||
FromBinaryShape/nested / bjdata,ns,96825.9,38335.1,2.526
|
||||
FromBinaryShape/nested / bson,ns,101356,42620.2,2.378
|
||||
FromBinaryShape/nested / cbor,ns,94929.8,35845.6,2.648
|
||||
FromBinaryShape/nested / msgpack,ns,92610.2,35078.3,2.640
|
||||
FromBinaryShape/nested / ubjson,ns,96090.6,38285.6,2.510
|
||||
FromBinaryShape/scalars / bjdata,ns,2.52616e+07,1.15856e+07,2.180
|
||||
FromBinaryShape/scalars / cbor,ns,2.62118e+07,5.88743e+06,4.452
|
||||
FromBinaryShape/scalars / msgpack,ns,2.50706e+07,5.65159e+06,4.436
|
||||
FromBinaryShape/scalars / ubjson,ns,2.53402e+07,1.16191e+07,2.181
|
||||
FromCborChunkedString/10000 chunks,ns,91845.9,82875.5,1.108
|
||||
FromMsgpack/canada,ns,1.48853e+07,4.56225e+06,3.263
|
||||
FromMsgpack/citm_catalog,ns,9.3559e+06,2.26246e+06,4.135
|
||||
FromMsgpack/floats,ns,6.12575e+07,2.86709e+07,2.137
|
||||
FromMsgpack/jeopardy,ns,1.16767e+09,1.90153e+08,6.141
|
||||
FromMsgpack/signed_ints,ns,6.38812e+07,3.28867e+07,1.942
|
||||
FromMsgpack/small_signed_ints,ns,6.44688e+07,3.44227e+07,1.873
|
||||
FromMsgpack/twitter,ns,1.02787e+07,1.48541e+06,6.920
|
||||
FromMsgpack/unsigned_ints,ns,5.7784e+07,2.83078e+07,2.041
|
||||
"GetArray<std::array<int, 1000>>",ns,2274.63,654.431,3.476
|
||||
GetArray<std::deque<int>>,ns,8288.3,1175.75,7.049
|
||||
GetArray<std::set<int>>,ns,60017.4,42504.9,1.412
|
||||
GetArray<std::vector<int>>,ns,6785.73,681.915,9.951
|
||||
GetMap/citm_catalog,ns,3.60313e+06,2.48546e+06,1.450
|
||||
GetVectorDouble/floats,ns,6.83612e+06,656162,10.418
|
||||
GetVectorInt/signed_ints,ns,8.22365e+06,3.46495e+06,2.373
|
||||
Iterate/canada,ns,897083,328035,2.735
|
||||
Iterate/citm_catalog,ns,305421,171245,1.784
|
||||
Iterate/twitter,ns,89996.6,61975.8,1.452
|
||||
JsonPointerAt/citm_catalog,ns,1.89898e+06,1.17751e+06,1.613
|
||||
JsonPointerAt/twitter,ns,817946,611519,1.338
|
||||
JsonPointerContains/citm_catalog,ns,2.8177e+06,1.26796e+06,2.222
|
||||
JsonPointerContains/twitter,ns,1.33508e+06,628630,2.124
|
||||
JsonPointerParse/citm_catalog,ns,5.81355e+06,2.24831e+06,2.586
|
||||
JsonPointerParse/twitter,ns,2.47971e+06,1.02159e+06,2.427
|
||||
JsonPointerToString/citm_catalog,ns,6.7858e+06,1.93924e+06,3.499
|
||||
JsonPointerToString/twitter,ns,2.23096e+06,834416,2.674
|
||||
ParseFILE/canada,ns,5.41907e+07,1.46942e+07,3.688
|
||||
ParseFILE/citm_catalog,ns,3.59542e+07,7.58092e+06,4.743
|
||||
ParseFILE/twitter,ns,1.4087e+07,3.44991e+06,4.083
|
||||
ParseFile/canada,ns,1.82792e+07,6.46954e+06,2.825
|
||||
ParseFile/citm_catalog,ns,8.12979e+06,2.52336e+06,3.222
|
||||
ParseFile/floats,ns,1.31229e+08,4.81407e+07,2.726
|
||||
ParseFile/jeopardy,ns,3.38017e+08,1.62098e+08,2.085
|
||||
ParseFile/signed_ints,ns,1.28749e+08,4.62304e+07,2.785
|
||||
ParseFile/small_signed_ints,ns,6.47398e+07,3.34103e+07,1.938
|
||||
ParseFile/twitter,ns,3.43041e+06,1.37495e+06,2.495
|
||||
ParseFile/unsigned_ints,ns,1.24001e+08,4.74365e+07,2.614
|
||||
ParseIndented/canada / 4,ns,3.4977e+07,5.37149e+06,6.512
|
||||
ParseIndented/citm_catalog / 4,ns,7.52423e+06,1.81376e+06,4.148
|
||||
ParseIndented/jeopardy / 4,ns,3.45046e+08,1.33383e+08,2.587
|
||||
ParseIndented/twitter / 4,ns,3.72283e+06,1.12645e+06,3.305
|
||||
ParseStreamValues/ndjson,ns,7.15876e+06,3.76965e+06,1.899
|
||||
ParseStreamValues/numbers,ns,1.92619e+06,383138,5.027
|
||||
ParseString/canada,ns,1.55213e+07,4.62776e+06,3.354
|
||||
ParseString/citm_catalog,ns,7.56417e+06,1.77967e+06,4.250
|
||||
ParseString/floats,ns,1.21779e+08,2.83035e+07,4.303
|
||||
ParseString/jeopardy,ns,3.16817e+08,1.30897e+08,2.420
|
||||
ParseString/signed_ints,ns,1.22931e+08,3.19852e+07,3.843
|
||||
ParseString/small_signed_ints,ns,6.2685e+07,2.49764e+07,2.510
|
||||
ParseString/twitter,ns,3.2961e+06,1.04867e+06,3.143
|
||||
ParseString/unsigned_ints,ns,1.21229e+08,3.29241e+07,3.682
|
||||
ParseStringOrdered/canada,ns,1.5388e+07,4.5275e+06,3.399
|
||||
ParseStringOrdered/citm_catalog,ns,1.15204e+07,1.68115e+06,6.853
|
||||
ParseStringOrdered/jeopardy,ns,3.73533e+08,1.13397e+08,3.294
|
||||
ParseStringOrdered/twitter,ns,4.5979e+06,948606,4.847
|
||||
Patch/canada,ns,1.03684e+07,3.47719e+06,2.982
|
||||
Patch/citm_catalog,ns,2.74522e+06,1.74191e+06,1.576
|
||||
Patch/twitter,ns,1.57928e+06,888657,1.777
|
||||
SaxParse/canada,ns,1.31023e+07,3.26697e+06,4.011
|
||||
SaxParse/citm_catalog,ns,6.54642e+06,966806,6.771
|
||||
SaxParse/twitter,ns,2.53102e+06,483052,5.240
|
||||
ToCbor/canada,ns,1.41339e+06,556912,2.538
|
||||
ToCbor/citm_catalog,ns,1.04743e+06,259178,4.041
|
||||
ToCbor/floats,ns,9.04677e+06,1.90094e+06,4.759
|
||||
ToCbor/jeopardy,ns,7.39339e+07,2.20678e+07,3.350
|
||||
ToCbor/signed_ints,ns,1.15333e+07,2.827e+06,4.080
|
||||
ToCbor/small_signed_ints,ns,1.0394e+07,2.47974e+06,4.192
|
||||
ToCbor/twitter,ns,658566,143397,4.593
|
||||
ToCbor/unsigned_ints,ns,8.17966e+06,2.81588e+06,2.905
|
||||
ToJsonStrings/copy,ns,6.12e+06,5.65303e+06,1.083
|
||||
ToJsonStrings/move,ns,6.13061e+06,3.13303e+06,1.957
|
||||
Unflatten/canada,ns,4.25276e+07,1.10995e+07,3.831
|
||||
Unflatten/citm_catalog,ns,1.01866e+07,3.62185e+06,2.813
|
||||
Unflatten/twitter,ns,4.74536e+06,2.21103e+06,2.146
|
||||
Accept/canada,ns,1.27789e+07,1.34304e+06,9.515
|
||||
Accept/citm_catalog,ns,6.47666e+06,474064,13.662
|
||||
Accept/floats,ns,1.14227e+08,1.72173e+07,6.634
|
||||
Accept/jeopardy,ns,2.18081e+08,2.79002e+07,7.816
|
||||
Accept/signed_ints,ns,1.15981e+08,2.33778e+07,4.961
|
||||
Accept/small_signed_ints,ns,5.64996e+07,1.31818e+07,4.286
|
||||
Accept/twitter,ns,2.48725e+06,234277,10.617
|
||||
Accept/unsigned_ints,ns,1.14729e+08,2.28147e+07,5.029
|
||||
BinaryToCbor/1024,ns,315.368,108.041,2.919
|
||||
BinaryToCbor/128,ns,266.074,114.105,2.332
|
||||
BinaryToCbor/16,ns,246.212,49.912,4.933
|
||||
BinaryToCbor/16384,ns,950.054,418.045,2.273
|
||||
BinaryToCbor/2048,ns,340.213,126.796,2.683
|
||||
BinaryToCbor/256,ns,279.79,91.7512,3.049
|
||||
BinaryToCbor/32,ns,262.471,50.3433,5.214
|
||||
BinaryToCbor/32768,ns,1578.4,837.8,1.884
|
||||
BinaryToCbor/4096,ns,431.963,174.276,2.479
|
||||
BinaryToCbor/512,ns,296.768,102.073,2.907
|
||||
BinaryToCbor/64,ns,259.159,84.2641,3.076
|
||||
BinaryToCbor/8,ns,250.574,49.9122,5.020
|
||||
BinaryToCbor/8192,ns,527.418,253.616,2.080
|
||||
Copy/canada,ns,3.68841e+06,2.9017e+06,1.271
|
||||
Copy/citm_catalog,ns,1.64706e+06,1.48507e+06,1.109
|
||||
Copy/twitter,ns,810558,728698,1.112
|
||||
CopyAssign/canada,ns,3.73912e+06,2.94393e+06,1.270
|
||||
CopyAssign/citm_catalog,ns,1.6545e+06,1.53713e+06,1.076
|
||||
CopyAssign/twitter,ns,817997,752415,1.087
|
||||
CopyOnly/canada,ns,1.53602e+06,1.52075e+06,1.010
|
||||
CopyOnly/citm_catalog,ns,754817,794741,0.950
|
||||
CopyOnly/twitter,ns,406966,410330,0.992
|
||||
CopyRing/canada,ns,3.74734e+06,2.92592e+06,1.281
|
||||
CopyRing/citm_catalog,ns,1.7477e+06,1.54757e+06,1.129
|
||||
CopyRing/twitter,ns,876191,784261,1.117
|
||||
DestroyOnly/canada,ns,2.16216e+06,1.38217e+06,1.564
|
||||
DestroyOnly/citm_catalog,ns,895535,681877,1.313
|
||||
DestroyOnly/twitter,ns,406450,326620,1.244
|
||||
Diff/canada,ns,3.91782e+07,3.75209e+06,10.442
|
||||
Diff/citm_catalog,ns,6.91552e+06,1.09211e+06,6.332
|
||||
Diff/twitter,ns,4.92965e+06,639734,7.706
|
||||
Dump/canada / -,ns,6.70617e+06,2.31399e+06,2.898
|
||||
Dump/canada / 4,ns,8.81664e+06,3.03083e+06,2.909
|
||||
Dump/citm_catalog / -,ns,1.39132e+06,295525,4.708
|
||||
Dump/citm_catalog / 4,ns,1.94729e+06,421536,4.620
|
||||
Dump/floats / -,ns,6.35321e+07,2.37757e+07,2.672
|
||||
Dump/floats / 4,ns,7.19879e+07,2.4663e+07,2.919
|
||||
Dump/jeopardy / -,ns,2.0176e+08,3.0624e+07,6.588
|
||||
Dump/jeopardy / 4,ns,2.20493e+08,3.43504e+07,6.419
|
||||
Dump/signed_ints / -,ns,2.36853e+07,1.07405e+07,2.205
|
||||
Dump/signed_ints / 4,ns,3.2029e+07,1.13731e+07,2.816
|
||||
Dump/small_signed_ints / -,ns,1.78623e+07,7.93339e+06,2.252
|
||||
Dump/small_signed_ints / 4,ns,2.50508e+07,8.80939e+06,2.844
|
||||
Dump/twitter / -,ns,1.40813e+06,213513,6.595
|
||||
Dump/twitter / 4,ns,1.59095e+06,249353,6.380
|
||||
Dump/unsigned_ints / -,ns,2.35653e+07,8.07378e+06,2.919
|
||||
Dump/unsigned_ints / 4,ns,3.17269e+07,8.50708e+06,3.729
|
||||
Equal/canada,ns,463162,336269,1.377
|
||||
Equal/citm_catalog,ns,264124,260967,1.012
|
||||
Equal/twitter,ns,138843,128906,1.077
|
||||
Flatten/canada,ns,2.86941e+07,1.1214e+07,2.559
|
||||
Flatten/citm_catalog,ns,6.4406e+06,3.00538e+06,2.143
|
||||
Flatten/twitter,ns,3.53051e+06,2.05449e+06,1.718
|
||||
FlattenOrdered/citm_catalog,ns,2.56371e+08,1.40896e+06,181.958
|
||||
FlattenOrdered/twitter,ns,5.00313e+07,863594,57.934
|
||||
FromBinaryBuffer/bjdata / canada,ns,8.15141e+06,4.17154e+06,1.954
|
||||
FromBinaryBuffer/bjdata / twitter,ns,3.18297e+06,893076,3.564
|
||||
FromBinaryBuffer/bjdata_optimized / canada,ns,8.73882e+06,2.42167e+06,3.609
|
||||
FromBinaryBuffer/bjdata_optimized / twitter,ns,3.15905e+06,884856,3.570
|
||||
FromBinaryBuffer/bson / canada,ns,9.33283e+06,4.27358e+06,2.184
|
||||
FromBinaryBuffer/bson / citm_catalog,ns,3.91854e+06,1.61073e+06,2.433
|
||||
FromBinaryBuffer/bson / twitter,ns,3.176e+06,910290,3.489
|
||||
FromBinaryBuffer/cbor / canada,ns,8.39002e+06,2.08256e+06,4.029
|
||||
FromBinaryBuffer/cbor / citm_catalog,ns,3.71495e+06,1.31999e+06,2.814
|
||||
FromBinaryBuffer/cbor / floats,ns,2.91606e+07,5.48446e+06,5.317
|
||||
FromBinaryBuffer/cbor / jeopardy,ns,3.52964e+08,1.00739e+08,3.504
|
||||
FromBinaryBuffer/cbor / signed_ints,ns,3.59874e+07,9.77712e+06,3.681
|
||||
FromBinaryBuffer/cbor / twitter,ns,3.08997e+06,878827,3.516
|
||||
FromBinaryBuffer/msgpack / canada,ns,8.25869e+06,2.09779e+06,3.937
|
||||
FromBinaryBuffer/msgpack / citm_catalog,ns,3.71825e+06,1.28675e+06,2.890
|
||||
FromBinaryBuffer/msgpack / jeopardy,ns,3.56624e+08,9.69017e+07,3.680
|
||||
FromBinaryBuffer/msgpack / twitter,ns,3.06392e+06,850067,3.604
|
||||
FromBinaryBuffer/ubjson / canada,ns,8.12649e+06,4.14411e+06,1.961
|
||||
FromBinaryBuffer/ubjson / citm_catalog,ns,3.82184e+06,1.65659e+06,2.307
|
||||
FromBinaryBuffer/ubjson / jeopardy,ns,3.65507e+08,1.01303e+08,3.608
|
||||
FromBinaryBuffer/ubjson / twitter,ns,3.15221e+06,895746,3.519
|
||||
FromBinaryBuffer/ubjson_optimized / canada,ns,8.5126e+06,2.38858e+06,3.564
|
||||
FromBinaryBuffer/ubjson_optimized / twitter,ns,3.12199e+06,882166,3.539
|
||||
FromBinaryFile/bjdata / twitter,ns,1.04222e+07,1.45214e+06,7.177
|
||||
FromBinaryFile/bson / twitter,ns,1.02874e+07,1.23514e+06,8.329
|
||||
FromBinaryFile/cbor / canada,ns,1.43434e+07,2.4071e+06,5.959
|
||||
FromBinaryFile/cbor / twitter,ns,9.92359e+06,1.075e+06,9.231
|
||||
FromBinaryFile/ubjson / canada,ns,1.35516e+07,6.2336e+06,2.174
|
||||
FromBinaryFile/ubjson / twitter,ns,1.05159e+07,1.46077e+06,7.199
|
||||
FromBinaryShape/containers / bjdata,ns,1.43175e+07,7.24204e+06,1.977
|
||||
FromBinaryShape/containers / bson,ns,1.74215e+07,7.97531e+06,2.184
|
||||
FromBinaryShape/containers / cbor,ns,1.3898e+07,3.93021e+06,3.536
|
||||
FromBinaryShape/containers / msgpack,ns,1.378e+07,3.88449e+06,3.547
|
||||
FromBinaryShape/containers / ubjson,ns,1.44223e+07,7.2737e+06,1.983
|
||||
FromBinaryShape/containers / ubjson_optimized,ns,1.49736e+07,4.48674e+06,3.337
|
||||
FromBinaryShape/nested / bjdata,ns,96363.9,38197.9,2.523
|
||||
FromBinaryShape/nested / bson,ns,102515,42496.1,2.412
|
||||
FromBinaryShape/nested / cbor,ns,93842.1,35385.5,2.652
|
||||
FromBinaryShape/nested / msgpack,ns,92033,34888.5,2.638
|
||||
FromBinaryShape/nested / ubjson,ns,96455.9,37922.6,2.543
|
||||
FromBinaryShape/scalars / bjdata,ns,2.48048e+07,1.1476e+07,2.161
|
||||
FromBinaryShape/scalars / cbor,ns,2.56641e+07,5.68711e+06,4.513
|
||||
FromBinaryShape/scalars / msgpack,ns,2.44254e+07,5.56716e+06,4.387
|
||||
FromBinaryShape/scalars / ubjson,ns,2.49328e+07,1.15997e+07,2.149
|
||||
FromCborChunkedString/10000 chunks,ns,90902.3,61512.6,1.478
|
||||
FromMsgpack/canada,ns,1.43596e+07,2.40425e+06,5.973
|
||||
FromMsgpack/citm_catalog,ns,9.03526e+06,1.66705e+06,5.420
|
||||
FromMsgpack/floats,ns,5.97879e+07,2.82314e+07,2.118
|
||||
FromMsgpack/jeopardy,ns,1.14023e+09,1.1207e+08,10.174
|
||||
FromMsgpack/signed_ints,ns,6.30943e+07,3.27435e+07,1.927
|
||||
FromMsgpack/small_signed_ints,ns,6.34225e+07,3.52538e+07,1.799
|
||||
FromMsgpack/twitter,ns,9.99383e+06,1.01241e+06,9.871
|
||||
FromMsgpack/unsigned_ints,ns,5.61151e+07,2.82024e+07,1.990
|
||||
"GetArray<std::array<int, 1000>>",ns,2242.43,641.094,3.498
|
||||
GetArray<std::deque<int>>,ns,8157.44,1172.81,6.955
|
||||
GetArray<std::set<int>>,ns,58833.4,41553,1.416
|
||||
GetArray<std::vector<int>>,ns,6725.67,670.816,10.026
|
||||
GetMap/citm_catalog,ns,3.44193e+06,2.43771e+06,1.412
|
||||
GetVectorDouble/floats,ns,6.7017e+06,650766,10.298
|
||||
GetVectorInt/signed_ints,ns,8.06579e+06,3.40643e+06,2.368
|
||||
Iterate/canada,ns,873618,445143,1.963
|
||||
Iterate/citm_catalog,ns,301801,157823,1.912
|
||||
Iterate/twitter,ns,87345,58936.4,1.482
|
||||
JsonPointerAt/citm_catalog,ns,1.85369e+06,1.1599e+06,1.598
|
||||
JsonPointerAt/twitter,ns,791487,599585,1.320
|
||||
JsonPointerContains/citm_catalog,ns,2.73824e+06,1.25465e+06,2.182
|
||||
JsonPointerContains/twitter,ns,1.32403e+06,620312,2.134
|
||||
JsonPointerParse/citm_catalog,ns,5.72778e+06,2.21453e+06,2.586
|
||||
JsonPointerParse/twitter,ns,2.4672e+06,1.00864e+06,2.446
|
||||
JsonPointerToString/citm_catalog,ns,6.65484e+06,1.89788e+06,3.506
|
||||
JsonPointerToString/twitter,ns,2.13903e+06,811916,2.635
|
||||
ParseFILE/canada,ns,5.29148e+07,6.01689e+06,8.794
|
||||
ParseFILE/citm_catalog,ns,3.49593e+07,2.34075e+06,14.935
|
||||
ParseFILE/twitter,ns,1.38263e+07,1.34963e+06,10.245
|
||||
ParseFile/canada,ns,1.76922e+07,6.22534e+06,2.842
|
||||
ParseFile/citm_catalog,ns,7.85962e+06,2.47244e+06,3.179
|
||||
ParseFile/floats,ns,1.29413e+08,4.83839e+07,2.675
|
||||
ParseFile/jeopardy,ns,3.30328e+08,1.56161e+08,2.115
|
||||
ParseFile/signed_ints,ns,1.27675e+08,4.65862e+07,2.741
|
||||
ParseFile/small_signed_ints,ns,6.44651e+07,3.33577e+07,1.933
|
||||
ParseFile/twitter,ns,3.39729e+06,1.37932e+06,2.463
|
||||
ParseFile/unsigned_ints,ns,1.23326e+08,4.73146e+07,2.607
|
||||
ParseIndented/canada / 4,ns,3.41603e+07,4.60976e+06,7.410
|
||||
ParseIndented/citm_catalog / 4,ns,7.45491e+06,1.45798e+06,5.113
|
||||
ParseIndented/jeopardy / 4,ns,3.38801e+08,1.14349e+08,2.963
|
||||
ParseIndented/twitter / 4,ns,3.61322e+06,975391,3.704
|
||||
ParseStreamValues/ndjson,ns,7.07974e+06,3.7154e+06,1.906
|
||||
ParseStreamValues/numbers,ns,1.92884e+06,388042,4.971
|
||||
ParseString/canada,ns,1.52389e+07,3.73427e+06,4.081
|
||||
ParseString/citm_catalog,ns,7.40128e+06,1.44821e+06,5.111
|
||||
ParseString/floats,ns,1.19856e+08,2.49654e+07,4.801
|
||||
ParseString/jeopardy,ns,3.03449e+08,1.13053e+08,2.684
|
||||
ParseString/signed_ints,ns,1.21175e+08,2.86805e+07,4.225
|
||||
ParseString/small_signed_ints,ns,6.07636e+07,1.77037e+07,3.432
|
||||
ParseString/twitter,ns,3.21074e+06,920551,3.488
|
||||
ParseString/unsigned_ints,ns,1.20011e+08,2.85056e+07,4.210
|
||||
ParseStringOrdered/canada,ns,1.52544e+07,3.77964e+06,4.036
|
||||
ParseStringOrdered/citm_catalog,ns,1.09927e+07,1.34339e+06,8.183
|
||||
ParseStringOrdered/jeopardy,ns,3.60435e+08,9.81296e+07,3.673
|
||||
ParseStringOrdered/twitter,ns,4.41151e+06,803859,5.488
|
||||
Patch/canada,ns,1.01249e+07,3.41425e+06,2.965
|
||||
Patch/citm_catalog,ns,2.54415e+06,1.65413e+06,1.538
|
||||
Patch/twitter,ns,1.4932e+06,870217,1.716
|
||||
SaxParse/canada,ns,1.28611e+07,2.49889e+06,5.147
|
||||
SaxParse/citm_catalog,ns,6.43798e+06,655372,9.823
|
||||
SaxParse/twitter,ns,2.48859e+06,334038,7.450
|
||||
ToCbor/canada,ns,1.39101e+06,554952,2.507
|
||||
ToCbor/citm_catalog,ns,1.0334e+06,260397,3.969
|
||||
ToCbor/floats,ns,8.93763e+06,1.84589e+06,4.842
|
||||
ToCbor/jeopardy,ns,7.14785e+07,2.10551e+07,3.395
|
||||
ToCbor/signed_ints,ns,1.13863e+07,2.74211e+06,4.152
|
||||
ToCbor/small_signed_ints,ns,1.02822e+07,2.37622e+06,4.327
|
||||
ToCbor/twitter,ns,636979,144369,4.412
|
||||
ToCbor/unsigned_ints,ns,8.04576e+06,2.74066e+06,2.936
|
||||
ToJsonStrings/copy,ns,5.85988e+06,5.60056e+06,1.046
|
||||
ToJsonStrings/move,ns,5.92335e+06,3.04643e+06,1.944
|
||||
Unflatten/canada,ns,4.17811e+07,1.08132e+07,3.864
|
||||
Unflatten/citm_catalog,ns,9.80315e+06,3.53672e+06,2.772
|
||||
Unflatten/twitter,ns,4.56968e+06,2.16566e+06,2.110
|
||||
|
@@ -351,4 +351,11 @@ index,commit,date,pr,subject,parse_twitter,parse_citm,parse_canada,parse_citm_co
|
||||
349,b18b6fc7e6,2026-11-02,6013,Build the parser's syntax error prefix with one concat() (#6013),1370.175,2435.337,6098.834,2320.728,1726.256,472.914,210.817,289.786,2292.841,419.186,1306.593,139.277,1481.709,1714.543,177.065,366.270,971.330
|
||||
350,07876e2292,2026-11-02,6015,json_view: a value that is not found has no bytes in its exception context (#6015),1361.297,2435.980,6080.718,2305.853,1707.733,474.621,210.382,291.568,2337.276,424.783,1329.556,139.590,1450.506,1690.804,178.472,366.370,977.807
|
||||
351,baba5db36f,2026-11-02,6016,"Fix the MSVC and GCC builds of develop (C4127, -Weffc++) (#6016)",1381.280,2440.908,6116.068,2303.611,1713.472,476.121,210.492,290.105,2319.878,420.598,1318.037,139.554,1471.388,1729.097,177.078,369.621,959.145
|
||||
352,candidate,,,develop + open pull requests,1392.967,2469.204,6110.380,2348.760,1730.819,474.089,212.339,290.760,2284.428,420.179,1320.938,137.755,1441.341,1697.486,176.758,364.547,955.117
|
||||
352,57b898ef99,2026-11-03,5998,Replace a multibyte decimal point in dump() of a long double (#5998),1376.416,2456.476,6107.073,2325.534,1714.240,471.800,213.484,290.901,2288.426,420.062,1304.744,139.492,1441.231,1696.537,176.981,363.955,944.685
|
||||
353,efc437ef6e,2026-11-04,6002,UBJSON/BJData/MessagePack reader: reject a container count equal to SIZE_MAX (#6002),1376.138,2441.279,6136.755,2331.556,1708.185,467.554,210.231,291.606,2314.834,415.023,1321.171,138.603,1456.238,1718.533,176.858,366.713,938.783
|
||||
354,42825fba07,2026-11-04,6020,Binary writers: zero only a window ahead of the vector sink's position (#6020),1391.971,2460.961,6101.484,2312.584,1736.846,484.624,211.385,289.579,2309.943,416.103,1316.307,138.308,1464.425,1715.552,179.565,367.624,969.541
|
||||
355,1da8735154,2026-11-04,6023,Fix leak and crash when an allocation throws during parsing (#6023),1358.000,2456.832,6148.140,2333.761,1752.168,487.998,213.374,290.735,2324.377,420.402,1316.165,139.748,1460.000,1714.216,179.958,367.953,970.615
|
||||
356,e48800f09d,2026-11-04,6001,Binary reader and writer: remove checks that invariants make dead (#6001),1371.292,2434.395,6104.099,2313.769,1711.288,483.297,211.214,288.130,2308.992,416.639,1300.966,138.719,1455.595,1695.539,180.445,370.313,962.574
|
||||
357,951271127b,2026-11-07,6028,Binary readers: append strings straight from contiguous input (#6028),1381.807,2431.713,6099.235,2311.519,1694.104,464.615,207.900,288.438,2322.463,418.952,1227.851,138.811,1468.723,1706.816,177.249,369.912,975.798
|
||||
358,18138227dc,2026-11-07,6030,Scan the buffer of a FILE in bulk with glibc and the Apple C library (#6030),1379.500,2439.343,6147.771,2308.199,1689.427,482.217,213.967,290.466,2309.747,420.209,1239.525,139.367,1443.438,1731.583,180.401,364.380,975.476
|
||||
359,candidate,,,develop + open pull requests,1230.726,2155.896,5188.718,2038.886,1713.280,234.359,212.584,289.591,2313.669,425.788,1234.309,137.017,1444.999,1699.919,179.250,367.586,954.772
|
||||
|
@@ -201,24 +201,24 @@ def digits():
|
||||
# ---------- overview: speedup per workload (Google Benchmark rows, 3.12.0 time / 3.13.0 time) ----------
|
||||
# (group, label, speedup), copied from the table "The short version"
|
||||
OVERVIEW = [
|
||||
("Parsing", "twitter.json", 3.14),
|
||||
("Parsing", "citm_catalog.json", 4.25),
|
||||
("Parsing", "canada.json", 3.35),
|
||||
("Parsing", "canada.json, indented", 6.51),
|
||||
("Parsing", "citm, ordered_json", 6.85),
|
||||
("Parsing", "twitter, std::ifstream", 2.50),
|
||||
("Parsing", "citm, FILE*", 4.74),
|
||||
("Parsing", "citm, accept()", 7.07),
|
||||
("Writing", "dump() twitter", 6.70),
|
||||
("Writing", "dump() canada", 2.98),
|
||||
("Writing", "dump(4) citm", 4.70),
|
||||
("Writing", "to_cbor() twitter", 4.59),
|
||||
("Reading CBOR", "twitter, memory", 3.39),
|
||||
("Reading CBOR", "twitter, FILE*", 6.59),
|
||||
("Values", "diff() canada", 10.46),
|
||||
("Values", "iterate canada", 2.73),
|
||||
("Values", "copy + destroy citm", 1.13),
|
||||
("Values", "== citm", 1.06),
|
||||
("Parsing", "twitter.json", 3.49),
|
||||
("Parsing", "citm_catalog.json", 5.11),
|
||||
("Parsing", "canada.json", 4.08),
|
||||
("Parsing", "canada.json, indented", 7.41),
|
||||
("Parsing", "citm, ordered_json", 8.18),
|
||||
("Parsing", "twitter, std::ifstream", 2.46),
|
||||
("Parsing", "citm, FILE*", 14.94),
|
||||
("Parsing", "citm, accept()", 13.66),
|
||||
("Writing", "dump() twitter", 6.60),
|
||||
("Writing", "dump() canada", 2.90),
|
||||
("Writing", "dump(4) citm", 4.62),
|
||||
("Writing", "to_cbor() twitter", 4.41),
|
||||
("Reading CBOR", "twitter, memory", 3.52),
|
||||
("Reading CBOR", "twitter, FILE*", 9.23),
|
||||
("Values", "diff() canada", 10.44),
|
||||
("Values", "iterate canada", 1.96),
|
||||
("Values", "copy + destroy citm", 1.11),
|
||||
("Values", "== citm", 1.01),
|
||||
]
|
||||
|
||||
|
||||
@@ -304,16 +304,19 @@ def distribution():
|
||||
# (column in perf_timeline.csv, panel title, [(PR, label)]): each labeled step shows the number of the theme that
|
||||
# explains it ("U" for the UTF-8 check of the binary readers that came and went); the appendix maps steps to PRs
|
||||
TIMELINE = [
|
||||
("parse_citm", "parse() citm_catalog.json", [(5234, "4"), (5283, "1"), (5592, "4"), (5809, "4"), (5810, "2"), (5882, "4")]),
|
||||
("parse_canada", "parse() canada.json", [(5234, "4"), (5283, "1"), (5617, "3"), (5738, "3"), (5851, "3"), (5882, "4")]),
|
||||
("accept_twitter", "accept() twitter.json", [(5234, "4"), (5283, "1"), (5592, "4"), (5809, "4"), (5810, "2"), (5853, "2")]),
|
||||
("parse_citm", "parse() citm_catalog.json", [(5234, "4"), (5283, "1"), (5592, "4"), (5809, "4"), (5810, "2"), (5882, "4"), (6031, "1")]),
|
||||
("parse_canada", "parse() canada.json", [(5234, "4"), (5283, "1"), (5617, "3"), (5738, "3"), (5851, "3"), (5882, "4"), (6031, "1")]),
|
||||
("accept_twitter", "accept() twitter.json", [(5234, "4"), (5283, "1"), (5592, "4"), (5809, "4"), (5810, "2"), (5853, "2"), (6031, "1")]),
|
||||
("parse_twitter_ifstream", "parse() twitter.json, std::ifstream", [(5828, "1"), (5884, "1")]),
|
||||
("dump_twitter", "dump() twitter.json", [(5285, "6"), (5738, "2"), (5878, "2"), (5883, "2")]),
|
||||
("dump_canada", "dump() canada.json", [(5285, "6"), (5634, "3")]),
|
||||
("from_cbor_twitter", "from_cbor() twitter", [(5233, "1"), (5501, "4"), (5185, "U"), (5746, "U")]),
|
||||
("from_cbor_twitter", "from_cbor() twitter", [(5233, "1"), (5501, "4"), (5185, "U"), (5746, "U"), (6028, "4")]),
|
||||
("to_cbor_twitter", "to_cbor() twitter", [(5328, "4"), (5824, "6"), (5885, "6")]),
|
||||
]
|
||||
MONTHS = [("2025-04", "3.12.0"), ("2026-09", "Sep 2026"), ("2026-10", "Oct")]
|
||||
# pull requests that were not merged yet when the timeline was measured: their step is the last point, the candidate
|
||||
# (develop with the open pull requests merged); drop a number here once its pull request is on develop
|
||||
PENDING = {6031}
|
||||
MONTHS = [("2025-04", "3.12.0"), ("2026-09", "Sep 2026"), ("2026-10", "Oct"), ("2026-11", "Nov")]
|
||||
|
||||
|
||||
def timeline():
|
||||
@@ -358,7 +361,10 @@ def timeline():
|
||||
# label, and a label that would overlap one already placed moves up
|
||||
groups = []
|
||||
for pr, lab in labels:
|
||||
i = next(k for k, r in enumerate(rows) if r["pr"] == str(pr))
|
||||
i = next((k for k, r in enumerate(rows) if r["pr"] == str(pr)), None)
|
||||
if i is None and pr in PENDING and rows[-1]["commit"] == "candidate":
|
||||
i = n - 1
|
||||
assert i is not None, "no commit of #%d in the timeline" % pr
|
||||
if groups and X(i) - X(groups[-1][-1][1]) < 6:
|
||||
groups[-1].append((pr, i, lab))
|
||||
else:
|
||||
@@ -454,7 +460,8 @@ def heldout():
|
||||
for f in files:
|
||||
libs = data[plat][f]
|
||||
# the fastest other library: below 1 json_document is the fastest, and the distance shows by how much
|
||||
best = min((l for l in libs if l != "nlohmann json_document"), key=lambda l: libs[l]["us"])
|
||||
# json::accept() is nlohmann/json too, not another library
|
||||
best = min((l for l in libs if l not in ("nlohmann json_document", "nlohmann json")), key=lambda l: libs[l]["us"])
|
||||
rel[plat, f] = libs["nlohmann json_document"]["us"] / libs[best]["us"]
|
||||
winner[plat, f] = UC_LIBS.get(best, best)
|
||||
files.sort(key=lambda f: (rel["x86-gcc", f], rel["mac", f]))
|
||||
@@ -498,10 +505,10 @@ def heldout():
|
||||
# CPU time of the compiler in ms, median of 5 interleaved rounds, C++20, M1 Max (the post's appendix G)
|
||||
# (3.12.0, 3.13.0, 3.13.0 with a precompiled header, 3.13.0 as a module)
|
||||
PRICE = [
|
||||
("Apple clang 21, -O0 (debug)", [("count_numbers", 955.0, 1320.5, 688.5, 917.5), ("server_config", 1113.2, 1496.4, 862.6, 1135.5)]),
|
||||
("Apple clang 21, -O2", [("count_numbers", 1393.2, 2081.0, 1458.4, 1684.6), ("server_config", 1753.5, 2545.6, 1925.3, 2168.6)]),
|
||||
("GCC 16, -O0 (debug)", [("count_numbers", 1569.4, 2548.4, 1725.0, 1699.8), ("server_config", 2025.4, 2985.1, 2301.6, 2325.8)]),
|
||||
("GCC 16, -O2", [("count_numbers", 2336.0, 3701.5, 2986.8, 2913.4), ("server_config", 3121.5, 4714.2, 4006.2, 4054.9)]),
|
||||
("Apple clang 21, -O0 (debug)", [("count_numbers", 830.8, 1131.1, 639.0, 790.3), ("server_config", 962.8, 1312.5, 774.2, 1036.5)]),
|
||||
("Apple clang 21, -O2", [("count_numbers", 1328.4, 1898.4, 1311.8, 1491.2), ("server_config", 1584.1, 2251.0, 1778.7, 1925.9)]),
|
||||
("GCC 16, -O0 (debug)", [("count_numbers", 1416.5, 2385.4, 1592.9, 1603.7), ("server_config", 1877.6, 2819.8, 2152.1, 2180.2)]),
|
||||
("GCC 16, -O2", [("count_numbers", 2159.0, 3464.5, 2765.0, 2739.8), ("server_config", 2877.9, 4388.2, 3722.4, 3773.8)]),
|
||||
]
|
||||
PRICE_SERIES = [("3.13.0", "nj-charts-c2"), ("3.13.0, precompiled header", "nj-charts-c1"), ("3.13.0, module", "nj-charts-c3")]
|
||||
|
||||
@@ -584,7 +591,8 @@ NUMBER_TEXT = ("source numbers", "raw numbers") # variants that write each num
|
||||
|
||||
def normalize_usecases(data):
|
||||
"""Chooses each library's best variants again with the rules of the post: variants that reuse a parser or document
|
||||
across calls are measured but not chosen. Variants that write each number by copying its text instead of formatting
|
||||
across calls, and in-place variants whose copy of the input is made before the timer starts ("(copy untimed)"), are
|
||||
measured but not chosen. Variants that write each number by copying its text instead of formatting
|
||||
it (json_document's number_format::source, yyjson's and RapidJSON's raw numbers in edit, minify and write) are not
|
||||
chosen as the fully validating way, but as a way that does less, marked "N" like "U" and "P". Skipping the number
|
||||
conversion while reading is allowed. Each pick has a "mark": "", or the letters of what it skips"""
|
||||
@@ -594,7 +602,7 @@ def normalize_usecases(data):
|
||||
numtext = lambda k: uc in WRITING and any(w in k for w in NUMBER_TEXT)
|
||||
for cell in files.values():
|
||||
for e in cell.values():
|
||||
vs = [(v["us"], k, v["level"]) for k, v in e["variants"].items() if "reused" not in k]
|
||||
vs = [(v["us"], k, v["level"]) for k, v in e["variants"].items() if "reused" not in k and "copy untimed" not in k]
|
||||
full = [v for v in vs if rank[v[2]] == 0 and not numtext(v[1])]
|
||||
pick = lambda v: {"us": v[0], "variant": v[1], "level": "full" if rank[v[2]] == 0 else v[2],
|
||||
"mark": " ".join(m for m in (LEVEL_MARK.get(v[2], ""), "N" if numtext(v[1]) else "") if m)}
|
||||
|
||||