Skip to content

Commit

Permalink
Update wasmtime (#598)
Browse files Browse the repository at this point in the history
  • Loading branch information
coolreader18 authored Nov 30, 2023
1 parent 7a69495 commit 5c8ef4f
Show file tree
Hide file tree
Showing 4 changed files with 87 additions and 99 deletions.
140 changes: 58 additions & 82 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ uuid = { version = "1.2.1", features = ["v4"] }
walkdir = "2.2.5"
wasmbin = "0.6"

wasmtime = { version = "14", default-features = false, features = ["cranelift"] }
wasmtime = { version = "15", default-features = false, features = ["cranelift", "demangle", "addr2line", "cache"] }

# We use the "ondemand" feature to allow connecting after the start,
# and reconnecting, from the tracy client to the database.
Expand Down
Loading

1 comment on commit 5c8ef4f

@github-actions
Copy link

@github-actions github-actions bot commented on 5c8ef4f Nov 30, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark results

Benchmark Report

Legend:

  • load: number of rows pre-loaded into the database
  • count: number of rows touched by the transaction
  • index types:
    • unique: a single index on the id column
    • non_unique: no indexes
    • multi_index: non-unique index on every column
  • schemas:
    • person(id: u32, name: String, age: u64)
    • location(id: u32, x: u64, y: u64)

All throughputs are single-threaded.

Empty transaction

db on disk new latency old latency new throughput old throughput
sqlite 💿 434.7±1.97ns 428.8±1.07ns - -
sqlite 🧠 431.9±0.86ns 423.0±2.30ns - -
stdb_module 💿 17.4±0.96µs 18.6±1.52µs - -
stdb_module 🧠 18.7±1.26µs 17.7±0.83µs - -
stdb_raw 💿 915.4±5.91ns 907.1±1.69ns - -
stdb_raw 🧠 881.2±1.44ns 861.6±1.09ns - -

Single-row insertions

db on disk schema index type load new latency old latency new throughput old throughput
sqlite 💿 location multi_index 0 14.5±0.03µs 14.8±1.86µs 67.3 Ktx/sec 66.0 Ktx/sec
sqlite 💿 location multi_index 1000 15.8±0.09µs 15.5±0.14µs 61.7 Ktx/sec 62.9 Ktx/sec
sqlite 💿 location non_unique 0 7.2±0.39µs 7.2±1.05µs 136.0 Ktx/sec 136.1 Ktx/sec
sqlite 💿 location non_unique 1000 7.1±0.06µs 6.9±0.03µs 138.3 Ktx/sec 141.6 Ktx/sec
sqlite 💿 location unique 0 7.1±0.05µs 7.0±0.03µs 137.4 Ktx/sec 139.3 Ktx/sec
sqlite 💿 location unique 1000 7.1±0.04µs 7.0±0.04µs 137.4 Ktx/sec 139.9 Ktx/sec
sqlite 💿 person multi_index 0 14.4±0.04µs 14.2±0.05µs 67.6 Ktx/sec 68.9 Ktx/sec
sqlite 💿 person multi_index 1000 16.2±0.10µs 15.9±0.20µs 60.4 Ktx/sec 61.6 Ktx/sec
sqlite 💿 person non_unique 0 7.3±0.03µs 7.2±0.57µs 133.7 Ktx/sec 135.6 Ktx/sec
sqlite 💿 person non_unique 1000 7.3±0.09µs 7.1±0.04µs 133.8 Ktx/sec 137.2 Ktx/sec
sqlite 💿 person unique 0 7.2±0.03µs 7.1±0.04µs 134.8 Ktx/sec 136.8 Ktx/sec
sqlite 💿 person unique 1000 7.3±0.06µs 7.1±0.07µs 133.9 Ktx/sec 137.1 Ktx/sec
sqlite 🧠 location multi_index 0 4.3±0.01µs 4.1±0.01µs 225.7 Ktx/sec 237.9 Ktx/sec
sqlite 🧠 location multi_index 1000 5.5±0.02µs 5.2±0.05µs 176.3 Ktx/sec 187.2 Ktx/sec
sqlite 🧠 location non_unique 0 1948.3±5.57ns 1860.2±8.65ns 501.2 Ktx/sec 525.0 Ktx/sec
sqlite 🧠 location non_unique 1000 1983.0±24.88ns 1893.1±17.24ns 492.5 Ktx/sec 515.9 Ktx/sec
sqlite 🧠 location unique 0 1929.4±6.89ns 1834.8±5.60ns 506.2 Ktx/sec 532.2 Ktx/sec
sqlite 🧠 location unique 1000 2.0±0.02µs 1968.1±16.37ns 477.7 Ktx/sec 496.2 Ktx/sec
sqlite 🧠 person multi_index 0 3.9±0.01µs 3.7±0.01µs 247.9 Ktx/sec 265.1 Ktx/sec
sqlite 🧠 person multi_index 1000 5.6±0.04µs 5.5±0.03µs 174.7 Ktx/sec 178.1 Ktx/sec
sqlite 🧠 person non_unique 0 2.0±0.01µs 1945.7±4.89ns 484.7 Ktx/sec 501.9 Ktx/sec
sqlite 🧠 person non_unique 1000 2.1±0.01µs 1983.3±14.99ns 469.1 Ktx/sec 492.4 Ktx/sec
sqlite 🧠 person unique 0 1993.6±33.34ns 1918.6±6.51ns 489.8 Ktx/sec 509.0 Ktx/sec
sqlite 🧠 person unique 1000 2.1±0.01µs 2.0±0.01µs 461.0 Ktx/sec 483.6 Ktx/sec
stdb_module 💿 location multi_index 0 50.7±5.02µs 51.4±6.75µs 19.3 Ktx/sec 19.0 Ktx/sec
stdb_module 💿 location multi_index 1000 144.9±1.68µs 257.0±65.46µs 6.7 Ktx/sec 3.8 Ktx/sec
stdb_module 💿 location non_unique 0 40.9±5.11µs 44.7±4.60µs 23.9 Ktx/sec 21.8 Ktx/sec
stdb_module 💿 location non_unique 1000 297.9±16.85µs 123.8±8.72µs 3.3 Ktx/sec 7.9 Ktx/sec
stdb_module 💿 location unique 0 48.7±7.10µs 45.9±4.57µs 20.1 Ktx/sec 21.3 Ktx/sec
stdb_module 💿 location unique 1000 137.4±18.97µs 299.1±8.94µs 7.1 Ktx/sec 3.3 Ktx/sec
stdb_module 💿 person multi_index 0 68.5±5.43µs 67.8±3.55µs 14.3 Ktx/sec 14.4 Ktx/sec
stdb_module 💿 person multi_index 1000 346.8±16.90µs 164.8±23.09µs 2.8 Ktx/sec 5.9 Ktx/sec
stdb_module 💿 person non_unique 0 49.4±4.84µs 48.4±4.20µs 19.8 Ktx/sec 20.2 Ktx/sec
stdb_module 💿 person non_unique 1000 194.2±50.22µs 144.3±19.17µs 5.0 Ktx/sec 6.8 Ktx/sec
stdb_module 💿 person unique 0 58.6±4.43µs 58.9±4.10µs 16.7 Ktx/sec 16.6 Ktx/sec
stdb_module 💿 person unique 1000 166.4±4.42µs 230.0±107.23µs 5.9 Ktx/sec 4.2 Ktx/sec
stdb_module 🧠 location multi_index 0 37.7±4.58µs 38.2±4.16µs 25.9 Ktx/sec 25.6 Ktx/sec
stdb_module 🧠 location multi_index 1000 206.2±9.89µs 128.8±15.79µs 4.7 Ktx/sec 7.6 Ktx/sec
stdb_module 🧠 location non_unique 0 31.4±2.46µs 29.7±2.33µs 31.1 Ktx/sec 32.9 Ktx/sec
stdb_module 🧠 location non_unique 1000 163.0±9.69µs 140.0±16.77µs 6.0 Ktx/sec 7.0 Ktx/sec
stdb_module 🧠 location unique 0 35.0±2.90µs 34.3±2.46µs 27.9 Ktx/sec 28.5 Ktx/sec
stdb_module 🧠 location unique 1000 191.8±9.69µs 211.9±23.07µs 5.1 Ktx/sec 4.6 Ktx/sec
stdb_module 🧠 person multi_index 0 50.3±5.75µs 43.6±5.09µs 19.4 Ktx/sec 22.4 Ktx/sec
stdb_module 🧠 person multi_index 1000 120.0±69.41µs 263.8±32.68µs 8.1 Ktx/sec 3.7 Ktx/sec
stdb_module 🧠 person non_unique 0 34.5±2.64µs 32.3±2.29µs 28.3 Ktx/sec 30.2 Ktx/sec
stdb_module 🧠 person non_unique 1000 252.1±31.13µs 145.0±18.81µs 3.9 Ktx/sec 6.7 Ktx/sec
stdb_module 🧠 person unique 0 38.7±3.44µs 37.6±3.35µs 25.2 Ktx/sec 26.0 Ktx/sec
stdb_module 🧠 person unique 1000 118.4±10.54µs 138.4±19.82µs 8.3 Ktx/sec 7.1 Ktx/sec
stdb_raw 💿 location multi_index 0 6.9±0.27µs 6.9±0.36µs 141.9 Ktx/sec 140.9 Ktx/sec
stdb_raw 💿 location multi_index 1000 34.5±251.77µs 33.9±244.04µs 28.3 Ktx/sec 28.8 Ktx/sec
stdb_raw 💿 location non_unique 0 4.5±0.01µs 4.6±0.01µs 218.0 Ktx/sec 213.0 Ktx/sec
stdb_raw 💿 location non_unique 1000 42.2±362.85µs 5.9±0.12µs 23.2 Ktx/sec 164.5 Ktx/sec
stdb_raw 💿 location unique 0 5.9±0.34µs 5.9±0.39µs 166.8 Ktx/sec 166.1 Ktx/sec
stdb_raw 💿 location unique 1000 25.9±177.76µs 28.1±200.04µs 37.7 Ktx/sec 34.7 Ktx/sec
stdb_raw 💿 person multi_index 0 11.3±0.03µs 11.2±0.02µs 86.6 Ktx/sec 87.5 Ktx/sec
stdb_raw 💿 person multi_index 1000 14.4±0.16µs 14.6±0.32µs 67.9 Ktx/sec 67.0 Ktx/sec
stdb_raw 💿 person non_unique 0 5.6±0.03µs 5.7±0.04µs 173.9 Ktx/sec 172.5 Ktx/sec
stdb_raw 💿 person non_unique 1000 7.2±0.09µs 7.4±0.16µs 135.9 Ktx/sec 131.7 Ktx/sec
stdb_raw 💿 person unique 0 8.1±0.02µs 8.1±0.04µs 120.1 Ktx/sec 121.0 Ktx/sec
stdb_raw 💿 person unique 1000 10.8±0.13µs 10.7±0.14µs 90.4 Ktx/sec 91.4 Ktx/sec
stdb_raw 🧠 location multi_index 0 4.3±0.01µs 4.4±0.01µs 224.9 Ktx/sec 224.2 Ktx/sec
stdb_raw 🧠 location multi_index 1000 6.0±0.04µs 6.0±0.04µs 163.8 Ktx/sec 164.0 Ktx/sec
stdb_raw 🧠 location non_unique 0 2.1±0.01µs 2.1±0.00µs 463.4 Ktx/sec 462.4 Ktx/sec
stdb_raw 🧠 location non_unique 1000 2.6±0.02µs 2.6±0.01µs 374.7 Ktx/sec 370.4 Ktx/sec
stdb_raw 🧠 location unique 0 3.4±0.01µs 3.4±0.01µs 288.4 Ktx/sec 290.7 Ktx/sec
stdb_raw 🧠 location unique 1000 4.6±0.03µs 4.6±0.04µs 212.6 Ktx/sec 214.3 Ktx/sec
stdb_raw 🧠 person multi_index 0 8.2±0.01µs 8.1±0.02µs 119.5 Ktx/sec 121.1 Ktx/sec
stdb_raw 🧠 person multi_index 1000 10.5±0.12µs 10.3±0.15µs 93.2 Ktx/sec 94.8 Ktx/sec
stdb_raw 🧠 person non_unique 0 2.6±0.01µs 2.7±0.00µs 368.7 Ktx/sec 366.9 Ktx/sec
stdb_raw 🧠 person non_unique 1000 3.4±0.02µs 3.4±0.02µs 290.8 Ktx/sec 285.0 Ktx/sec
stdb_raw 🧠 person unique 0 5.0±0.01µs 5.0±0.01µs 193.7 Ktx/sec 197.2 Ktx/sec
stdb_raw 🧠 person unique 1000 6.5±0.04µs 6.3±0.05µs 149.2 Ktx/sec 154.3 Ktx/sec

Multi-row insertions

db on disk schema index type load count new latency old latency new throughput old throughput
sqlite 💿 location multi_index 0 100 136.9±5.91µs 131.8±4.19µs 7.1 Ktx/sec 7.4 Ktx/sec
sqlite 💿 location multi_index 1000 100 208.0±1.37µs 202.9±1.98µs 4.7 Ktx/sec 4.8 Ktx/sec
sqlite 💿 location non_unique 0 100 51.7±1.71µs 49.5±1.43µs 18.9 Ktx/sec 19.7 Ktx/sec
sqlite 💿 location non_unique 1000 100 54.3±0.56µs 51.6±0.26µs 18.0 Ktx/sec 18.9 Ktx/sec
sqlite 💿 location unique 0 100 51.9±0.28µs 52.8±1.33µs 18.8 Ktx/sec 18.5 Ktx/sec
sqlite 💿 location unique 1000 100 58.0±0.30µs 57.2±0.29µs 16.8 Ktx/sec 17.1 Ktx/sec
sqlite 💿 person multi_index 0 100 117.6±4.56µs 120.6±4.12µs 8.3 Ktx/sec 8.1 Ktx/sec
sqlite 💿 person multi_index 1000 100 228.2±0.64µs 232.6±1.98µs 4.3 Ktx/sec 4.2 Ktx/sec
sqlite 💿 person non_unique 0 100 48.1±1.01µs 49.8±0.41µs 20.3 Ktx/sec 19.6 Ktx/sec
sqlite 💿 person non_unique 1000 100 59.5±0.41µs 61.1±0.32µs 16.4 Ktx/sec 16.0 Ktx/sec
sqlite 💿 person unique 0 100 50.1±1.00µs 52.0±0.22µs 19.5 Ktx/sec 18.8 Ktx/sec
sqlite 💿 person unique 1000 100 55.3±0.36µs 56.3±0.20µs 17.7 Ktx/sec 17.3 Ktx/sec
sqlite 🧠 location multi_index 0 100 124.8±0.68µs 119.3±0.44µs 7.8 Ktx/sec 8.2 Ktx/sec
sqlite 🧠 location multi_index 1000 100 177.0±0.41µs 170.4±0.39µs 5.5 Ktx/sec 5.7 Ktx/sec
sqlite 🧠 location non_unique 0 100 44.3±0.53µs 44.2±0.66µs 22.1 Ktx/sec 22.1 Ktx/sec
sqlite 🧠 location non_unique 1000 100 45.4±0.24µs 44.1±0.34µs 21.5 Ktx/sec 22.2 Ktx/sec
sqlite 🧠 location unique 0 100 46.5±0.30µs 45.3±0.45µs 21.0 Ktx/sec 21.5 Ktx/sec
sqlite 🧠 location unique 1000 100 49.9±0.47µs 48.7±0.31µs 19.6 Ktx/sec 20.1 Ktx/sec
sqlite 🧠 person multi_index 0 100 105.4±0.67µs 108.7±0.27µs 9.3 Ktx/sec 9.0 Ktx/sec
sqlite 🧠 person multi_index 1000 100 190.3±0.37µs 190.9±0.53µs 5.1 Ktx/sec 5.1 Ktx/sec
sqlite 🧠 person non_unique 0 100 41.9±0.38µs 42.7±0.67µs 23.3 Ktx/sec 22.9 Ktx/sec
sqlite 🧠 person non_unique 1000 100 45.1±0.32µs 46.8±0.26µs 21.7 Ktx/sec 20.9 Ktx/sec
sqlite 🧠 person unique 0 100 43.6±0.31µs 44.3±0.65µs 22.4 Ktx/sec 22.0 Ktx/sec
sqlite 🧠 person unique 1000 100 47.7±0.41µs 49.1±0.43µs 20.5 Ktx/sec 19.9 Ktx/sec
stdb_module 💿 location multi_index 0 100 887.7±26.64µs 867.2±35.37µs 1126 tx/sec 1153 tx/sec
stdb_module 💿 location multi_index 1000 100 843.7±79.67µs 907.2±4.37µs 1185 tx/sec 1102 tx/sec
stdb_module 💿 location non_unique 0 100 458.5±10.68µs 451.5±9.95µs 2.1 Ktx/sec 2.2 Ktx/sec
stdb_module 💿 location non_unique 1000 100 661.7±9.11µs 662.1±10.92µs 1511 tx/sec 1510 tx/sec
stdb_module 💿 location unique 0 100 596.3±1.48µs 592.5±98.75µs 1677 tx/sec 1687 tx/sec
stdb_module 💿 location unique 1000 100 695.9±4.45µs 822.3±73.63µs 1437 tx/sec 1216 tx/sec
stdb_module 💿 person multi_index 0 100 1092.3±176.71µs 1092.2±1.87µs 915 tx/sec 915 tx/sec
stdb_module 💿 person multi_index 1000 100 1152.4±6.01µs 1157.7±51.73µs 867 tx/sec 863 tx/sec
stdb_module 💿 person non_unique 0 100 757.4±16.96µs 750.1±7.89µs 1320 tx/sec 1333 tx/sec
stdb_module 💿 person non_unique 1000 100 655.5±104.22µs 773.5±7.98µs 1525 tx/sec 1292 tx/sec
stdb_module 💿 person unique 0 100 763.1±45.88µs 750.0±22.17µs 1310 tx/sec 1333 tx/sec
stdb_module 💿 person unique 1000 100 968.1±59.33µs 801.8±73.17µs 1032 tx/sec 1247 tx/sec
stdb_module 🧠 location multi_index 0 100 780.3±36.36µs 785.6±13.13µs 1281 tx/sec 1272 tx/sec
stdb_module 🧠 location multi_index 1000 100 811.9±39.29µs 632.0±63.09µs 1231 tx/sec 1582 tx/sec
stdb_module 🧠 location non_unique 0 100 371.6±26.22µs 309.6±1.04µs 2.6 Ktx/sec 3.2 Ktx/sec
stdb_module 🧠 location non_unique 1000 100 395.0±6.41µs 343.0±32.59µs 2.5 Ktx/sec 2.8 Ktx/sec
stdb_module 🧠 location unique 0 100 388.7±85.08µs 564.0±46.39µs 2.5 Ktx/sec 1772 tx/sec
stdb_module 🧠 location unique 1000 100 568.2±46.24µs 410.0±7.71µs 1760 tx/sec 2.4 Ktx/sec
stdb_module 🧠 person multi_index 0 100 922.4±3.01µs 931.8±13.97µs 1084 tx/sec 1073 tx/sec
stdb_module 🧠 person multi_index 1000 100 951.7±2.96µs 887.3±22.11µs 1050 tx/sec 1127 tx/sec
stdb_module 🧠 person non_unique 0 100 296.3±27.86µs 341.0±51.63µs 3.3 Ktx/sec 2.9 Ktx/sec
stdb_module 🧠 person non_unique 1000 100 329.6±8.78µs 336.8±12.16µs 3.0 Ktx/sec 2.9 Ktx/sec
stdb_module 🧠 person unique 0 100 581.2±10.66µs 592.1±22.58µs 1720 tx/sec 1688 tx/sec
stdb_module 🧠 person unique 1000 100 777.2±22.40µs 582.2±49.86µs 1286 tx/sec 1717 tx/sec
stdb_raw 💿 location multi_index 0 100 343.3±8.19µs 343.4±0.65µs 2.8 Ktx/sec 2.8 Ktx/sec
stdb_raw 💿 location multi_index 1000 100 369.1±1.49µs 396.6±275.68µs 2.6 Ktx/sec 2.5 Ktx/sec
stdb_raw 💿 location non_unique 0 100 118.7±0.33µs 120.7±6.46µs 8.2 Ktx/sec 8.1 Ktx/sec
stdb_raw 💿 location non_unique 1000 100 131.7±113.28µs 122.3±0.94µs 7.4 Ktx/sec 8.0 Ktx/sec
stdb_raw 💿 location unique 0 100 241.5±3.73µs 242.2±0.30µs 4.0 Ktx/sec 4.0 Ktx/sec
stdb_raw 💿 location unique 1000 100 258.6±1.67µs 276.4±164.91µs 3.8 Ktx/sec 3.5 Ktx/sec
stdb_raw 💿 person multi_index 0 100 714.9±2.96µs 717.5±24.41µs 1398 tx/sec 1393 tx/sec
stdb_raw 💿 person multi_index 1000 100 745.2±2.12µs 744.3±1.36µs 1341 tx/sec 1343 tx/sec
stdb_raw 💿 person non_unique 0 100 218.1±0.32µs 220.7±0.23µs 4.5 Ktx/sec 4.4 Ktx/sec
stdb_raw 💿 person non_unique 1000 100 221.0±0.31µs 223.9±0.42µs 4.4 Ktx/sec 4.4 Ktx/sec
stdb_raw 💿 person unique 0 100 430.0±0.39µs 430.0±0.52µs 2.3 Ktx/sec 2.3 Ktx/sec
stdb_raw 💿 person unique 1000 100 474.5±273.75µs 473.5±267.86µs 2.1 Ktx/sec 2.1 Ktx/sec
stdb_raw 🧠 location multi_index 0 100 297.6±0.82µs 300.2±0.73µs 3.3 Ktx/sec 3.3 Ktx/sec
stdb_raw 🧠 location multi_index 1000 100 322.9±0.82µs 325.9±0.59µs 3.0 Ktx/sec 3.0 Ktx/sec
stdb_raw 🧠 location non_unique 0 100 75.1±0.14µs 76.9±0.25µs 13.0 Ktx/sec 12.7 Ktx/sec
stdb_raw 🧠 location non_unique 1000 100 76.2±0.57µs 77.8±0.16µs 12.8 Ktx/sec 12.5 Ktx/sec
stdb_raw 🧠 location unique 0 100 196.5±0.19µs 198.9±0.23µs 5.0 Ktx/sec 4.9 Ktx/sec
stdb_raw 🧠 location unique 1000 100 214.6±0.35µs 216.5±0.29µs 4.6 Ktx/sec 4.5 Ktx/sec
stdb_raw 🧠 person multi_index 0 100 625.2±0.58µs 620.0±0.76µs 1599 tx/sec 1612 tx/sec
stdb_raw 🧠 person multi_index 1000 100 653.1±1.05µs 648.6±0.67µs 1531 tx/sec 1541 tx/sec
stdb_raw 🧠 person non_unique 0 100 127.0±0.15µs 128.3±0.11µs 7.7 Ktx/sec 7.6 Ktx/sec
stdb_raw 🧠 person non_unique 1000 100 129.5±0.28µs 130.9±0.14µs 7.5 Ktx/sec 7.5 Ktx/sec
stdb_raw 🧠 person unique 0 100 338.0±0.32µs 337.0±0.22µs 2.9 Ktx/sec 2.9 Ktx/sec
stdb_raw 🧠 person unique 1000 100 355.6±0.39µs 354.5±0.39µs 2.7 Ktx/sec 2.8 Ktx/sec

Full table iterate

db on disk schema index type new latency old latency new throughput old throughput
sqlite 💿 location unique 8.9±0.08µs 8.8±0.12µs 109.5 Ktx/sec 111.5 Ktx/sec
sqlite 💿 person unique 9.3±0.11µs 9.3±0.10µs 104.5 Ktx/sec 105.6 Ktx/sec
sqlite 🧠 location unique 7.7±0.09µs 7.6±0.11µs 127.3 Ktx/sec 128.2 Ktx/sec
sqlite 🧠 person unique 8.1±0.14µs 8.0±0.09µs 120.0 Ktx/sec 121.3 Ktx/sec
stdb_module 💿 location unique 49.2±5.00µs 50.1±4.93µs 19.8 Ktx/sec 19.5 Ktx/sec
stdb_module 💿 person unique 60.2±7.09µs 62.9±5.47µs 16.2 Ktx/sec 15.5 Ktx/sec
stdb_module 🧠 location unique 48.4±2.92µs 49.9±5.03µs 20.2 Ktx/sec 19.6 Ktx/sec
stdb_module 🧠 person unique 56.2±8.48µs 62.9±5.75µs 17.4 Ktx/sec 15.5 Ktx/sec
stdb_raw 💿 location unique 9.2±0.01µs 10.3±0.21µs 106.3 Ktx/sec 94.5 Ktx/sec
stdb_raw 💿 person unique 9.2±0.03µs 10.3±0.12µs 106.2 Ktx/sec 95.1 Ktx/sec
stdb_raw 🧠 location unique 9.1±0.00µs 10.2±0.19µs 106.8 Ktx/sec 95.5 Ktx/sec
stdb_raw 🧠 person unique 9.1±0.02µs 10.2±0.03µs 106.8 Ktx/sec 96.0 Ktx/sec

Find unique key

db on disk key type load new latency old latency new throughput old throughput
sqlite 💿 u32 1000 2.4±0.01µs 2.3±0.01µs 414.4 Ktx/sec 421.2 Ktx/sec
sqlite 🧠 u32 1000 1120.1±4.52ns 1118.6±4.75ns 871.9 Ktx/sec 873.1 Ktx/sec
stdb_module 💿 u32 1000 24.5±2.02µs 24.1±1.42µs 39.9 Ktx/sec 40.4 Ktx/sec
stdb_module 🧠 u32 1000 22.5±1.00µs 25.3±2.51µs 43.4 Ktx/sec 38.6 Ktx/sec
stdb_raw 💿 u32 1000 2.1±0.02µs 2.1±0.01µs 459.2 Ktx/sec 457.5 Ktx/sec
stdb_raw 🧠 u32 1000 2.1±0.00µs 2.1±0.01µs 470.3 Ktx/sec 470.7 Ktx/sec

Filter

db on disk key type index strategy load count new latency old latency new throughput old throughput
sqlite 💿 string indexed 1000 10 5.7±0.01µs 5.6±0.02µs 171.4 Ktx/sec 172.9 Ktx/sec
sqlite 💿 string non_indexed 1000 10 49.9±0.38µs 49.3±0.46µs 19.6 Ktx/sec 19.8 Ktx/sec
sqlite 💿 u64 indexed 1000 10 5.5±0.02µs 5.4±0.01µs 178.4 Ktx/sec 180.1 Ktx/sec
sqlite 💿 u64 non_indexed 1000 10 32.9±0.07µs 33.0±0.19µs 29.6 Ktx/sec 29.6 Ktx/sec
sqlite 🧠 string indexed 1000 10 4.2±0.01µs 4.2±0.02µs 231.0 Ktx/sec 231.2 Ktx/sec
sqlite 🧠 string non_indexed 1000 10 48.3±0.22µs 47.4±0.37µs 20.2 Ktx/sec 20.6 Ktx/sec
sqlite 🧠 u64 indexed 1000 10 4.1±0.02µs 4.1±0.02µs 239.9 Ktx/sec 241.1 Ktx/sec
sqlite 🧠 u64 non_indexed 1000 10 31.6±0.07µs 31.7±0.15µs 30.9 Ktx/sec 30.8 Ktx/sec
stdb_module 💿 string indexed 1000 10 36.9±2.47µs 35.4±2.77µs 26.5 Ktx/sec 27.6 Ktx/sec
stdb_module 💿 string non_indexed 1000 10 174.5±9.36µs 179.3±3.00µs 5.6 Ktx/sec 5.4 Ktx/sec
stdb_module 💿 u64 indexed 1000 10 32.6±2.15µs 32.8±2.39µs 30.0 Ktx/sec 29.8 Ktx/sec
stdb_module 💿 u64 non_indexed 1000 10 141.7±2.01µs 145.3±6.19µs 6.9 Ktx/sec 6.7 Ktx/sec
stdb_module 🧠 string indexed 1000 10 34.5±2.18µs 35.3±2.27µs 28.3 Ktx/sec 27.7 Ktx/sec
stdb_module 🧠 string non_indexed 1000 10 158.3±4.76µs 174.7±5.37µs 6.2 Ktx/sec 5.6 Ktx/sec
stdb_module 🧠 u64 indexed 1000 10 32.3±2.53µs 32.3±2.03µs 30.2 Ktx/sec 30.2 Ktx/sec
stdb_module 🧠 u64 non_indexed 1000 10 143.7±25.43µs 140.4±2.23µs 6.8 Ktx/sec 7.0 Ktx/sec
stdb_raw 💿 string indexed 1000 10 4.6±0.01µs 4.5±0.02µs 212.2 Ktx/sec 215.3 Ktx/sec
stdb_raw 💿 string non_indexed 1000 10 145.5±0.69µs 143.4±2.90µs 6.7 Ktx/sec 6.8 Ktx/sec
stdb_raw 💿 u64 indexed 1000 10 4.5±0.02µs 4.4±0.01µs 218.7 Ktx/sec 221.1 Ktx/sec
stdb_raw 💿 u64 non_indexed 1000 10 112.6±0.15µs 121.3±0.21µs 8.7 Ktx/sec 8.1 Ktx/sec
stdb_raw 🧠 string indexed 1000 10 4.5±0.01µs 4.5±0.03µs 214.8 Ktx/sec 218.2 Ktx/sec
stdb_raw 🧠 string non_indexed 1000 10 141.0±0.24µs 138.1±1.79µs 6.9 Ktx/sec 7.1 Ktx/sec
stdb_raw 🧠 u64 indexed 1000 10 4.4±0.01µs 4.4±0.01µs 221.1 Ktx/sec 223.7 Ktx/sec
stdb_raw 🧠 u64 non_indexed 1000 10 149.4±0.15µs 146.5±0.33µs 6.5 Ktx/sec 6.7 Ktx/sec

Serialize

schema format count new latency old latency new throughput old throughput
location bsatn 100 1670.4±31.16ns 1797.1±32.40ns 57.1 Mtx/sec 53.1 Mtx/sec
location json 100 3.2±0.03µs 3.6±0.03µs 29.4 Mtx/sec 26.7 Mtx/sec
location product_value 100 597.3±0.31ns 600.5±13.28ns 159.7 Mtx/sec 158.8 Mtx/sec
person bsatn 100 2.9±0.01µs 2.5±0.01µs 33.0 Mtx/sec 38.0 Mtx/sec
person json 100 5.7±0.04µs 5.2±0.04µs 16.9 Mtx/sec 18.4 Mtx/sec
person product_value 100 1003.5±1.11ns 1008.3±4.12ns 95.0 Mtx/sec 94.6 Mtx/sec

Module: invoke with large arguments

arg size new latency old latency new throughput old throughput
64KiB 64.8±7.65µs 67.7±8.57µs - -

Module: print bulk

line count new latency old latency new throughput old throughput
1 23.1±1.87µs 24.0±1.51µs - -
100 189.3±7.62µs 190.9±2.05µs - -
1000 1746.9±397.05µs 1837.1±422.14µs - -

Remaining benchmarks

name new latency old latency new throughput old throughput

Please sign in to comment.