aboutsummaryrefslogtreecommitdiff
path: root/src/string_mutable.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-04-05 23:54:56 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-04-05 23:54:56 -0700
commit84a9fac3158c0b90151c4a154c94d89ac90aa11c (patch)
tree9d15da62937655319363e344edbcf6a1e181052d /src/string_mutable.zig
parent569d4940bb68cb47fa546b5505f5a326073d6c5c (diff)
downloadbun-jarred/simdjson.tar.gz
bun-jarred/simdjson.tar.zst
bun-jarred/simdjson.zip
experiment: add a direct SIMDJSON utf8 versionjarred/simdjson
benchmark time (avg) (min … max) p75 p99 p995 ------------------------------------------------------------------------------ ----------------------------- • small object ------------------------------------------------------------------------------ ----------------------------- JSON.parse 656.38 ns/iter (621.56 ns … 788.83 ns) 665.85 ns 788.83 ns 788.83 ns JSON.parse (SIMDJSON on-demand buffer) 743.61 ns/iter (720.6 ns … 833.83 ns) 745.12 ns 833.83 ns 833.83 ns summary for small object JSON.parse 1.13x faster than JSON.parse (SIMDJSON on-demand buffer) • Array(4096) of true ------------------------------------------------------------------------------ ----------------------------- JSON.parse 45.42 µs/iter (42.79 µs … 1.91 ms) 44.79 µs 52.71 µs 56.54 µs JSON.parse (SIMDJSON on-demand buffer) 38.65 µs/iter (35.33 µs … 1.44 ms) 38.58 µs 45.38 µs 50.17 µs summary for Array(4096) of true JSON.parse (SIMDJSON on-demand buffer) 1.18x faster than JSON.parse • Array(4096) of 1234.567 ------------------------------------------------------------------------------ ----------------------------- JSON.parse 100.79 µs/iter (96.42 µs … 962.79 µs) 100.08 µs 111.5 µs 115.38 µs JSON.parse (SIMDJSON on-demand buffer) 62.12 µs/iter (58.13 µs … 751.96 µs) 62.75 µs 71.21 µs 75.96 µs summary for Array(4096) of 1234.567 JSON.parse (SIMDJSON on-demand buffer) 1.62x faster than JSON.parse • Array(4096) of 'hello' ------------------------------------------------------------------------------ ----------------------------- JSON.parse 142.44 µs/iter (132.75 µs … 1.38 ms) 141.33 µs 159.42 µs 169.54 µs JSON.parse (SIMDJSON on-demand buffer) 196.67 µs/iter (130.54 µs … 1.9 ms) 203.5 µs 234.5 µs 407.46 µs summary for Array(4096) of 'hello' JSON.parse 1.38x faster than JSON.parse (SIMDJSON on-demand buffer) • Array(4096) of 'hello'.repeat(1024) ------------------------------------------------------------------------------ ----------------------------- JSON.parse 9.8 ms/iter (9.07 ms … 11.26 ms) 10.19 ms 11.26 ms 11.26 ms JSON.parse (SIMDJSON on-demand buffer) 6.39 ms/iter (5.9 ms … 9 ms) 6.74 ms 9 ms 9 ms summary for Array(4096) of 'hello'.repeat(1024) JSON.parse (SIMDJSON on-demand buffer) 1.53x faster than JSON.parse • Array(4096) of {a: 123, b: 456} ------------------------------------------------------------------------------ ----------------------------- JSON.parse 310.68 µs/iter (297.96 µs … 1.14 ms) 308.25 µs 386.33 µs 752.25 µs JSON.parse (SIMDJSON on-demand buffer) 413.16 µs/iter (398.67 µs … 1.13 ms) 411.88 µs 474.38 µs 717.29 µs summary for Array(4096) of {a: 123, b: 456} JSON.parse 1.33x faster than JSON.parse (SIMDJSON on-demand buffer) Benchmark: ```js import { bench, group, run } from "mitata"; function load(obj) { const asStr = JSON.stringify(obj); const buffer = Buffer.from(asStr); bench("JSON.parse", () => { return JSON.parse(asStr); }); bench("JSON.parse (SIMDJSON on-demand buffer)", () => { return buffer.json(); }); } group("small object", () => { var obj = { a: 1, b: 2, c: null, false: false, true: true, null: null, foo: "bar", arr: [1, 2, 3], h: { a: 1, }, i: { a: 1, }, j: {}, // 100 more keys k: {}, }; load(obj); }); group("Array(4096) of true", () => { var obj = Array(4096); obj.length = 4096; obj.fill(true); load(obj); }); group("Array(4096) of 1234.567", () => { var obj = Array(4096); obj.length = 4096; obj.fill(1234.567); load(obj); }); group("Array(4096) of 'hello'", () => { var obj = Array(4096); obj.length = 4096; obj.fill("hello"); load(obj); }); group("Array(4096) of 'hello'.repeat(1024)", () => { var obj = Array(4096); obj.length = 4096; obj.fill("hello".repeat(1024)); load(obj); }); group("Array(4096) of {a: 123, b: 456}", () => { var obj = Array(4096); obj.length = 4096; obj.fill({ a: 123, b: 456 }); load(obj); }); run(); ```
Diffstat (limited to 'src/string_mutable.zig')
0 files changed, 0 insertions, 0 deletions