Current section

31 Versions

Jump to

Compare versions

8 files changed
+321 additions
-315 deletions
  @@ -68,7 +68,7 @@ clean:
68 68 @$(MAKE) --no-print-directory -C c_src PRIV_DIR=$(PRIV_DIR) OBJ_DIR=$(OBJ_DIR) DEBUG=$(DEBUG) clean 2>/dev/null || true
69 69
70 70 distclean: clean
71 - @rm -rf obj priv/glazer.so _build
71 + @rm -rf obj priv/glazer.so _build .perf.txt
72 72
73 73 test:
74 74 $(REBAR) eunit
  @@ -115,9 +115,13 @@ memcheck:
115 115 doc docs:
116 116 $(REBAR) ex_doc
117 117
118 - benchmark: bench
118 + benchmark bench: do-bench
119 119
120 - bench bench-yaml bench-json bench-csv: deps
120 + do-bench: deps
121 + @rm .perf.txt
122 + @PARALLEL=$(if $(PARALLEL),$(PARALLEL),2) MIX_ENV=bench mix bench | tee .perf.txt
123 +
124 + bench-yaml bench-json bench-csv: deps
121 125 @PARALLEL=$(if $(PARALLEL),$(PARALLEL),2) MIX_ENV=bench mix $@
122 126
123 127 # Profile-guided optimisation: instrument → run tests as workload → rebuild.
  @@ -20,14 +20,15 @@ formats.
20 20
21 21 - [Glazer](#glazer)
22 22 - [Table of contents](#table-of-contents)
23 - - [Performance](#performance)
24 23 - [Features](#features)
25 24 - [JSON](#json)
26 25 - [YAML](#yaml)
27 26 - [CSV](#csv)
28 - - [Scope](#scope)
29 27 - [Installation](#installation)
30 28 - [Building](#building)
29 + - [Testing](#testing)
30 + - [Benchmarking](#benchmarking)
31 + - [Performance](#performance)
31 32 - [JSON](#json-1)
32 33 - [Usage](#usage)
33 34 - [Streaming](#streaming)
  @@ -57,35 +58,11 @@ formats.
57 58 - [Big integers](#big-integers)
58 59 - [API](#api-3)
59 60 - [Limitations](#limitations)
61 + - [Scope](#scope)
60 62 - [Nesting depth](#nesting-depth)
61 - - [Testing](#testing)
62 63 - [Performance Optimization Details](#performance-optimization-details)
63 64 - [License](#license)
64 65
65 - ## [Performance](#table-of-contents)
66 -
67 - - **[JSON](#performance-1)**: faster than every other library benchmarked on
68 - both encoding and decoding — consistently ~25–40% ahead of `torque`
69 - (Rust `sonic-rs` NIF), and well ahead of `simdjsone`, `jiffy`, and the
70 - pure-Elixir libraries `jason`, `thoas`, `euneus`, and OTP's built-in `json`.
71 - - **[YAML](#benchmarking-yaml)**: 2–7× faster than `yaml_rustler` and
72 - `fast_yaml`, and ~25–75× faster than the pure-Erlang `yamerl`/`ymlr`.
73 - - **[CSV](#benchmarking-csv)**: 4–12× faster than `nimble_csv`, and tens to
74 - hundreds of times faster than `csv` and `erl_csv` (which time out on
75 - large inputs).
76 -
77 - <img src="assets/bench_small.svg" width="100%" alt="Small file benchmarks (JSON/YAML/CSV)"/>
78 - <img src="assets/bench_medium.svg" width="100%" alt="Medium file benchmarks (JSON/YAML/CSV)"/>
79 - <img src="assets/bench_large.svg" width="100%" alt="Large file benchmarks (JSON/YAML/CSV)"/>
80 -
81 - Each chart compares glazer against other libraries for JSON/YAML/CSV
82 - decode and encode on a representative small/medium/large file. Charts are
83 - generated from the tables below via `scripts/gen_bench_charts.py`.
84 - Benchmark tables:
85 - - [Benchmarking JSON](#benchmarking-json)
86 - - [Benchmarking YAML](#benchmarking-yaml)
87 - - [Benchmarking CSV](#benchmarking-csv)
88 -
89 66 ## [Features](#table-of-contents)
90 67
91 68 ### [JSON](#table-of-contents)
  @@ -121,20 +98,6 @@ Benchmark tables:
121 98 - Incremental/streaming CSV decoding via `stream_decoder/0,1`,
122 99 `stream_feed/2`, `stream_eof/1`
123 100
124 - ## [Scope](#table-of-contents)
125 -
126 - `glazer` targets formats that map naturally onto a tree of Erlang
127 - maps/lists/scalars — JSON and YAML both fit this model directly, so a
128 - single decode/encode pair can convert losslessly between the format and
129 - native terms. XML is intentionally **not** planned: its data model
130 - (tagged elements, attributes, mixed text/element content, namespaces,
131 - processing instructions, entities) has no single natural Erlang term
132 - representation, and any choice (xmerl-style tuples, JSON-like maps with
133 - `@attr`/`#text` keys, etc.) is a lossy or awkward fit compared to formats
134 - that are already trees of scalars and collections. Erlang's standard
135 - library already ships `xmerl` for XML; there's little value in
136 - duplicating it here with a different, opinionated term shape.
137 -
138 101 ## [Installation](#table-of-contents)
139 102
140 103 **Erlang (`rebar.config`)**:
  @@ -202,6 +165,46 @@ Use the `use_nil`/`{null_term, nil}` option (see
202 165 [Null term configuration](#null-term-configuration) below) to get idiomatic
203 166 Elixir `nil` instead of the atom `:null`.
204 167
168 + ### [Testing](#table-of-contents)
169 +
170 + ```sh
171 + make test
172 + ```
173 +
174 + runs the EUnit test suite via `rebar3 eunit`.
175 +
176 + ### Benchmarking
177 +
178 + Benchmarking:
179 + - [Benchmarking JSON](#benchmarking-json)
180 + - [Benchmarking YAML](#benchmarking-yaml)
181 + - [Benchmarking CSV](#benchmarking-csv)
182 +
183 + ## [Performance](#table-of-contents)
184 +
185 + - **[JSON](#benchmarking-json)**: faster than every other library benchmarked on
186 + both encoding and decoding — consistently ~25–40% ahead of `torque`
187 + (Rust `sonic-rs` NIF), and well ahead of `simdjsone`, `jiffy`, and the
188 + pure-Elixir libraries `jason`, `thoas`, `euneus`, and OTP's built-in `json`.
189 + - **[YAML](#benchmarking-yaml)**: 2–7× faster than `yaml_rustler` and
190 + `fast_yaml`, and ~25–75× faster than the pure-Erlang `yamerl`/`ymlr`.
191 + - **[CSV](#benchmarking-csv)**: 4–12× faster than `nimble_csv`, and tens to
192 + hundreds of times faster than `csv` and `erl_csv` (which time out on
193 + large inputs).
194 +
195 + <img src="assets/bench_small.svg" width="100%" alt="Small file benchmarks (JSON/YAML/CSV)"/>
196 + <img src="assets/bench_medium.svg" width="100%" alt="Medium file benchmarks (JSON/YAML/CSV)"/>
197 + <img src="assets/bench_large.svg" width="100%" alt="Large file benchmarks (JSON/YAML/CSV)"/>
198 +
199 + Each chart compares glazer against other libraries for JSON/YAML/CSV
200 + decode and encode on a representative small/medium/large file. Charts are
201 + generated from the tables below via `scripts/gen_bench_charts.py`.
202 +
203 + Benchmarking data tables:
204 + - [Benchmarking JSON](#benchmarking-json)
205 + - [Benchmarking YAML](#benchmarking-yaml)
206 + - [Benchmarking CSV](#benchmarking-csv)
207 +
205 208 ## [JSON](#table-of-contents)
206 209
207 210 ### [Usage](#table-of-contents)
  @@ -474,14 +477,14 @@ $ PARALLEL=2 make bench-json
474 477 JSON twitter (616.7K) twitter2 (758.0K) openrtb (1.2K) esad (1.3K) small (0.1K)
475 478 decode encode decode encode decode encode decode encode decode encode
476 479 -------------------------------------------------------------------------------------------------------------
477 - glazer 4379.2 1143.4 5132.9 2586.7 7.5 8.7 6.7 4.0 1.2 1.0
478 - torque 6089.2 1643.8 8087.6 3091.0 10.7 9.8 9.3 6.2 1.7 1.3
479 - simdjsone 5847.3 5019.7 8719.8 8620.6 14.4 17.7 12.1 12.6 1.9 3.6
480 - jiffy 7868.6 3615.6 9779.9 6532.6 16.8 15.2 12.4 9.1 2.5 3.8
481 - jason 13509.0 11248.6 25267.6 20837.6 33.5 30.0 19.7 25.0 4.4 2.9
482 - thoas 13679.7 12466.1 25638.7 22607.2 31.2 33.0 25.1 29.9 3.2 3.9
483 - euneus 14699.8 10247.2 18646.5 16886.6 29.1 25.2 16.7 14.6 4.0 4.6
484 - json 14315.5 9718.9 17844.3 16473.5 28.3 25.3 19.2 12.3 4.0 4.5
480 + glazer 3563.5 1062.7 4779.2 2311.9 7.5 4.0 6.4 2.3 0.8 0.8
481 + torque 4996.2 1453.0 7425.8 3061.2 8.9 6.2 7.1 3.6 1.2 0.9
482 + simdjsone 4693.2 3475.9 8622.7 6423.5 12.2 13.7 8.1 9.3 1.2 2.1
483 + jiffy 5872.3 2513.4 9046.3 4702.4 12.0 11.1 8.7 6.5 2.1 2.1
484 + jason 10259.2 8507.6 21086.9 19976.9 26.6 25.4 19.3 18.2 2.8 3.0
485 + thoas 9779.7 9457.2 21708.8 21229.1 25.6 27.2 22.7 20.9 2.7 3.0
486 + euneus 12213.1 8659.9 15957.8 13910.0 25.4 24.3 12.3 12.6 5.1 2.2
487 + json 11660.6 8354.5 15248.7 13676.8 22.8 18.7 11.3 9.6 4.4 2.2
485 488 ```
486 489
487 490 (requires the `bench`/`dev` Mix dependencies — see `mix.exs`).
  @@ -571,11 +574,11 @@ $ PARALLEL=2 make bench-yaml
571 574 YAML openrtb (1.3K) esad (1.3K) small (0.1K)
572 575 decode encode decode encode decode encode
573 576 -------------------------------------------------------------------------
574 - glazer 81.0 14.7 19.9 7.9 11.5 2.2
575 - yaml_rustler 195.3 n/a 103.9 n/a 16.9 n/a
576 - fast_yaml 254.9 69.5 141.4 54.4 26.7 7.6
577 - yamerl 2014.4 n/a 1486.2 n/a 676.1 n/a
578 - ymlr n/a 62.6 n/a 46.1 n/a 5.9
577 + glazer 59.4 9.5 28.6 5.6 8.6 1.1
578 + yaml_rustler 133.4 n/a 99.5 n/a 12.4 n/a
579 + fast_yaml 203.4 90.8 103.4 40.3 18.0 8.0
580 + yamerl 1469.0 n/a 1006.9 n/a 494.2 n/a
581 + ymlr n/a 46.9 n/a 39.0 n/a 5.2
579 582 ```
580 583
581 584 ## [CSV](#table-of-contents)
  @@ -788,10 +791,10 @@ $ PARALLEL=2 make bench-csv
788 791 CSV small (1.3K) medium (130.9K) large (3433.1K)
789 792 decode encode decode encode decode encode
790 793 -----------------------------------------------------------------------------------
791 - glazer 10.7 3.3 1289.6 469.5 42617.2 16240.1
792 - nimble_csv 44.8 38.8 4582.9 3204.4 238366.4 120585.9
793 - csv 99.3 257.3 8335.2 24393.9 TIMEOUT TIMEOUT
794 - erl_csv 705.5 427.4 54950.5 34607.9 TIMEOUT TIMEOUT
794 + glazer 10.6 3.9 839.3 382.2 32962.9 10706.1
795 + nimble_csv 45.9 27.4 3522.8 2785.7 168599.8 93305.1
796 + csv 73.8 214.2 5873.3 16112.3 TIMEOUT TIMEOUT
797 + erl_csv 406.6 333.5 38773.1 25074.8 1333590.6 599183.0
795 798 ```
796 799
797 800 ## [Big integers](#table-of-contents)
  @@ -827,6 +830,20 @@ specs and details.
827 830
828 831 ## [Limitations](#table-of-contents)
829 832
833 + ### [Scope](#table-of-contents)
834 +
835 + `glazer` targets formats that map naturally onto a tree of Erlang
836 + maps/lists/scalars — JSON and YAML both fit this model directly, so a
837 + single decode/encode pair can convert losslessly between the format and
838 + native terms. XML is intentionally **not** planned: its data model
839 + (tagged elements, attributes, mixed text/element content, namespaces,
840 + processing instructions, entities) has no single natural Erlang term
841 + representation, and any choice (xmerl-style tuples, JSON-like maps with
842 + `@attr`/`#text` keys, etc.) is a lossy or awkward fit compared to formats
843 + that are already trees of scalars and collections. Erlang's standard
844 + library already ships `xmerl` for XML; there's little value in
845 + duplicating it here with a different, opinionated term shape.
846 +
830 847 ### [Nesting depth](#table-of-contents)
831 848
832 849 The JSON and YAML decoders both cap recursion at **256 levels** of nesting
  @@ -844,14 +861,6 @@ deliberately not configurable, because the limit exists to protect the
844 861 Erlang VM process (the NIF runs on the scheduler thread) from runaway
845 862 recursive descent on adversarial input.
846 863
847 - ## [Testing](#table-of-contents)
848 -
849 - ```sh
850 - make test
851 - ```
852 -
853 - runs the EUnit test suite via `rebar3 eunit`.
854 -
855 864 ## [Performance Optimization Details](#table-of-contents)
856 865
857 866 `glazer` is faster than all competitors on both encoding and decoding in all
  @@ -50,85 +50,83 @@
50 50 <text x="44.0" y="97.7" text-anchor="end" font-size="9" class="muted">10000</text>
51 51 <line x1="50.0" y1="68.0" x2="370.0" y2="68.0" class="grid" stroke-width="1"/>
52 52 <text x="44.0" y="71.0" text-anchor="end" font-size="9" class="muted">15000</text>
53 - <rect x="56.0" y="124.6" width="33.2" height="23.4" class="bar-glazer"><title>glazer: 4379.2 (decode)</title></rect>
54 - <text x="72.6" y="121.6" text-anchor="middle" font-size="8" class="muted">4379.2</text>
53 + <rect x="56.0" y="129.0" width="33.2" height="19.0" class="bar-glazer"><title>glazer: 3563.5 (decode)</title></rect>
54 + <text x="72.6" y="126.0" text-anchor="middle" font-size="8" class="muted">3563.5</text>
55 55 <text x="72.6" y="158.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 72.6,158.0)">glazer</text>
56 - <rect x="95.2" y="115.5" width="33.2" height="32.5" class="bar-1"><title>torque: 6089.2 (decode)</title></rect>
57 - <text x="111.9" y="112.5" text-anchor="middle" font-size="8" class="muted">6089.2</text>
56 + <rect x="95.2" y="121.4" width="33.2" height="26.6" class="bar-1"><title>torque: 4996.2 (decode)</title></rect>
57 + <text x="111.9" y="118.4" text-anchor="middle" font-size="8" class="muted">4996.2</text>
58 58 <text x="111.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 111.9,158.0)">torque</text>
59 - <rect x="134.5" y="116.8" width="33.2" height="31.2" class="bar-2"><title>simdjsone: 5847.3 (decode)</title></rect>
60 - <text x="151.1" y="113.8" text-anchor="middle" font-size="8" class="muted">5847.3</text>
59 + <rect x="134.5" y="123.0" width="33.2" height="25.0" class="bar-2"><title>simdjsone: 4693.2 (decode)</title></rect>
60 + <text x="151.1" y="120.0" text-anchor="middle" font-size="8" class="muted">4693.2</text>
61 61 <text x="151.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 151.1,158.0)">simdjsone</text>
62 - <rect x="173.8" y="106.0" width="33.2" height="42.0" class="bar-3"><title>jiffy: 7868.6 (decode)</title></rect>
63 - <text x="190.4" y="103.0" text-anchor="middle" font-size="8" class="muted">7868.6</text>
62 + <rect x="173.8" y="116.7" width="33.2" height="31.3" class="bar-3"><title>jiffy: 5872.3 (decode)</title></rect>
63 + <text x="190.4" y="113.7" text-anchor="middle" font-size="8" class="muted">5872.3</text>
64 64 <text x="190.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 190.4,158.0)">jiffy</text>
65 - <rect x="213.0" y="76.0" width="33.2" height="72.0" class="bar-4"><title>jason: 13509 (decode)</title></rect>
66 - <text x="229.6" y="73.0" text-anchor="middle" font-size="8" class="muted">13509</text>
65 + <rect x="213.0" y="93.3" width="33.2" height="54.7" class="bar-4"><title>jason: 10259.2 (decode)</title></rect>
66 + <text x="229.6" y="90.3" text-anchor="middle" font-size="8" class="muted">10259.2</text>
67 67 <text x="229.6" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 229.6,158.0)">jason</text>
68 - <rect x="252.2" y="75.0" width="33.2" height="73.0" class="bar-5"><title>thoas: 13679.7 (decode)</title></rect>
69 - <text x="268.9" y="72.0" text-anchor="middle" font-size="8" class="muted">13679.7</text>
68 + <rect x="252.2" y="95.8" width="33.2" height="52.2" class="bar-5"><title>thoas: 9779.7 (decode)</title></rect>
69 + <text x="268.9" y="92.8" text-anchor="middle" font-size="8" class="muted">9779.7</text>
70 70 <text x="268.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 268.9,158.0)">thoas</text>
71 - <rect x="291.5" y="69.6" width="33.2" height="78.4" class="bar-6"><title>euneus: 14699.8 (decode)</title></rect>
72 - <text x="308.1" y="66.6" text-anchor="middle" font-size="8" class="muted">14699.8</text>
71 + <rect x="291.5" y="82.9" width="33.2" height="65.1" class="bar-6"><title>euneus: 12213.1 (decode)</title></rect>
72 + <text x="308.1" y="79.9" text-anchor="middle" font-size="8" class="muted">12213.1</text>
73 73 <text x="308.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 308.1,158.0)">euneus</text>
74 - <rect x="330.8" y="71.7" width="33.2" height="76.3" class="bar-7"><title>json: 14315.5 (decode)</title></rect>
75 - <text x="347.4" y="68.7" text-anchor="middle" font-size="8" class="muted">14315.5</text>
74 + <rect x="330.8" y="85.8" width="33.2" height="62.2" class="bar-7"><title>json: 11660.6 (decode)</title></rect>
75 + <text x="347.4" y="82.8" text-anchor="middle" font-size="8" class="muted">11660.6</text>
76 76 <text x="347.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 347.4,158.0)">json</text>
77 77 <line x1="50.0" y1="148.0" x2="370.0" y2="148.0" class="axis" stroke-width="1"/>
78 78 <text x="570.0" y="66.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">JSON encode — 616.7K</text>
79 79 <line x1="430.0" y1="148.0" x2="750.0" y2="148.0" class="grid" stroke-width="1"/>
80 80 <text x="424.0" y="151.0" text-anchor="end" font-size="9" class="muted">0</text>
81 - <line x1="430.0" y1="121.3" x2="750.0" y2="121.3" class="grid" stroke-width="1"/>
82 - <text x="424.0" y="124.3" text-anchor="end" font-size="9" class="muted">5000</text>
83 - <line x1="430.0" y1="94.7" x2="750.0" y2="94.7" class="grid" stroke-width="1"/>
84 - <text x="424.0" y="97.7" text-anchor="end" font-size="9" class="muted">10000</text>
81 + <line x1="430.0" y1="108.0" x2="750.0" y2="108.0" class="grid" stroke-width="1"/>
82 + <text x="424.0" y="111.0" text-anchor="end" font-size="9" class="muted">5000</text>
85 83 <line x1="430.0" y1="68.0" x2="750.0" y2="68.0" class="grid" stroke-width="1"/>
86 - <text x="424.0" y="71.0" text-anchor="end" font-size="9" class="muted">15000</text>
87 - <rect x="436.0" y="141.9" width="33.2" height="6.1" class="bar-glazer"><title>glazer: 1143.4 (encode)</title></rect>
88 - <text x="452.6" y="138.9" text-anchor="middle" font-size="8" class="muted">1143.4</text>
84 + <text x="424.0" y="71.0" text-anchor="end" font-size="9" class="muted">10000</text>
85 + <rect x="436.0" y="139.5" width="33.2" height="8.5" class="bar-glazer"><title>glazer: 1062.7 (encode)</title></rect>
86 + <text x="452.6" y="136.5" text-anchor="middle" font-size="8" class="muted">1062.7</text>
89 87 <text x="452.6" y="158.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 452.6,158.0)">glazer</text>
90 - <rect x="475.2" y="139.2" width="33.2" height="8.8" class="bar-1"><title>torque: 1643.8 (encode)</title></rect>
91 - <text x="491.9" y="136.2" text-anchor="middle" font-size="8" class="muted">1643.8</text>
88 + <rect x="475.2" y="136.4" width="33.2" height="11.6" class="bar-1"><title>torque: 1453 (encode)</title></rect>
89 + <text x="491.9" y="133.4" text-anchor="middle" font-size="8" class="muted">1453</text>
92 90 <text x="491.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 491.9,158.0)">torque</text>
93 - <rect x="514.5" y="121.2" width="33.2" height="26.8" class="bar-2"><title>simdjsone: 5019.7 (encode)</title></rect>
94 - <text x="531.1" y="118.2" text-anchor="middle" font-size="8" class="muted">5019.7</text>
91 + <rect x="514.5" y="120.2" width="33.2" height="27.8" class="bar-2"><title>simdjsone: 3475.9 (encode)</title></rect>
92 + <text x="531.1" y="117.2" text-anchor="middle" font-size="8" class="muted">3475.9</text>
95 93 <text x="531.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 531.1,158.0)">simdjsone</text>
96 - <rect x="553.8" y="128.7" width="33.2" height="19.3" class="bar-3"><title>jiffy: 3615.6 (encode)</title></rect>
97 - <text x="570.4" y="125.7" text-anchor="middle" font-size="8" class="muted">3615.6</text>
94 + <rect x="553.8" y="127.9" width="33.2" height="20.1" class="bar-3"><title>jiffy: 2513.4 (encode)</title></rect>
95 + <text x="570.4" y="124.9" text-anchor="middle" font-size="8" class="muted">2513.4</text>
98 96 <text x="570.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 570.4,158.0)">jiffy</text>
99 - <rect x="593.0" y="88.0" width="33.2" height="60.0" class="bar-4"><title>jason: 11248.6 (encode)</title></rect>
100 - <text x="609.6" y="85.0" text-anchor="middle" font-size="8" class="muted">11248.6</text>
97 + <rect x="593.0" y="79.9" width="33.2" height="68.1" class="bar-4"><title>jason: 8507.6 (encode)</title></rect>
98 + <text x="609.6" y="76.9" text-anchor="middle" font-size="8" class="muted">8507.6</text>
101 99 <text x="609.6" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 609.6,158.0)">jason</text>
102 - <rect x="632.2" y="81.5" width="33.2" height="66.5" class="bar-5"><title>thoas: 12466.1 (encode)</title></rect>
103 - <text x="648.9" y="78.5" text-anchor="middle" font-size="8" class="muted">12466.1</text>
100 + <rect x="632.2" y="72.3" width="33.2" height="75.7" class="bar-5"><title>thoas: 9457.2 (encode)</title></rect>
101 + <text x="648.9" y="69.3" text-anchor="middle" font-size="8" class="muted">9457.2</text>
104 102 <text x="648.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 648.9,158.0)">thoas</text>
105 - <rect x="671.5" y="93.3" width="33.2" height="54.7" class="bar-6"><title>euneus: 10247.2 (encode)</title></rect>
106 - <text x="688.1" y="90.3" text-anchor="middle" font-size="8" class="muted">10247.2</text>
103 + <rect x="671.5" y="78.7" width="33.2" height="69.3" class="bar-6"><title>euneus: 8659.9 (encode)</title></rect>
104 + <text x="688.1" y="75.7" text-anchor="middle" font-size="8" class="muted">8659.9</text>
107 105 <text x="688.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 688.1,158.0)">euneus</text>
108 - <rect x="710.8" y="96.2" width="33.2" height="51.8" class="bar-7"><title>json: 9718.9 (encode)</title></rect>
109 - <text x="727.4" y="93.2" text-anchor="middle" font-size="8" class="muted">9718.9</text>
106 + <rect x="710.8" y="81.2" width="33.2" height="66.8" class="bar-7"><title>json: 8354.5 (encode)</title></rect>
107 + <text x="727.4" y="78.2" text-anchor="middle" font-size="8" class="muted">8354.5</text>
110 108 <text x="727.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 727.4,158.0)">json</text>
111 109 <line x1="430.0" y1="148.0" x2="750.0" y2="148.0" class="axis" stroke-width="1"/>
112 110 <text x="190.0" y="204.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">YAML decode — 1.3K</text>
113 111 <line x1="50.0" y1="286.0" x2="370.0" y2="286.0" class="grid" stroke-width="1"/>
114 112 <text x="44.0" y="289.0" text-anchor="end" font-size="9" class="muted">0</text>
115 113 <line x1="50.0" y1="259.3" x2="370.0" y2="259.3" class="grid" stroke-width="1"/>
116 - <text x="44.0" y="262.3" text-anchor="end" font-size="9" class="muted">1000</text>
114 + <text x="44.0" y="262.3" text-anchor="end" font-size="9" class="muted">500</text>
117 115 <line x1="50.0" y1="232.7" x2="370.0" y2="232.7" class="grid" stroke-width="1"/>
118 - <text x="44.0" y="235.7" text-anchor="end" font-size="9" class="muted">2000</text>
116 + <text x="44.0" y="235.7" text-anchor="end" font-size="9" class="muted">1000</text>
119 117 <line x1="50.0" y1="206.0" x2="370.0" y2="206.0" class="grid" stroke-width="1"/>
120 - <text x="44.0" y="209.0" text-anchor="end" font-size="9" class="muted">3000</text>
121 - <rect x="56.0" y="283.8" width="56.8" height="2.2" class="bar-glazer"><title>glazer: 81 (decode)</title></rect>
122 - <text x="84.4" y="280.8" text-anchor="middle" font-size="8" class="muted">81</text>
118 + <text x="44.0" y="209.0" text-anchor="end" font-size="9" class="muted">1500</text>
119 + <rect x="56.0" y="282.8" width="56.8" height="3.2" class="bar-glazer"><title>glazer: 59.4 (decode)</title></rect>
120 + <text x="84.4" y="279.8" text-anchor="middle" font-size="8" class="muted">59.4</text>
123 121 <text x="84.4" y="296.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 84.4,296.0)">glazer</text>
124 - <rect x="118.8" y="280.8" width="56.8" height="5.2" class="bar-1"><title>yaml_rustler: 195.3 (decode)</title></rect>
125 - <text x="147.2" y="277.8" text-anchor="middle" font-size="8" class="muted">195.3</text>
122 + <rect x="118.8" y="278.9" width="56.8" height="7.1" class="bar-1"><title>yaml_rustler: 133.4 (decode)</title></rect>
123 + <text x="147.2" y="275.9" text-anchor="middle" font-size="8" class="muted">133.4</text>
126 124 <text x="147.2" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 147.2,296.0)">yaml_rustler</text>
127 - <rect x="181.6" y="279.2" width="56.8" height="6.8" class="bar-2"><title>fast_yaml: 254.9 (decode)</title></rect>
128 - <text x="210.0" y="276.2" text-anchor="middle" font-size="8" class="muted">254.9</text>
125 + <rect x="181.6" y="275.2" width="56.8" height="10.8" class="bar-2"><title>fast_yaml: 203.4 (decode)</title></rect>
126 + <text x="210.0" y="272.2" text-anchor="middle" font-size="8" class="muted">203.4</text>
129 127 <text x="210.0" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 210.0,296.0)">fast_yaml</text>
130 - <rect x="244.4" y="232.3" width="56.8" height="53.7" class="bar-3"><title>yamerl: 2014.4 (decode)</title></rect>
131 - <text x="272.8" y="229.3" text-anchor="middle" font-size="8" class="muted">2014.4</text>
128 + <rect x="244.4" y="207.7" width="56.8" height="78.3" class="bar-3"><title>yamerl: 1469 (decode)</title></rect>
129 + <text x="272.8" y="204.7" text-anchor="middle" font-size="8" class="muted">1469</text>
132 130 <text x="272.8" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 272.8,296.0)">yamerl</text>
133 131 <text x="335.6" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
134 132 <text x="335.6" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 335.6,296.0)">ymlr</text>
  @@ -136,66 +134,64 @@
136 134 <text x="570.0" y="204.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">YAML encode — 1.3K</text>
137 135 <line x1="430.0" y1="286.0" x2="750.0" y2="286.0" class="grid" stroke-width="1"/>
138 136 <text x="424.0" y="289.0" text-anchor="end" font-size="9" class="muted">0</text>
139 - <line x1="430.0" y1="266.0" x2="750.0" y2="266.0" class="grid" stroke-width="1"/>
140 - <text x="424.0" y="269.0" text-anchor="end" font-size="9" class="muted">20</text>
141 137 <line x1="430.0" y1="246.0" x2="750.0" y2="246.0" class="grid" stroke-width="1"/>
142 - <text x="424.0" y="249.0" text-anchor="end" font-size="9" class="muted">40</text>
143 - <line x1="430.0" y1="226.0" x2="750.0" y2="226.0" class="grid" stroke-width="1"/>
144 - <text x="424.0" y="229.0" text-anchor="end" font-size="9" class="muted">60</text>
138 + <text x="424.0" y="249.0" text-anchor="end" font-size="9" class="muted">50</text>
145 139 <line x1="430.0" y1="206.0" x2="750.0" y2="206.0" class="grid" stroke-width="1"/>
146 - <text x="424.0" y="209.0" text-anchor="end" font-size="9" class="muted">80</text>
147 - <rect x="436.0" y="271.3" width="56.8" height="14.7" class="bar-glazer"><title>glazer: 14.7 (encode)</title></rect>
148 - <text x="464.4" y="268.3" text-anchor="middle" font-size="8" class="muted">14.7</text>
140 + <text x="424.0" y="209.0" text-anchor="end" font-size="9" class="muted">100</text>
141 + <rect x="436.0" y="278.4" width="56.8" height="7.6" class="bar-glazer"><title>glazer: 9.5 (encode)</title></rect>
142 + <text x="464.4" y="275.4" text-anchor="middle" font-size="8" class="muted">9.5</text>
149 143 <text x="464.4" y="296.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 464.4,296.0)">glazer</text>
150 144 <text x="527.2" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
151 145 <text x="527.2" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 527.2,296.0)">yaml_rustler</text>
152 - <rect x="561.6" y="216.5" width="56.8" height="69.5" class="bar-2"><title>fast_yaml: 69.5 (encode)</title></rect>
153 - <text x="590.0" y="213.5" text-anchor="middle" font-size="8" class="muted">69.5</text>
146 + <rect x="561.6" y="213.4" width="56.8" height="72.6" class="bar-2"><title>fast_yaml: 90.8 (encode)</title></rect>
147 + <text x="590.0" y="210.4" text-anchor="middle" font-size="8" class="muted">90.8</text>
154 148 <text x="590.0" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 590.0,296.0)">fast_yaml</text>
155 149 <text x="652.8" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
156 150 <text x="652.8" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 652.8,296.0)">yamerl</text>
157 - <rect x="687.2" y="223.4" width="56.8" height="62.6" class="bar-4"><title>ymlr: 62.6 (encode)</title></rect>
158 - <text x="715.6" y="220.4" text-anchor="middle" font-size="8" class="muted">62.6</text>
151 + <rect x="687.2" y="248.5" width="56.8" height="37.5" class="bar-4"><title>ymlr: 46.9 (encode)</title></rect>
152 + <text x="715.6" y="245.5" text-anchor="middle" font-size="8" class="muted">46.9</text>
159 153 <text x="715.6" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 715.6,296.0)">ymlr</text>
160 154 <line x1="430.0" y1="286.0" x2="750.0" y2="286.0" class="axis" stroke-width="1"/>
161 155 <text x="190.0" y="342.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">CSV decode — 3433.1K</text>
162 156 <line x1="50.0" y1="424.0" x2="370.0" y2="424.0" class="grid" stroke-width="1"/>
163 157 <text x="44.0" y="427.0" text-anchor="end" font-size="9" class="muted">0</text>
164 158 <line x1="50.0" y1="397.3" x2="370.0" y2="397.3" class="grid" stroke-width="1"/>
165 - <text x="44.0" y="400.3" text-anchor="end" font-size="9" class="muted">100000</text>
159 + <text x="44.0" y="400.3" text-anchor="end" font-size="9" class="muted">500000</text>
166 160 <line x1="50.0" y1="370.7" x2="370.0" y2="370.7" class="grid" stroke-width="1"/>
167 - <text x="44.0" y="373.7" text-anchor="end" font-size="9" class="muted">200000</text>
161 + <text x="44.0" y="373.7" text-anchor="end" font-size="9" class="muted">1e+06</text>
168 162 <line x1="50.0" y1="344.0" x2="370.0" y2="344.0" class="grid" stroke-width="1"/>
169 - <text x="44.0" y="347.0" text-anchor="end" font-size="9" class="muted">300000</text>
170 - <rect x="56.0" y="412.6" width="72.5" height="11.4" class="bar-glazer"><title>glazer: 42617.2 (decode)</title></rect>
171 - <text x="92.2" y="409.6" text-anchor="middle" font-size="8" class="muted">42617.2</text>
163 + <text x="44.0" y="347.0" text-anchor="end" font-size="9" class="muted">1.5e+06</text>
164 + <rect x="56.0" y="422.2" width="72.5" height="1.8" class="bar-glazer"><title>glazer: 32962.9 (decode)</title></rect>
165 + <text x="92.2" y="419.2" text-anchor="middle" font-size="8" class="muted">32962.9</text>
172 166 <text x="92.2" y="434.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 92.2,434.0)">glazer</text>
173 - <rect x="134.5" y="360.4" width="72.5" height="63.6" class="bar-1"><title>nimble_csv: 238366 (decode)</title></rect>
174 - <text x="170.8" y="357.4" text-anchor="middle" font-size="8" class="muted">238366</text>
167 + <rect x="134.5" y="415.0" width="72.5" height="9.0" class="bar-1"><title>nimble_csv: 168600 (decode)</title></rect>
168 + <text x="170.8" y="412.0" text-anchor="middle" font-size="8" class="muted">168600</text>
175 169 <text x="170.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 170.8,434.0)">nimble_csv</text>
176 170 <text x="249.2" y="420.0" text-anchor="middle" font-size="8" class="faint">TIMEOUT</text>
177 171 <text x="249.2" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 249.2,434.0)">csv</text>
178 - <text x="327.8" y="420.0" text-anchor="middle" font-size="8" class="faint">TIMEOUT</text>
172 + <rect x="291.5" y="352.9" width="72.5" height="71.1" class="bar-3"><title>erl_csv: 1.33359e+06 (decode)</title></rect>
173 + <text x="327.8" y="349.9" text-anchor="middle" font-size="8" class="muted">1.33359e+06</text>
179 174 <text x="327.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 327.8,434.0)">erl_csv</text>
180 175 <line x1="50.0" y1="424.0" x2="370.0" y2="424.0" class="axis" stroke-width="1"/>
181 176 <text x="570.0" y="342.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">CSV encode — 3433.1K</text>
182 177 <line x1="430.0" y1="424.0" x2="750.0" y2="424.0" class="grid" stroke-width="1"/>
183 178 <text x="424.0" y="427.0" text-anchor="end" font-size="9" class="muted">0</text>
184 179 <line x1="430.0" y1="397.3" x2="750.0" y2="397.3" class="grid" stroke-width="1"/>
185 - <text x="424.0" y="400.3" text-anchor="end" font-size="9" class="muted">50000</text>
180 + <text x="424.0" y="400.3" text-anchor="end" font-size="9" class="muted">200000</text>
186 181 <line x1="430.0" y1="370.7" x2="750.0" y2="370.7" class="grid" stroke-width="1"/>
187 - <text x="424.0" y="373.7" text-anchor="end" font-size="9" class="muted">100000</text>
182 + <text x="424.0" y="373.7" text-anchor="end" font-size="9" class="muted">400000</text>
188 183 <line x1="430.0" y1="344.0" x2="750.0" y2="344.0" class="grid" stroke-width="1"/>
189 - <text x="424.0" y="347.0" text-anchor="end" font-size="9" class="muted">150000</text>
190 - <rect x="436.0" y="415.3" width="72.5" height="8.7" class="bar-glazer"><title>glazer: 16240.1 (encode)</title></rect>
191 - <text x="472.2" y="412.3" text-anchor="middle" font-size="8" class="muted">16240.1</text>
184 + <text x="424.0" y="347.0" text-anchor="end" font-size="9" class="muted">600000</text>
185 + <rect x="436.0" y="422.6" width="72.5" height="1.4" class="bar-glazer"><title>glazer: 10706.1 (encode)</title></rect>
186 + <text x="472.2" y="419.6" text-anchor="middle" font-size="8" class="muted">10706.1</text>
192 187 <text x="472.2" y="434.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 472.2,434.0)">glazer</text>
193 - <rect x="514.5" y="359.7" width="72.5" height="64.3" class="bar-1"><title>nimble_csv: 120586 (encode)</title></rect>
194 - <text x="550.8" y="356.7" text-anchor="middle" font-size="8" class="muted">120586</text>
188 + <rect x="514.5" y="411.6" width="72.5" height="12.4" class="bar-1"><title>nimble_csv: 93305.1 (encode)</title></rect>
189 + <text x="550.8" y="408.6" text-anchor="middle" font-size="8" class="muted">93305.1</text>
195 190 <text x="550.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 550.8,434.0)">nimble_csv</text>
196 191 <text x="629.2" y="420.0" text-anchor="middle" font-size="8" class="faint">TIMEOUT</text>
197 192 <text x="629.2" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 629.2,434.0)">csv</text>
198 - <text x="707.8" y="420.0" text-anchor="middle" font-size="8" class="faint">TIMEOUT</text>
193 + <rect x="671.5" y="344.1" width="72.5" height="79.9" class="bar-3"><title>erl_csv: 599183 (encode)</title></rect>
194 + <text x="707.8" y="341.1" text-anchor="middle" font-size="8" class="muted">599183</text>
199 195 <text x="707.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 707.8,434.0)">erl_csv</text>
200 196 <line x1="430.0" y1="424.0" x2="750.0" y2="424.0" class="axis" stroke-width="1"/>
201 197 </svg>
\ No newline at end of file
  @@ -50,29 +50,29 @@
50 50 <text x="44.0" y="97.7" text-anchor="end" font-size="9" class="muted">20</text>
51 51 <line x1="50.0" y1="68.0" x2="370.0" y2="68.0" class="grid" stroke-width="1"/>
52 52 <text x="44.0" y="71.0" text-anchor="end" font-size="9" class="muted">30</text>
53 - <rect x="56.0" y="130.1" width="33.2" height="17.9" class="bar-glazer"><title>glazer: 6.7 (decode)</title></rect>
54 - <text x="72.6" y="127.1" text-anchor="middle" font-size="8" class="muted">6.7</text>
53 + <rect x="56.0" y="130.9" width="33.2" height="17.1" class="bar-glazer"><title>glazer: 6.4 (decode)</title></rect>
54 + <text x="72.6" y="127.9" text-anchor="middle" font-size="8" class="muted">6.4</text>
55 55 <text x="72.6" y="158.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 72.6,158.0)">glazer</text>
56 - <rect x="95.2" y="123.2" width="33.2" height="24.8" class="bar-1"><title>torque: 9.3 (decode)</title></rect>
57 - <text x="111.9" y="120.2" text-anchor="middle" font-size="8" class="muted">9.3</text>
56 + <rect x="95.2" y="129.1" width="33.2" height="18.9" class="bar-1"><title>torque: 7.1 (decode)</title></rect>
57 + <text x="111.9" y="126.1" text-anchor="middle" font-size="8" class="muted">7.1</text>
58 58 <text x="111.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 111.9,158.0)">torque</text>
59 - <rect x="134.5" y="115.7" width="33.2" height="32.3" class="bar-2"><title>simdjsone: 12.1 (decode)</title></rect>
60 - <text x="151.1" y="112.7" text-anchor="middle" font-size="8" class="muted">12.1</text>
59 + <rect x="134.5" y="126.4" width="33.2" height="21.6" class="bar-2"><title>simdjsone: 8.1 (decode)</title></rect>
60 + <text x="151.1" y="123.4" text-anchor="middle" font-size="8" class="muted">8.1</text>
61 61 <text x="151.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 151.1,158.0)">simdjsone</text>
62 - <rect x="173.8" y="114.9" width="33.2" height="33.1" class="bar-3"><title>jiffy: 12.4 (decode)</title></rect>
63 - <text x="190.4" y="111.9" text-anchor="middle" font-size="8" class="muted">12.4</text>
62 + <rect x="173.8" y="124.8" width="33.2" height="23.2" class="bar-3"><title>jiffy: 8.7 (decode)</title></rect>
63 + <text x="190.4" y="121.8" text-anchor="middle" font-size="8" class="muted">8.7</text>
64 64 <text x="190.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 190.4,158.0)">jiffy</text>
65 - <rect x="213.0" y="95.5" width="33.2" height="52.5" class="bar-4"><title>jason: 19.7 (decode)</title></rect>
66 - <text x="229.6" y="92.5" text-anchor="middle" font-size="8" class="muted">19.7</text>
65 + <rect x="213.0" y="96.5" width="33.2" height="51.5" class="bar-4"><title>jason: 19.3 (decode)</title></rect>
66 + <text x="229.6" y="93.5" text-anchor="middle" font-size="8" class="muted">19.3</text>
67 67 <text x="229.6" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 229.6,158.0)">jason</text>
68 - <rect x="252.2" y="81.1" width="33.2" height="66.9" class="bar-5"><title>thoas: 25.1 (decode)</title></rect>
69 - <text x="268.9" y="78.1" text-anchor="middle" font-size="8" class="muted">25.1</text>
68 + <rect x="252.2" y="87.5" width="33.2" height="60.5" class="bar-5"><title>thoas: 22.7 (decode)</title></rect>
69 + <text x="268.9" y="84.5" text-anchor="middle" font-size="8" class="muted">22.7</text>
70 70 <text x="268.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 268.9,158.0)">thoas</text>
71 - <rect x="291.5" y="103.5" width="33.2" height="44.5" class="bar-6"><title>euneus: 16.7 (decode)</title></rect>
72 - <text x="308.1" y="100.5" text-anchor="middle" font-size="8" class="muted">16.7</text>
71 + <rect x="291.5" y="115.2" width="33.2" height="32.8" class="bar-6"><title>euneus: 12.3 (decode)</title></rect>
72 + <text x="308.1" y="112.2" text-anchor="middle" font-size="8" class="muted">12.3</text>
73 73 <text x="308.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 308.1,158.0)">euneus</text>
74 - <rect x="330.8" y="96.8" width="33.2" height="51.2" class="bar-7"><title>json: 19.2 (decode)</title></rect>
75 - <text x="347.4" y="93.8" text-anchor="middle" font-size="8" class="muted">19.2</text>
74 + <rect x="330.8" y="117.9" width="33.2" height="30.1" class="bar-7"><title>json: 11.3 (decode)</title></rect>
75 + <text x="347.4" y="114.9" text-anchor="middle" font-size="8" class="muted">11.3</text>
76 76 <text x="347.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 347.4,158.0)">json</text>
77 77 <line x1="50.0" y1="148.0" x2="370.0" y2="148.0" class="axis" stroke-width="1"/>
78 78 <text x="570.0" y="66.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">JSON encode — 1.3K</text>
  @@ -84,29 +84,29 @@
84 84 <text x="424.0" y="97.7" text-anchor="end" font-size="9" class="muted">20</text>
85 85 <line x1="430.0" y1="68.0" x2="750.0" y2="68.0" class="grid" stroke-width="1"/>
86 86 <text x="424.0" y="71.0" text-anchor="end" font-size="9" class="muted">30</text>
87 - <rect x="436.0" y="137.3" width="33.2" height="10.7" class="bar-glazer"><title>glazer: 4 (encode)</title></rect>
88 - <text x="452.6" y="134.3" text-anchor="middle" font-size="8" class="muted">4</text>
87 + <rect x="436.0" y="141.9" width="33.2" height="6.1" class="bar-glazer"><title>glazer: 2.3 (encode)</title></rect>
88 + <text x="452.6" y="138.9" text-anchor="middle" font-size="8" class="muted">2.3</text>
89 89 <text x="452.6" y="158.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 452.6,158.0)">glazer</text>
90 - <rect x="475.2" y="131.5" width="33.2" height="16.5" class="bar-1"><title>torque: 6.2 (encode)</title></rect>
91 - <text x="491.9" y="128.5" text-anchor="middle" font-size="8" class="muted">6.2</text>
90 + <rect x="475.2" y="138.4" width="33.2" height="9.6" class="bar-1"><title>torque: 3.6 (encode)</title></rect>
91 + <text x="491.9" y="135.4" text-anchor="middle" font-size="8" class="muted">3.6</text>
92 92 <text x="491.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 491.9,158.0)">torque</text>
93 - <rect x="514.5" y="114.4" width="33.2" height="33.6" class="bar-2"><title>simdjsone: 12.6 (encode)</title></rect>
94 - <text x="531.1" y="111.4" text-anchor="middle" font-size="8" class="muted">12.6</text>
93 + <rect x="514.5" y="123.2" width="33.2" height="24.8" class="bar-2"><title>simdjsone: 9.3 (encode)</title></rect>
94 + <text x="531.1" y="120.2" text-anchor="middle" font-size="8" class="muted">9.3</text>
95 95 <text x="531.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 531.1,158.0)">simdjsone</text>
96 - <rect x="553.8" y="123.7" width="33.2" height="24.3" class="bar-3"><title>jiffy: 9.1 (encode)</title></rect>
97 - <text x="570.4" y="120.7" text-anchor="middle" font-size="8" class="muted">9.1</text>
96 + <rect x="553.8" y="130.7" width="33.2" height="17.3" class="bar-3"><title>jiffy: 6.5 (encode)</title></rect>
97 + <text x="570.4" y="127.7" text-anchor="middle" font-size="8" class="muted">6.5</text>
98 98 <text x="570.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 570.4,158.0)">jiffy</text>
99 - <rect x="593.0" y="81.3" width="33.2" height="66.7" class="bar-4"><title>jason: 25 (encode)</title></rect>
100 - <text x="609.6" y="78.3" text-anchor="middle" font-size="8" class="muted">25</text>
99 + <rect x="593.0" y="99.5" width="33.2" height="48.5" class="bar-4"><title>jason: 18.2 (encode)</title></rect>
100 + <text x="609.6" y="96.5" text-anchor="middle" font-size="8" class="muted">18.2</text>
101 101 <text x="609.6" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 609.6,158.0)">jason</text>
102 - <rect x="632.2" y="68.3" width="33.2" height="79.7" class="bar-5"><title>thoas: 29.9 (encode)</title></rect>
103 - <text x="648.9" y="65.3" text-anchor="middle" font-size="8" class="muted">29.9</text>
102 + <rect x="632.2" y="92.3" width="33.2" height="55.7" class="bar-5"><title>thoas: 20.9 (encode)</title></rect>
103 + <text x="648.9" y="89.3" text-anchor="middle" font-size="8" class="muted">20.9</text>
104 104 <text x="648.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 648.9,158.0)">thoas</text>
105 - <rect x="671.5" y="109.1" width="33.2" height="38.9" class="bar-6"><title>euneus: 14.6 (encode)</title></rect>
106 - <text x="688.1" y="106.1" text-anchor="middle" font-size="8" class="muted">14.6</text>
105 + <rect x="671.5" y="114.4" width="33.2" height="33.6" class="bar-6"><title>euneus: 12.6 (encode)</title></rect>
106 + <text x="688.1" y="111.4" text-anchor="middle" font-size="8" class="muted">12.6</text>
107 107 <text x="688.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 688.1,158.0)">euneus</text>
108 - <rect x="710.8" y="115.2" width="33.2" height="32.8" class="bar-7"><title>json: 12.3 (encode)</title></rect>
109 - <text x="727.4" y="112.2" text-anchor="middle" font-size="8" class="muted">12.3</text>
108 + <rect x="710.8" y="122.4" width="33.2" height="25.6" class="bar-7"><title>json: 9.6 (encode)</title></rect>
109 + <text x="727.4" y="119.4" text-anchor="middle" font-size="8" class="muted">9.6</text>
110 110 <text x="727.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 727.4,158.0)">json</text>
111 111 <line x1="430.0" y1="148.0" x2="750.0" y2="148.0" class="axis" stroke-width="1"/>
112 112 <text x="190.0" y="204.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">YAML decode — 1.3K</text>
  @@ -118,17 +118,17 @@
118 118 <text x="44.0" y="235.7" text-anchor="end" font-size="9" class="muted">1000</text>
119 119 <line x1="50.0" y1="206.0" x2="370.0" y2="206.0" class="grid" stroke-width="1"/>
120 120 <text x="44.0" y="209.0" text-anchor="end" font-size="9" class="muted">1500</text>
121 - <rect x="56.0" y="284.9" width="56.8" height="1.1" class="bar-glazer"><title>glazer: 19.9 (decode)</title></rect>
122 - <text x="84.4" y="281.9" text-anchor="middle" font-size="8" class="muted">19.9</text>
121 + <rect x="56.0" y="284.5" width="56.8" height="1.5" class="bar-glazer"><title>glazer: 28.6 (decode)</title></rect>
122 + <text x="84.4" y="281.5" text-anchor="middle" font-size="8" class="muted">28.6</text>
123 123 <text x="84.4" y="296.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 84.4,296.0)">glazer</text>
124 - <rect x="118.8" y="280.5" width="56.8" height="5.5" class="bar-1"><title>yaml_rustler: 103.9 (decode)</title></rect>
125 - <text x="147.2" y="277.5" text-anchor="middle" font-size="8" class="muted">103.9</text>
124 + <rect x="118.8" y="280.7" width="56.8" height="5.3" class="bar-1"><title>yaml_rustler: 99.5 (decode)</title></rect>
125 + <text x="147.2" y="277.7" text-anchor="middle" font-size="8" class="muted">99.5</text>
126 126 <text x="147.2" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 147.2,296.0)">yaml_rustler</text>
127 - <rect x="181.6" y="278.5" width="56.8" height="7.5" class="bar-2"><title>fast_yaml: 141.4 (decode)</title></rect>
128 - <text x="210.0" y="275.5" text-anchor="middle" font-size="8" class="muted">141.4</text>
127 + <rect x="181.6" y="280.5" width="56.8" height="5.5" class="bar-2"><title>fast_yaml: 103.4 (decode)</title></rect>
128 + <text x="210.0" y="277.5" text-anchor="middle" font-size="8" class="muted">103.4</text>
129 129 <text x="210.0" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 210.0,296.0)">fast_yaml</text>
130 - <rect x="244.4" y="206.7" width="56.8" height="79.3" class="bar-3"><title>yamerl: 1486.2 (decode)</title></rect>
131 - <text x="272.8" y="203.7" text-anchor="middle" font-size="8" class="muted">1486.2</text>
130 + <rect x="244.4" y="232.3" width="56.8" height="53.7" class="bar-3"><title>yamerl: 1006.9 (decode)</title></rect>
131 + <text x="272.8" y="229.3" text-anchor="middle" font-size="8" class="muted">1006.9</text>
132 132 <text x="272.8" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 272.8,296.0)">yamerl</text>
133 133 <text x="335.6" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
134 134 <text x="335.6" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 335.6,296.0)">ymlr</text>
  @@ -142,64 +142,64 @@
142 142 <text x="424.0" y="235.7" text-anchor="end" font-size="9" class="muted">40</text>
143 143 <line x1="430.0" y1="206.0" x2="750.0" y2="206.0" class="grid" stroke-width="1"/>
144 144 <text x="424.0" y="209.0" text-anchor="end" font-size="9" class="muted">60</text>
145 - <rect x="436.0" y="275.5" width="56.8" height="10.5" class="bar-glazer"><title>glazer: 7.9 (encode)</title></rect>
146 - <text x="464.4" y="272.5" text-anchor="middle" font-size="8" class="muted">7.9</text>
145 + <rect x="436.0" y="278.5" width="56.8" height="7.5" class="bar-glazer"><title>glazer: 5.6 (encode)</title></rect>
146 + <text x="464.4" y="275.5" text-anchor="middle" font-size="8" class="muted">5.6</text>
147 147 <text x="464.4" y="296.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 464.4,296.0)">glazer</text>
148 148 <text x="527.2" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
149 149 <text x="527.2" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 527.2,296.0)">yaml_rustler</text>
150 - <rect x="561.6" y="213.5" width="56.8" height="72.5" class="bar-2"><title>fast_yaml: 54.4 (encode)</title></rect>
151 - <text x="590.0" y="210.5" text-anchor="middle" font-size="8" class="muted">54.4</text>
150 + <rect x="561.6" y="232.3" width="56.8" height="53.7" class="bar-2"><title>fast_yaml: 40.3 (encode)</title></rect>
151 + <text x="590.0" y="229.3" text-anchor="middle" font-size="8" class="muted">40.3</text>
152 152 <text x="590.0" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 590.0,296.0)">fast_yaml</text>
153 153 <text x="652.8" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
154 154 <text x="652.8" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 652.8,296.0)">yamerl</text>
155 - <rect x="687.2" y="224.5" width="56.8" height="61.5" class="bar-4"><title>ymlr: 46.1 (encode)</title></rect>
156 - <text x="715.6" y="221.5" text-anchor="middle" font-size="8" class="muted">46.1</text>
155 + <rect x="687.2" y="234.0" width="56.8" height="52.0" class="bar-4"><title>ymlr: 39 (encode)</title></rect>
156 + <text x="715.6" y="231.0" text-anchor="middle" font-size="8" class="muted">39</text>
157 157 <text x="715.6" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 715.6,296.0)">ymlr</text>
158 158 <line x1="430.0" y1="286.0" x2="750.0" y2="286.0" class="axis" stroke-width="1"/>
159 159 <text x="190.0" y="342.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">CSV decode — 130.9K</text>
160 160 <line x1="50.0" y1="424.0" x2="370.0" y2="424.0" class="grid" stroke-width="1"/>
161 161 <text x="44.0" y="427.0" text-anchor="end" font-size="9" class="muted">0</text>
162 - <line x1="50.0" y1="397.3" x2="370.0" y2="397.3" class="grid" stroke-width="1"/>
163 - <text x="44.0" y="400.3" text-anchor="end" font-size="9" class="muted">20000</text>
164 - <line x1="50.0" y1="370.7" x2="370.0" y2="370.7" class="grid" stroke-width="1"/>
165 - <text x="44.0" y="373.7" text-anchor="end" font-size="9" class="muted">40000</text>
162 + <line x1="50.0" y1="404.0" x2="370.0" y2="404.0" class="grid" stroke-width="1"/>
163 + <text x="44.0" y="407.0" text-anchor="end" font-size="9" class="muted">10000</text>
164 + <line x1="50.0" y1="384.0" x2="370.0" y2="384.0" class="grid" stroke-width="1"/>
165 + <text x="44.0" y="387.0" text-anchor="end" font-size="9" class="muted">20000</text>
166 + <line x1="50.0" y1="364.0" x2="370.0" y2="364.0" class="grid" stroke-width="1"/>
167 + <text x="44.0" y="367.0" text-anchor="end" font-size="9" class="muted">30000</text>
166 168 <line x1="50.0" y1="344.0" x2="370.0" y2="344.0" class="grid" stroke-width="1"/>
167 - <text x="44.0" y="347.0" text-anchor="end" font-size="9" class="muted">60000</text>
168 - <rect x="56.0" y="422.3" width="72.5" height="1.7" class="bar-glazer"><title>glazer: 1289.6 (decode)</title></rect>
169 - <text x="92.2" y="419.3" text-anchor="middle" font-size="8" class="muted">1289.6</text>
169 + <text x="44.0" y="347.0" text-anchor="end" font-size="9" class="muted">40000</text>
170 + <rect x="56.0" y="422.3" width="72.5" height="1.7" class="bar-glazer"><title>glazer: 839.3 (decode)</title></rect>
171 + <text x="92.2" y="419.3" text-anchor="middle" font-size="8" class="muted">839.3</text>
170 172 <text x="92.2" y="434.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 92.2,434.0)">glazer</text>
171 - <rect x="134.5" y="417.9" width="72.5" height="6.1" class="bar-1"><title>nimble_csv: 4582.9 (decode)</title></rect>
172 - <text x="170.8" y="414.9" text-anchor="middle" font-size="8" class="muted">4582.9</text>
173 + <rect x="134.5" y="417.0" width="72.5" height="7.0" class="bar-1"><title>nimble_csv: 3522.8 (decode)</title></rect>
174 + <text x="170.8" y="414.0" text-anchor="middle" font-size="8" class="muted">3522.8</text>
173 175 <text x="170.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 170.8,434.0)">nimble_csv</text>
174 - <rect x="213.0" y="412.9" width="72.5" height="11.1" class="bar-2"><title>csv: 8335.2 (decode)</title></rect>
175 - <text x="249.2" y="409.9" text-anchor="middle" font-size="8" class="muted">8335.2</text>
176 + <rect x="213.0" y="412.3" width="72.5" height="11.7" class="bar-2"><title>csv: 5873.3 (decode)</title></rect>
177 + <text x="249.2" y="409.3" text-anchor="middle" font-size="8" class="muted">5873.3</text>
176 178 <text x="249.2" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 249.2,434.0)">csv</text>
177 - <rect x="291.5" y="350.7" width="72.5" height="73.3" class="bar-3"><title>erl_csv: 54950.5 (decode)</title></rect>
178 - <text x="327.8" y="347.7" text-anchor="middle" font-size="8" class="muted">54950.5</text>
179 + <rect x="291.5" y="346.5" width="72.5" height="77.5" class="bar-3"><title>erl_csv: 38773.1 (decode)</title></rect>
180 + <text x="327.8" y="343.5" text-anchor="middle" font-size="8" class="muted">38773.1</text>
179 181 <text x="327.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 327.8,434.0)">erl_csv</text>
180 182 <line x1="50.0" y1="424.0" x2="370.0" y2="424.0" class="axis" stroke-width="1"/>
181 183 <text x="570.0" y="342.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">CSV encode — 130.9K</text>
182 184 <line x1="430.0" y1="424.0" x2="750.0" y2="424.0" class="grid" stroke-width="1"/>
183 185 <text x="424.0" y="427.0" text-anchor="end" font-size="9" class="muted">0</text>
184 - <line x1="430.0" y1="404.0" x2="750.0" y2="404.0" class="grid" stroke-width="1"/>
185 - <text x="424.0" y="407.0" text-anchor="end" font-size="9" class="muted">10000</text>
186 - <line x1="430.0" y1="384.0" x2="750.0" y2="384.0" class="grid" stroke-width="1"/>
187 - <text x="424.0" y="387.0" text-anchor="end" font-size="9" class="muted">20000</text>
188 - <line x1="430.0" y1="364.0" x2="750.0" y2="364.0" class="grid" stroke-width="1"/>
189 - <text x="424.0" y="367.0" text-anchor="end" font-size="9" class="muted">30000</text>
186 + <line x1="430.0" y1="397.3" x2="750.0" y2="397.3" class="grid" stroke-width="1"/>
187 + <text x="424.0" y="400.3" text-anchor="end" font-size="9" class="muted">10000</text>
188 + <line x1="430.0" y1="370.7" x2="750.0" y2="370.7" class="grid" stroke-width="1"/>
189 + <text x="424.0" y="373.7" text-anchor="end" font-size="9" class="muted">20000</text>
190 190 <line x1="430.0" y1="344.0" x2="750.0" y2="344.0" class="grid" stroke-width="1"/>
191 - <text x="424.0" y="347.0" text-anchor="end" font-size="9" class="muted">40000</text>
192 - <rect x="436.0" y="423.1" width="72.5" height="0.9" class="bar-glazer"><title>glazer: 469.5 (encode)</title></rect>
193 - <text x="472.2" y="420.1" text-anchor="middle" font-size="8" class="muted">469.5</text>
191 + <text x="424.0" y="347.0" text-anchor="end" font-size="9" class="muted">30000</text>
192 + <rect x="436.0" y="423.0" width="72.5" height="1.0" class="bar-glazer"><title>glazer: 382.2 (encode)</title></rect>
193 + <text x="472.2" y="420.0" text-anchor="middle" font-size="8" class="muted">382.2</text>
194 194 <text x="472.2" y="434.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 472.2,434.0)">glazer</text>
195 - <rect x="514.5" y="417.6" width="72.5" height="6.4" class="bar-1"><title>nimble_csv: 3204.4 (encode)</title></rect>
196 - <text x="550.8" y="414.6" text-anchor="middle" font-size="8" class="muted">3204.4</text>
195 + <rect x="514.5" y="416.6" width="72.5" height="7.4" class="bar-1"><title>nimble_csv: 2785.7 (encode)</title></rect>
196 + <text x="550.8" y="413.6" text-anchor="middle" font-size="8" class="muted">2785.7</text>
197 197 <text x="550.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 550.8,434.0)">nimble_csv</text>
198 - <rect x="593.0" y="375.2" width="72.5" height="48.8" class="bar-2"><title>csv: 24393.9 (encode)</title></rect>
199 - <text x="629.2" y="372.2" text-anchor="middle" font-size="8" class="muted">24393.9</text>
198 + <rect x="593.0" y="381.0" width="72.5" height="43.0" class="bar-2"><title>csv: 16112.3 (encode)</title></rect>
199 + <text x="629.2" y="378.0" text-anchor="middle" font-size="8" class="muted">16112.3</text>
200 200 <text x="629.2" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 629.2,434.0)">csv</text>
201 - <rect x="671.5" y="354.8" width="72.5" height="69.2" class="bar-3"><title>erl_csv: 34607.9 (encode)</title></rect>
202 - <text x="707.8" y="351.8" text-anchor="middle" font-size="8" class="muted">34607.9</text>
201 + <rect x="671.5" y="357.1" width="72.5" height="66.9" class="bar-3"><title>erl_csv: 25074.8 (encode)</title></rect>
202 + <text x="707.8" y="354.1" text-anchor="middle" font-size="8" class="muted">25074.8</text>
203 203 <text x="707.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 707.8,434.0)">erl_csv</text>
204 204 <line x1="430.0" y1="424.0" x2="750.0" y2="424.0" class="axis" stroke-width="1"/>
205 205 </svg>
\ No newline at end of file
  @@ -50,87 +50,85 @@
50 50 <text x="44.0" y="97.7" text-anchor="end" font-size="9" class="muted">4</text>
51 51 <line x1="50.0" y1="68.0" x2="370.0" y2="68.0" class="grid" stroke-width="1"/>
52 52 <text x="44.0" y="71.0" text-anchor="end" font-size="9" class="muted">6</text>
53 - <rect x="56.0" y="132.0" width="33.2" height="16.0" class="bar-glazer"><title>glazer: 1.2 (decode)</title></rect>
54 - <text x="72.6" y="129.0" text-anchor="middle" font-size="8" class="muted">1.2</text>
53 + <rect x="56.0" y="137.3" width="33.2" height="10.7" class="bar-glazer"><title>glazer: 0.8 (decode)</title></rect>
54 + <text x="72.6" y="134.3" text-anchor="middle" font-size="8" class="muted">0.8</text>
55 55 <text x="72.6" y="158.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 72.6,158.0)">glazer</text>
56 - <rect x="95.2" y="125.3" width="33.2" height="22.7" class="bar-1"><title>torque: 1.7 (decode)</title></rect>
57 - <text x="111.9" y="122.3" text-anchor="middle" font-size="8" class="muted">1.7</text>
56 + <rect x="95.2" y="132.0" width="33.2" height="16.0" class="bar-1"><title>torque: 1.2 (decode)</title></rect>
57 + <text x="111.9" y="129.0" text-anchor="middle" font-size="8" class="muted">1.2</text>
58 58 <text x="111.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 111.9,158.0)">torque</text>
59 - <rect x="134.5" y="122.7" width="33.2" height="25.3" class="bar-2"><title>simdjsone: 1.9 (decode)</title></rect>
60 - <text x="151.1" y="119.7" text-anchor="middle" font-size="8" class="muted">1.9</text>
59 + <rect x="134.5" y="132.0" width="33.2" height="16.0" class="bar-2"><title>simdjsone: 1.2 (decode)</title></rect>
60 + <text x="151.1" y="129.0" text-anchor="middle" font-size="8" class="muted">1.2</text>
61 61 <text x="151.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 151.1,158.0)">simdjsone</text>
62 - <rect x="173.8" y="114.7" width="33.2" height="33.3" class="bar-3"><title>jiffy: 2.5 (decode)</title></rect>
63 - <text x="190.4" y="111.7" text-anchor="middle" font-size="8" class="muted">2.5</text>
62 + <rect x="173.8" y="120.0" width="33.2" height="28.0" class="bar-3"><title>jiffy: 2.1 (decode)</title></rect>
63 + <text x="190.4" y="117.0" text-anchor="middle" font-size="8" class="muted">2.1</text>
64 64 <text x="190.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 190.4,158.0)">jiffy</text>
65 - <rect x="213.0" y="89.3" width="33.2" height="58.7" class="bar-4"><title>jason: 4.4 (decode)</title></rect>
66 - <text x="229.6" y="86.3" text-anchor="middle" font-size="8" class="muted">4.4</text>
65 + <rect x="213.0" y="110.7" width="33.2" height="37.3" class="bar-4"><title>jason: 2.8 (decode)</title></rect>
66 + <text x="229.6" y="107.7" text-anchor="middle" font-size="8" class="muted">2.8</text>
67 67 <text x="229.6" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 229.6,158.0)">jason</text>
68 - <rect x="252.2" y="105.3" width="33.2" height="42.7" class="bar-5"><title>thoas: 3.2 (decode)</title></rect>
69 - <text x="268.9" y="102.3" text-anchor="middle" font-size="8" class="muted">3.2</text>
68 + <rect x="252.2" y="112.0" width="33.2" height="36.0" class="bar-5"><title>thoas: 2.7 (decode)</title></rect>
69 + <text x="268.9" y="109.0" text-anchor="middle" font-size="8" class="muted">2.7</text>
70 70 <text x="268.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 268.9,158.0)">thoas</text>
71 - <rect x="291.5" y="94.7" width="33.2" height="53.3" class="bar-6"><title>euneus: 4 (decode)</title></rect>
72 - <text x="308.1" y="91.7" text-anchor="middle" font-size="8" class="muted">4</text>
71 + <rect x="291.5" y="80.0" width="33.2" height="68.0" class="bar-6"><title>euneus: 5.1 (decode)</title></rect>
72 + <text x="308.1" y="77.0" text-anchor="middle" font-size="8" class="muted">5.1</text>
73 73 <text x="308.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 308.1,158.0)">euneus</text>
74 - <rect x="330.8" y="94.7" width="33.2" height="53.3" class="bar-7"><title>json: 4 (decode)</title></rect>
75 - <text x="347.4" y="91.7" text-anchor="middle" font-size="8" class="muted">4</text>
74 + <rect x="330.8" y="89.3" width="33.2" height="58.7" class="bar-7"><title>json: 4.4 (decode)</title></rect>
75 + <text x="347.4" y="86.3" text-anchor="middle" font-size="8" class="muted">4.4</text>
76 76 <text x="347.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 347.4,158.0)">json</text>
77 77 <line x1="50.0" y1="148.0" x2="370.0" y2="148.0" class="axis" stroke-width="1"/>
78 78 <text x="570.0" y="66.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">JSON encode — 0.1K</text>
79 79 <line x1="430.0" y1="148.0" x2="750.0" y2="148.0" class="grid" stroke-width="1"/>
80 80 <text x="424.0" y="151.0" text-anchor="end" font-size="9" class="muted">0</text>
81 81 <line x1="430.0" y1="121.3" x2="750.0" y2="121.3" class="grid" stroke-width="1"/>
82 - <text x="424.0" y="124.3" text-anchor="end" font-size="9" class="muted">2</text>
82 + <text x="424.0" y="124.3" text-anchor="end" font-size="9" class="muted">1</text>
83 83 <line x1="430.0" y1="94.7" x2="750.0" y2="94.7" class="grid" stroke-width="1"/>
84 - <text x="424.0" y="97.7" text-anchor="end" font-size="9" class="muted">4</text>
84 + <text x="424.0" y="97.7" text-anchor="end" font-size="9" class="muted">2</text>
85 85 <line x1="430.0" y1="68.0" x2="750.0" y2="68.0" class="grid" stroke-width="1"/>
86 - <text x="424.0" y="71.0" text-anchor="end" font-size="9" class="muted">6</text>
87 - <rect x="436.0" y="134.7" width="33.2" height="13.3" class="bar-glazer"><title>glazer: 1 (encode)</title></rect>
88 - <text x="452.6" y="131.7" text-anchor="middle" font-size="8" class="muted">1</text>
86 + <text x="424.0" y="71.0" text-anchor="end" font-size="9" class="muted">3</text>
87 + <rect x="436.0" y="126.7" width="33.2" height="21.3" class="bar-glazer"><title>glazer: 0.8 (encode)</title></rect>
88 + <text x="452.6" y="123.7" text-anchor="middle" font-size="8" class="muted">0.8</text>
89 89 <text x="452.6" y="158.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 452.6,158.0)">glazer</text>
90 - <rect x="475.2" y="130.7" width="33.2" height="17.3" class="bar-1"><title>torque: 1.3 (encode)</title></rect>
91 - <text x="491.9" y="127.7" text-anchor="middle" font-size="8" class="muted">1.3</text>
90 + <rect x="475.2" y="124.0" width="33.2" height="24.0" class="bar-1"><title>torque: 0.9 (encode)</title></rect>
91 + <text x="491.9" y="121.0" text-anchor="middle" font-size="8" class="muted">0.9</text>
92 92 <text x="491.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 491.9,158.0)">torque</text>
93 - <rect x="514.5" y="100.0" width="33.2" height="48.0" class="bar-2"><title>simdjsone: 3.6 (encode)</title></rect>
94 - <text x="531.1" y="97.0" text-anchor="middle" font-size="8" class="muted">3.6</text>
93 + <rect x="514.5" y="92.0" width="33.2" height="56.0" class="bar-2"><title>simdjsone: 2.1 (encode)</title></rect>
94 + <text x="531.1" y="89.0" text-anchor="middle" font-size="8" class="muted">2.1</text>
95 95 <text x="531.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 531.1,158.0)">simdjsone</text>
96 - <rect x="553.8" y="97.3" width="33.2" height="50.7" class="bar-3"><title>jiffy: 3.8 (encode)</title></rect>
97 - <text x="570.4" y="94.3" text-anchor="middle" font-size="8" class="muted">3.8</text>
96 + <rect x="553.8" y="92.0" width="33.2" height="56.0" class="bar-3"><title>jiffy: 2.1 (encode)</title></rect>
97 + <text x="570.4" y="89.0" text-anchor="middle" font-size="8" class="muted">2.1</text>
98 98 <text x="570.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 570.4,158.0)">jiffy</text>
99 - <rect x="593.0" y="109.3" width="33.2" height="38.7" class="bar-4"><title>jason: 2.9 (encode)</title></rect>
100 - <text x="609.6" y="106.3" text-anchor="middle" font-size="8" class="muted">2.9</text>
99 + <rect x="593.0" y="68.0" width="33.2" height="80.0" class="bar-4"><title>jason: 3 (encode)</title></rect>
100 + <text x="609.6" y="65.0" text-anchor="middle" font-size="8" class="muted">3</text>
101 101 <text x="609.6" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 609.6,158.0)">jason</text>
102 - <rect x="632.2" y="96.0" width="33.2" height="52.0" class="bar-5"><title>thoas: 3.9 (encode)</title></rect>
103 - <text x="648.9" y="93.0" text-anchor="middle" font-size="8" class="muted">3.9</text>
102 + <rect x="632.2" y="68.0" width="33.2" height="80.0" class="bar-5"><title>thoas: 3 (encode)</title></rect>
103 + <text x="648.9" y="65.0" text-anchor="middle" font-size="8" class="muted">3</text>
104 104 <text x="648.9" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 648.9,158.0)">thoas</text>
105 - <rect x="671.5" y="86.7" width="33.2" height="61.3" class="bar-6"><title>euneus: 4.6 (encode)</title></rect>
106 - <text x="688.1" y="83.7" text-anchor="middle" font-size="8" class="muted">4.6</text>
105 + <rect x="671.5" y="89.3" width="33.2" height="58.7" class="bar-6"><title>euneus: 2.2 (encode)</title></rect>
106 + <text x="688.1" y="86.3" text-anchor="middle" font-size="8" class="muted">2.2</text>
107 107 <text x="688.1" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 688.1,158.0)">euneus</text>
108 - <rect x="710.8" y="88.0" width="33.2" height="60.0" class="bar-7"><title>json: 4.5 (encode)</title></rect>
109 - <text x="727.4" y="85.0" text-anchor="middle" font-size="8" class="muted">4.5</text>
108 + <rect x="710.8" y="89.3" width="33.2" height="58.7" class="bar-7"><title>json: 2.2 (encode)</title></rect>
109 + <text x="727.4" y="86.3" text-anchor="middle" font-size="8" class="muted">2.2</text>
110 110 <text x="727.4" y="158.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 727.4,158.0)">json</text>
111 111 <line x1="430.0" y1="148.0" x2="750.0" y2="148.0" class="axis" stroke-width="1"/>
112 112 <text x="190.0" y="204.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">YAML decode — 0.1K</text>
113 113 <line x1="50.0" y1="286.0" x2="370.0" y2="286.0" class="grid" stroke-width="1"/>
114 114 <text x="44.0" y="289.0" text-anchor="end" font-size="9" class="muted">0</text>
115 - <line x1="50.0" y1="266.0" x2="370.0" y2="266.0" class="grid" stroke-width="1"/>
116 - <text x="44.0" y="269.0" text-anchor="end" font-size="9" class="muted">200</text>
117 - <line x1="50.0" y1="246.0" x2="370.0" y2="246.0" class="grid" stroke-width="1"/>
118 - <text x="44.0" y="249.0" text-anchor="end" font-size="9" class="muted">400</text>
119 - <line x1="50.0" y1="226.0" x2="370.0" y2="226.0" class="grid" stroke-width="1"/>
120 - <text x="44.0" y="229.0" text-anchor="end" font-size="9" class="muted">600</text>
115 + <line x1="50.0" y1="259.3" x2="370.0" y2="259.3" class="grid" stroke-width="1"/>
116 + <text x="44.0" y="262.3" text-anchor="end" font-size="9" class="muted">200</text>
117 + <line x1="50.0" y1="232.7" x2="370.0" y2="232.7" class="grid" stroke-width="1"/>
118 + <text x="44.0" y="235.7" text-anchor="end" font-size="9" class="muted">400</text>
121 119 <line x1="50.0" y1="206.0" x2="370.0" y2="206.0" class="grid" stroke-width="1"/>
122 - <text x="44.0" y="209.0" text-anchor="end" font-size="9" class="muted">800</text>
123 - <rect x="56.0" y="284.9" width="56.8" height="1.1" class="bar-glazer"><title>glazer: 11.5 (decode)</title></rect>
124 - <text x="84.4" y="281.9" text-anchor="middle" font-size="8" class="muted">11.5</text>
120 + <text x="44.0" y="209.0" text-anchor="end" font-size="9" class="muted">600</text>
121 + <rect x="56.0" y="284.9" width="56.8" height="1.1" class="bar-glazer"><title>glazer: 8.6 (decode)</title></rect>
122 + <text x="84.4" y="281.9" text-anchor="middle" font-size="8" class="muted">8.6</text>
125 123 <text x="84.4" y="296.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 84.4,296.0)">glazer</text>
126 - <rect x="118.8" y="284.3" width="56.8" height="1.7" class="bar-1"><title>yaml_rustler: 16.9 (decode)</title></rect>
127 - <text x="147.2" y="281.3" text-anchor="middle" font-size="8" class="muted">16.9</text>
124 + <rect x="118.8" y="284.3" width="56.8" height="1.7" class="bar-1"><title>yaml_rustler: 12.4 (decode)</title></rect>
125 + <text x="147.2" y="281.3" text-anchor="middle" font-size="8" class="muted">12.4</text>
128 126 <text x="147.2" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 147.2,296.0)">yaml_rustler</text>
129 - <rect x="181.6" y="283.3" width="56.8" height="2.7" class="bar-2"><title>fast_yaml: 26.7 (decode)</title></rect>
130 - <text x="210.0" y="280.3" text-anchor="middle" font-size="8" class="muted">26.7</text>
127 + <rect x="181.6" y="283.6" width="56.8" height="2.4" class="bar-2"><title>fast_yaml: 18 (decode)</title></rect>
128 + <text x="210.0" y="280.6" text-anchor="middle" font-size="8" class="muted">18</text>
131 129 <text x="210.0" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 210.0,296.0)">fast_yaml</text>
132 - <rect x="244.4" y="218.4" width="56.8" height="67.6" class="bar-3"><title>yamerl: 676.1 (decode)</title></rect>
133 - <text x="272.8" y="215.4" text-anchor="middle" font-size="8" class="muted">676.1</text>
130 + <rect x="244.4" y="220.1" width="56.8" height="65.9" class="bar-3"><title>yamerl: 494.2 (decode)</title></rect>
131 + <text x="272.8" y="217.1" text-anchor="middle" font-size="8" class="muted">494.2</text>
134 132 <text x="272.8" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 272.8,296.0)">yamerl</text>
135 133 <text x="335.6" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
136 134 <text x="335.6" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 335.6,296.0)">ymlr</text>
  @@ -146,64 +144,64 @@
146 144 <text x="424.0" y="229.0" text-anchor="end" font-size="9" class="muted">6</text>
147 145 <line x1="430.0" y1="206.0" x2="750.0" y2="206.0" class="grid" stroke-width="1"/>
148 146 <text x="424.0" y="209.0" text-anchor="end" font-size="9" class="muted">8</text>
149 - <rect x="436.0" y="264.0" width="56.8" height="22.0" class="bar-glazer"><title>glazer: 2.2 (encode)</title></rect>
150 - <text x="464.4" y="261.0" text-anchor="middle" font-size="8" class="muted">2.2</text>
147 + <rect x="436.0" y="275.0" width="56.8" height="11.0" class="bar-glazer"><title>glazer: 1.1 (encode)</title></rect>
148 + <text x="464.4" y="272.0" text-anchor="middle" font-size="8" class="muted">1.1</text>
151 149 <text x="464.4" y="296.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 464.4,296.0)">glazer</text>
152 150 <text x="527.2" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
153 151 <text x="527.2" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 527.2,296.0)">yaml_rustler</text>
154 - <rect x="561.6" y="210.0" width="56.8" height="76.0" class="bar-2"><title>fast_yaml: 7.6 (encode)</title></rect>
155 - <text x="590.0" y="207.0" text-anchor="middle" font-size="8" class="muted">7.6</text>
152 + <rect x="561.6" y="206.0" width="56.8" height="80.0" class="bar-2"><title>fast_yaml: 8 (encode)</title></rect>
153 + <text x="590.0" y="203.0" text-anchor="middle" font-size="8" class="muted">8</text>
156 154 <text x="590.0" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 590.0,296.0)">fast_yaml</text>
157 155 <text x="652.8" y="282.0" text-anchor="middle" font-size="8" class="faint">N/A</text>
158 156 <text x="652.8" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 652.8,296.0)">yamerl</text>
159 - <rect x="687.2" y="227.0" width="56.8" height="59.0" class="bar-4"><title>ymlr: 5.9 (encode)</title></rect>
160 - <text x="715.6" y="224.0" text-anchor="middle" font-size="8" class="muted">5.9</text>
157 + <rect x="687.2" y="234.0" width="56.8" height="52.0" class="bar-4"><title>ymlr: 5.2 (encode)</title></rect>
158 + <text x="715.6" y="231.0" text-anchor="middle" font-size="8" class="muted">5.2</text>
161 159 <text x="715.6" y="296.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 715.6,296.0)">ymlr</text>
162 160 <line x1="430.0" y1="286.0" x2="750.0" y2="286.0" class="axis" stroke-width="1"/>
163 161 <text x="190.0" y="342.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">CSV decode — 1.3K</text>
164 162 <line x1="50.0" y1="424.0" x2="370.0" y2="424.0" class="grid" stroke-width="1"/>
165 163 <text x="44.0" y="427.0" text-anchor="end" font-size="9" class="muted">0</text>
166 - <line x1="50.0" y1="404.0" x2="370.0" y2="404.0" class="grid" stroke-width="1"/>
167 - <text x="44.0" y="407.0" text-anchor="end" font-size="9" class="muted">200</text>
168 - <line x1="50.0" y1="384.0" x2="370.0" y2="384.0" class="grid" stroke-width="1"/>
169 - <text x="44.0" y="387.0" text-anchor="end" font-size="9" class="muted">400</text>
170 - <line x1="50.0" y1="364.0" x2="370.0" y2="364.0" class="grid" stroke-width="1"/>
171 - <text x="44.0" y="367.0" text-anchor="end" font-size="9" class="muted">600</text>
164 + <line x1="50.0" y1="397.3" x2="370.0" y2="397.3" class="grid" stroke-width="1"/>
165 + <text x="44.0" y="400.3" text-anchor="end" font-size="9" class="muted">200</text>
166 + <line x1="50.0" y1="370.7" x2="370.0" y2="370.7" class="grid" stroke-width="1"/>
167 + <text x="44.0" y="373.7" text-anchor="end" font-size="9" class="muted">400</text>
172 168 <line x1="50.0" y1="344.0" x2="370.0" y2="344.0" class="grid" stroke-width="1"/>
173 - <text x="44.0" y="347.0" text-anchor="end" font-size="9" class="muted">800</text>
174 - <rect x="56.0" y="422.9" width="72.5" height="1.1" class="bar-glazer"><title>glazer: 10.7 (decode)</title></rect>
175 - <text x="92.2" y="419.9" text-anchor="middle" font-size="8" class="muted">10.7</text>
169 + <text x="44.0" y="347.0" text-anchor="end" font-size="9" class="muted">600</text>
170 + <rect x="56.0" y="422.6" width="72.5" height="1.4" class="bar-glazer"><title>glazer: 10.6 (decode)</title></rect>
171 + <text x="92.2" y="419.6" text-anchor="middle" font-size="8" class="muted">10.6</text>
176 172 <text x="92.2" y="434.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 92.2,434.0)">glazer</text>
177 - <rect x="134.5" y="419.5" width="72.5" height="4.5" class="bar-1"><title>nimble_csv: 44.8 (decode)</title></rect>
178 - <text x="170.8" y="416.5" text-anchor="middle" font-size="8" class="muted">44.8</text>
173 + <rect x="134.5" y="417.9" width="72.5" height="6.1" class="bar-1"><title>nimble_csv: 45.9 (decode)</title></rect>
174 + <text x="170.8" y="414.9" text-anchor="middle" font-size="8" class="muted">45.9</text>
179 175 <text x="170.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 170.8,434.0)">nimble_csv</text>
180 - <rect x="213.0" y="414.1" width="72.5" height="9.9" class="bar-2"><title>csv: 99.3 (decode)</title></rect>
181 - <text x="249.2" y="411.1" text-anchor="middle" font-size="8" class="muted">99.3</text>
176 + <rect x="213.0" y="414.2" width="72.5" height="9.8" class="bar-2"><title>csv: 73.8 (decode)</title></rect>
177 + <text x="249.2" y="411.2" text-anchor="middle" font-size="8" class="muted">73.8</text>
182 178 <text x="249.2" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 249.2,434.0)">csv</text>
183 - <rect x="291.5" y="353.4" width="72.5" height="70.6" class="bar-3"><title>erl_csv: 705.5 (decode)</title></rect>
184 - <text x="327.8" y="350.4" text-anchor="middle" font-size="8" class="muted">705.5</text>
179 + <rect x="291.5" y="369.8" width="72.5" height="54.2" class="bar-3"><title>erl_csv: 406.6 (decode)</title></rect>
180 + <text x="327.8" y="366.8" text-anchor="middle" font-size="8" class="muted">406.6</text>
185 181 <text x="327.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 327.8,434.0)">erl_csv</text>
186 182 <line x1="50.0" y1="424.0" x2="370.0" y2="424.0" class="axis" stroke-width="1"/>
187 183 <text x="570.0" y="342.0" text-anchor="middle" font-size="13" font-weight="bold" class="fg">CSV encode — 1.3K</text>
188 184 <line x1="430.0" y1="424.0" x2="750.0" y2="424.0" class="grid" stroke-width="1"/>
189 185 <text x="424.0" y="427.0" text-anchor="end" font-size="9" class="muted">0</text>
190 - <line x1="430.0" y1="397.3" x2="750.0" y2="397.3" class="grid" stroke-width="1"/>
191 - <text x="424.0" y="400.3" text-anchor="end" font-size="9" class="muted">200</text>
192 - <line x1="430.0" y1="370.7" x2="750.0" y2="370.7" class="grid" stroke-width="1"/>
193 - <text x="424.0" y="373.7" text-anchor="end" font-size="9" class="muted">400</text>
186 + <line x1="430.0" y1="404.0" x2="750.0" y2="404.0" class="grid" stroke-width="1"/>
187 + <text x="424.0" y="407.0" text-anchor="end" font-size="9" class="muted">100</text>
188 + <line x1="430.0" y1="384.0" x2="750.0" y2="384.0" class="grid" stroke-width="1"/>
189 + <text x="424.0" y="387.0" text-anchor="end" font-size="9" class="muted">200</text>
190 + <line x1="430.0" y1="364.0" x2="750.0" y2="364.0" class="grid" stroke-width="1"/>
191 + <text x="424.0" y="367.0" text-anchor="end" font-size="9" class="muted">300</text>
194 192 <line x1="430.0" y1="344.0" x2="750.0" y2="344.0" class="grid" stroke-width="1"/>
195 - <text x="424.0" y="347.0" text-anchor="end" font-size="9" class="muted">600</text>
196 - <rect x="436.0" y="423.6" width="72.5" height="0.4" class="bar-glazer"><title>glazer: 3.3 (encode)</title></rect>
197 - <text x="472.2" y="420.6" text-anchor="middle" font-size="8" class="muted">3.3</text>
193 + <text x="424.0" y="347.0" text-anchor="end" font-size="9" class="muted">400</text>
194 + <rect x="436.0" y="423.2" width="72.5" height="0.8" class="bar-glazer"><title>glazer: 3.9 (encode)</title></rect>
195 + <text x="472.2" y="420.2" text-anchor="middle" font-size="8" class="muted">3.9</text>
198 196 <text x="472.2" y="434.0" text-anchor="end" font-size="9" class="fg" font-weight="bold" transform="rotate(-35 472.2,434.0)">glazer</text>
199 - <rect x="514.5" y="418.8" width="72.5" height="5.2" class="bar-1"><title>nimble_csv: 38.8 (encode)</title></rect>
200 - <text x="550.8" y="415.8" text-anchor="middle" font-size="8" class="muted">38.8</text>
197 + <rect x="514.5" y="418.5" width="72.5" height="5.5" class="bar-1"><title>nimble_csv: 27.4 (encode)</title></rect>
198 + <text x="550.8" y="415.5" text-anchor="middle" font-size="8" class="muted">27.4</text>
201 199 <text x="550.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 550.8,434.0)">nimble_csv</text>
202 - <rect x="593.0" y="389.7" width="72.5" height="34.3" class="bar-2"><title>csv: 257.3 (encode)</title></rect>
203 - <text x="629.2" y="386.7" text-anchor="middle" font-size="8" class="muted">257.3</text>
200 + <rect x="593.0" y="381.2" width="72.5" height="42.8" class="bar-2"><title>csv: 214.2 (encode)</title></rect>
201 + <text x="629.2" y="378.2" text-anchor="middle" font-size="8" class="muted">214.2</text>
204 202 <text x="629.2" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 629.2,434.0)">csv</text>
205 - <rect x="671.5" y="367.0" width="72.5" height="57.0" class="bar-3"><title>erl_csv: 427.4 (encode)</title></rect>
206 - <text x="707.8" y="364.0" text-anchor="middle" font-size="8" class="muted">427.4</text>
203 + <rect x="671.5" y="357.3" width="72.5" height="66.7" class="bar-3"><title>erl_csv: 333.5 (encode)</title></rect>
204 + <text x="707.8" y="354.3" text-anchor="middle" font-size="8" class="muted">333.5</text>
207 205 <text x="707.8" y="434.0" text-anchor="end" font-size="9" class="fg" transform="rotate(-35 707.8,434.0)">erl_csv</text>
208 206 <line x1="430.0" y1="424.0" x2="750.0" y2="424.0" class="axis" stroke-width="1"/>
209 207 </svg>
\ No newline at end of file
Loading more files…