Skip to content

Commit

Permalink
fix benchmarks run on master (#487)
Browse files Browse the repository at this point in the history
  • Loading branch information
coolreader18 authored Nov 1, 2023
1 parent cdda98b commit 593702c
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion .github/workflows/benchmarks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ jobs:
uses: actions/checkout@v3
with:
ref: ${{ env.PR_REF || github.ref }}
# if we're on master we want to know what the sha of HEAD~1 is so
# that we can compare results from it to HEAD (in the "Fetch markdown
# summary PR" step). otherwise, we can use a fully shallow checkout
fetch-depth: ${{ env.PR_NUMBER && 1 || 2 }}

- name: Install stable toolchain
uses: actions-rs/toolchain@v1
Expand Down Expand Up @@ -145,7 +149,6 @@ jobs:
OLD=master
NEW=pr-$PR_NUMBER
else
git fetch
OLD=$(git rev-parse HEAD~1)
NEW=$GITHUB_SHA
fi
Expand Down

1 comment on commit 593702c

@github-actions
Copy link

@github-actions github-actions bot commented on 593702c Nov 1, 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 💿 433.7±1.82ns 431.0±1.35ns - -
sqlite 🧠 427.2±2.12ns 426.4±1.32ns - -
stdb_module 💿 17.6±1.06µs 18.9±1.49µs - -
stdb_module 🧠 18.1±1.27µs 18.0±1.04µs - -
stdb_raw 💿 715.3±1.38ns 715.1±2.07ns - -
stdb_raw 🧠 709.8±1.27ns 707.1±0.66ns - -

Single-row insertions

db on disk schema index type load new latency old latency new throughput old throughput
sqlite 💿 location multi_index 0 14.6±0.03µs 14.4±0.05µs 66.7 Ktx/sec 67.6 Ktx/sec
sqlite 💿 location multi_index 1000 15.9±0.09µs 15.9±0.16µs 61.3 Ktx/sec 61.5 Ktx/sec
sqlite 💿 location non_unique 0 7.4±0.29µs 7.2±0.08µs 132.5 Ktx/sec 135.7 Ktx/sec
sqlite 💿 location non_unique 1000 7.1±0.02µs 7.0±0.02µs 137.4 Ktx/sec 140.2 Ktx/sec
sqlite 💿 location unique 0 7.7±0.11µs 7.4±0.17µs 126.9 Ktx/sec 131.5 Ktx/sec
sqlite 💿 location unique 1000 7.2±0.04µs 7.0±0.12µs 136.3 Ktx/sec 139.3 Ktx/sec
sqlite 💿 person multi_index 0 14.5±0.04µs 14.3±0.03µs 67.2 Ktx/sec 68.2 Ktx/sec
sqlite 💿 person multi_index 1000 16.4±0.14µs 16.2±0.09µs 59.7 Ktx/sec 60.4 Ktx/sec
sqlite 💿 person non_unique 0 7.8±0.33µs 7.4±0.18µs 124.8 Ktx/sec 131.7 Ktx/sec
sqlite 💿 person non_unique 1000 7.3±0.05µs 7.2±0.06µs 132.9 Ktx/sec 135.3 Ktx/sec
sqlite 💿 person unique 0 7.6±0.20µs 7.3±0.15µs 128.6 Ktx/sec 132.9 Ktx/sec
sqlite 💿 person unique 1000 7.4±0.04µs 7.2±0.05µs 131.8 Ktx/sec 135.5 Ktx/sec
sqlite 🧠 location multi_index 0 4.2±0.02µs 4.0±0.01µs 231.9 Ktx/sec 241.6 Ktx/sec
sqlite 🧠 location multi_index 1000 5.4±0.05µs 5.2±0.04µs 182.0 Ktx/sec 187.3 Ktx/sec
sqlite 🧠 location non_unique 0 1921.3±6.65ns 1862.8±9.82ns 508.3 Ktx/sec 524.2 Ktx/sec
sqlite 🧠 location non_unique 1000 1994.2±25.98ns 1915.2±8.47ns 489.7 Ktx/sec 509.9 Ktx/sec
sqlite 🧠 location unique 0 1937.0±15.64ns 1836.8±9.88ns 504.2 Ktx/sec 531.7 Ktx/sec
sqlite 🧠 location unique 1000 2.0±0.02µs 1965.7±9.88ns 480.7 Ktx/sec 496.8 Ktx/sec
sqlite 🧠 person multi_index 0 3.8±0.02µs 3.7±0.02µs 257.3 Ktx/sec 265.6 Ktx/sec
sqlite 🧠 person multi_index 1000 5.6±0.06µs 5.3±0.03µs 175.5 Ktx/sec 183.7 Ktx/sec
sqlite 🧠 person non_unique 0 2.0±0.01µs 1955.5±4.35ns 486.5 Ktx/sec 499.4 Ktx/sec
sqlite 🧠 person non_unique 1000 2.1±0.01µs 2.0±0.02µs 468.7 Ktx/sec 479.5 Ktx/sec
sqlite 🧠 person unique 0 1983.6±5.42ns 1916.5±6.67ns 492.3 Ktx/sec 509.5 Ktx/sec
sqlite 🧠 person unique 1000 2.1±0.01µs 2.1±0.04µs 462.2 Ktx/sec 469.0 Ktx/sec
stdb_module 💿 location multi_index 0 51.2±5.10µs 53.6±6.41µs 19.1 Ktx/sec 18.2 Ktx/sec
stdb_module 💿 location multi_index 1000 154.8±10.93µs 267.6±79.35µs 6.3 Ktx/sec 3.6 Ktx/sec
stdb_module 💿 location non_unique 0 44.4±5.23µs 44.1±4.48µs 22.0 Ktx/sec 22.2 Ktx/sec
stdb_module 💿 location non_unique 1000 291.6±10.98µs 132.3±7.42µs 3.3 Ktx/sec 7.4 Ktx/sec
stdb_module 💿 location unique 0 48.0±4.58µs 51.5±6.49µs 20.3 Ktx/sec 19.0 Ktx/sec
stdb_module 💿 location unique 1000 205.0±64.61µs 132.7±30.02µs 4.8 Ktx/sec 7.4 Ktx/sec
stdb_module 💿 person multi_index 0 62.7±5.06µs 64.5±4.84µs 15.6 Ktx/sec 15.1 Ktx/sec
stdb_module 💿 person multi_index 1000 154.5±12.47µs 127.2±16.35µs 6.3 Ktx/sec 7.7 Ktx/sec
stdb_module 💿 person non_unique 0 46.7±4.54µs 39.9±6.48µs 20.9 Ktx/sec 24.5 Ktx/sec
stdb_module 💿 person non_unique 1000 149.1±30.79µs 133.0±17.57µs 6.5 Ktx/sec 7.3 Ktx/sec
stdb_module 💿 person unique 0 54.1±6.59µs 58.7±4.66µs 18.1 Ktx/sec 16.6 Ktx/sec
stdb_module 💿 person unique 1000 193.8±89.77µs 276.8±57.48µs 5.0 Ktx/sec 3.5 Ktx/sec
stdb_module 🧠 location multi_index 0 37.0±2.98µs 35.4±3.67µs 26.4 Ktx/sec 27.6 Ktx/sec
stdb_module 🧠 location multi_index 1000 95.1±1.03µs 153.0±9.09µs 10.3 Ktx/sec 6.4 Ktx/sec
stdb_module 🧠 location non_unique 0 30.2±2.35µs 30.7±3.03µs 32.3 Ktx/sec 31.9 Ktx/sec
stdb_module 🧠 location non_unique 1000 123.2±4.61µs 124.1±6.30µs 7.9 Ktx/sec 7.9 Ktx/sec
stdb_module 🧠 location unique 0 37.5±3.56µs 32.4±2.14µs 26.0 Ktx/sec 30.2 Ktx/sec
stdb_module 🧠 location unique 1000 96.3±2.43µs 174.2±35.93µs 10.1 Ktx/sec 5.6 Ktx/sec
stdb_module 🧠 person multi_index 0 44.4±4.42µs 47.7±6.51µs 22.0 Ktx/sec 20.5 Ktx/sec
stdb_module 🧠 person multi_index 1000 275.0±29.96µs 199.6±100.05µs 3.6 Ktx/sec 4.9 Ktx/sec
stdb_module 🧠 person non_unique 0 34.1±3.31µs 34.4±3.80µs 28.7 Ktx/sec 28.4 Ktx/sec
stdb_module 🧠 person non_unique 1000 122.3±20.94µs 265.5±2.60µs 8.0 Ktx/sec 3.7 Ktx/sec
stdb_module 🧠 person unique 0 37.5±4.42µs 38.9±3.28µs 26.0 Ktx/sec 25.1 Ktx/sec
stdb_module 🧠 person unique 1000 201.5±4.88µs 224.6±3.29µs 4.8 Ktx/sec 4.3 Ktx/sec
stdb_raw 💿 location multi_index 0 7.1±0.36µs 7.1±0.01µs 137.0 Ktx/sec 137.3 Ktx/sec
stdb_raw 💿 location multi_index 1000 9.8±0.20µs 18.3±85.42µs 100.0 Ktx/sec 53.3 Ktx/sec
stdb_raw 💿 location non_unique 0 4.7±0.01µs 4.7±0.01µs 208.3 Ktx/sec 208.3 Ktx/sec
stdb_raw 💿 location non_unique 1000 12.3±61.89µs 6.1±0.14µs 79.1 Ktx/sec 161.3 Ktx/sec
stdb_raw 💿 location unique 0 6.0±0.01µs 6.2±0.33µs 161.8 Ktx/sec 158.3 Ktx/sec
stdb_raw 💿 location unique 1000 24.6±161.99µs 8.5±0.17µs 39.7 Ktx/sec 115.5 Ktx/sec
stdb_raw 💿 person multi_index 0 10.8±0.37µs 10.9±0.60µs 90.7 Ktx/sec 89.3 Ktx/sec
stdb_raw 💿 person multi_index 1000 42.2±282.18µs 14.2±0.83µs 23.1 Ktx/sec 68.8 Ktx/sec
stdb_raw 💿 person non_unique 0 5.3±0.02µs 5.3±0.01µs 185.9 Ktx/sec 185.7 Ktx/sec
stdb_raw 💿 person non_unique 1000 16.8±98.95µs 6.9±0.12µs 58.0 Ktx/sec 142.1 Ktx/sec
stdb_raw 💿 person unique 0 7.6±0.03µs 7.8±0.02µs 127.9 Ktx/sec 125.9 Ktx/sec
stdb_raw 💿 person unique 1000 31.5±213.52µs 29.4±191.28µs 31.0 Ktx/sec 33.3 Ktx/sec
stdb_raw 🧠 location multi_index 0 4.2±0.01µs 4.2±0.01µs 233.4 Ktx/sec 231.0 Ktx/sec
stdb_raw 🧠 location multi_index 1000 5.6±0.03µs 5.8±0.05µs 173.0 Ktx/sec 169.3 Ktx/sec
stdb_raw 🧠 location non_unique 0 1921.3±5.72ns 1935.4±3.59ns 508.3 Ktx/sec 504.6 Ktx/sec
stdb_raw 🧠 location non_unique 1000 2.4±0.01µs 2.4±0.02µs 405.5 Ktx/sec 405.3 Ktx/sec
stdb_raw 🧠 location unique 0 3.1±0.01µs 3.3±0.01µs 311.7 Ktx/sec 300.3 Ktx/sec
stdb_raw 🧠 location unique 1000 4.3±0.03µs 4.6±0.04µs 225.5 Ktx/sec 213.7 Ktx/sec
stdb_raw 🧠 person multi_index 0 7.8±0.01µs 7.9±0.01µs 124.9 Ktx/sec 123.6 Ktx/sec
stdb_raw 🧠 person multi_index 1000 9.8±0.23µs 10.0±0.20µs 100.1 Ktx/sec 97.6 Ktx/sec
stdb_raw 🧠 person non_unique 0 2.5±0.01µs 2.5±0.00µs 395.9 Ktx/sec 397.2 Ktx/sec
stdb_raw 🧠 person non_unique 1000 3.1±0.02µs 3.2±0.04µs 311.7 Ktx/sec 310.0 Ktx/sec
stdb_raw 🧠 person unique 0 4.7±0.01µs 4.8±0.01µs 208.1 Ktx/sec 204.1 Ktx/sec
stdb_raw 🧠 person unique 1000 6.1±0.08µs 6.3±0.04µs 159.0 Ktx/sec 154.2 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 139.9±31.07µs 133.6±3.16µs 7.0 Ktx/sec 7.3 Ktx/sec
sqlite 💿 location multi_index 1000 100 215.0±23.43µs 206.8±23.97µs 4.5 Ktx/sec 4.7 Ktx/sec
sqlite 💿 location non_unique 0 100 52.5±1.93µs 51.1±2.88µs 18.6 Ktx/sec 19.1 Ktx/sec
sqlite 💿 location non_unique 1000 100 56.4±0.31µs 52.9±0.42µs 17.3 Ktx/sec 18.5 Ktx/sec
sqlite 💿 location unique 0 100 54.0±1.59µs 52.9±0.34µs 18.1 Ktx/sec 18.5 Ktx/sec
sqlite 💿 location unique 1000 100 59.0±0.43µs 57.0±0.27µs 16.5 Ktx/sec 17.1 Ktx/sec
sqlite 💿 person multi_index 0 100 121.9±2.52µs 120.2±11.29µs 8.0 Ktx/sec 8.1 Ktx/sec
sqlite 💿 person multi_index 1000 100 240.8±2.88µs 233.1±0.57µs 4.1 Ktx/sec 4.2 Ktx/sec
sqlite 💿 person non_unique 0 100 49.7±2.07µs 49.8±1.97µs 19.7 Ktx/sec 19.6 Ktx/sec
sqlite 💿 person non_unique 1000 100 61.8±0.35µs 60.8±0.24µs 15.8 Ktx/sec 16.1 Ktx/sec
sqlite 💿 person unique 0 100 51.2±1.56µs 49.7±2.30µs 19.1 Ktx/sec 19.6 Ktx/sec
sqlite 💿 person unique 1000 100 56.7±0.39µs 55.4±0.29µs 17.2 Ktx/sec 17.6 Ktx/sec
sqlite 🧠 location multi_index 0 100 124.6±0.33µs 121.7±0.28µs 7.8 Ktx/sec 8.0 Ktx/sec
sqlite 🧠 location multi_index 1000 100 177.2±0.84µs 170.7±0.28µs 5.5 Ktx/sec 5.7 Ktx/sec
sqlite 🧠 location non_unique 0 100 46.2±0.25µs 44.2±0.26µs 21.1 Ktx/sec 22.1 Ktx/sec
sqlite 🧠 location non_unique 1000 100 47.1±0.60µs 45.6±0.25µs 20.7 Ktx/sec 21.4 Ktx/sec
sqlite 🧠 location unique 0 100 47.8±0.61µs 46.3±0.29µs 20.4 Ktx/sec 21.1 Ktx/sec
sqlite 🧠 location unique 1000 100 51.3±0.26µs 49.2±0.27µs 19.0 Ktx/sec 19.9 Ktx/sec
sqlite 🧠 person multi_index 0 100 110.8±0.24µs 107.4±1.01µs 8.8 Ktx/sec 9.1 Ktx/sec
sqlite 🧠 person multi_index 1000 100 193.6±0.32µs 189.8±0.38µs 5.0 Ktx/sec 5.1 Ktx/sec
sqlite 🧠 person non_unique 0 100 43.2±0.48µs 43.3±0.23µs 22.6 Ktx/sec 22.6 Ktx/sec
sqlite 🧠 person non_unique 1000 100 48.4±0.18µs 46.1±0.34µs 20.2 Ktx/sec 21.2 Ktx/sec
sqlite 🧠 person unique 0 100 44.1±0.33µs 43.8±0.33µs 22.2 Ktx/sec 22.3 Ktx/sec
sqlite 🧠 person unique 1000 100 49.2±0.26µs 47.9±0.32µs 19.9 Ktx/sec 20.4 Ktx/sec
stdb_module 💿 location multi_index 0 100 880.4±179.84µs 641.9±119.22µs 1135 tx/sec 1557 tx/sec
stdb_module 💿 location multi_index 1000 100 988.7±51.14µs 961.3±128.76µs 1011 tx/sec 1040 tx/sec
stdb_module 💿 location non_unique 0 100 616.5±6.74µs 575.0±43.71µs 1622 tx/sec 1738 tx/sec
stdb_module 💿 location non_unique 1000 100 432.1±5.49µs 534.1±117.60µs 2.3 Ktx/sec 1872 tx/sec
stdb_module 💿 location unique 0 100 516.3±78.90µs 674.3±133.43µs 1936 tx/sec 1482 tx/sec
stdb_module 💿 location unique 1000 100 559.5±40.17µs 770.9±13.14µs 1787 tx/sec 1297 tx/sec
stdb_module 💿 person multi_index 0 100 1085.5±39.14µs 949.0±6.75µs 921 tx/sec 1053 tx/sec
stdb_module 💿 person multi_index 1000 100 1126.8±6.64µs 1156.8±15.99µs 887 tx/sec 864 tx/sec
stdb_module 💿 person non_unique 0 100 445.0±7.13µs 483.9±64.08µs 2.2 Ktx/sec 2.0 Ktx/sec
stdb_module 💿 person non_unique 1000 100 621.1±54.31µs 514.2±17.75µs 1610 tx/sec 1944 tx/sec
stdb_module 💿 person unique 0 100 758.9±17.48µs 662.5±11.72µs 1317 tx/sec 1509 tx/sec
stdb_module 💿 person unique 1000 100 832.3±49.11µs 743.2±26.10µs 1201 tx/sec 1345 tx/sec
stdb_module 🧠 location multi_index 0 100 700.0±86.63µs 787.2±10.07µs 1428 tx/sec 1270 tx/sec
stdb_module 🧠 location multi_index 1000 100 891.9±94.54µs 840.3±101.97µs 1121 tx/sec 1190 tx/sec
stdb_module 🧠 location non_unique 0 100 344.1±52.29µs 373.6±17.42µs 2.8 Ktx/sec 2.6 Ktx/sec
stdb_module 🧠 location non_unique 1000 100 458.8±20.11µs 511.7±5.45µs 2.1 Ktx/sec 1954 tx/sec
stdb_module 🧠 location unique 0 100 414.1±1.00µs 443.9±61.72µs 2.4 Ktx/sec 2.2 Ktx/sec
stdb_module 🧠 location unique 1000 100 667.2±63.75µs 774.6±14.85µs 1498 tx/sec 1291 tx/sec
stdb_module 🧠 person multi_index 0 100 875.9±1.20µs 968.8±7.69µs 1141 tx/sec 1032 tx/sec
stdb_module 🧠 person multi_index 1000 100 1143.0±19.90µs 1055.5±40.23µs 874 tx/sec 947 tx/sec
stdb_module 🧠 person non_unique 0 100 452.1±30.47µs 447.3±14.74µs 2.2 Ktx/sec 2.2 Ktx/sec
stdb_module 🧠 person non_unique 1000 100 636.7±72.49µs 592.3±101.59µs 1570 tx/sec 1688 tx/sec
stdb_module 🧠 person unique 0 100 595.7±27.95µs 597.3±31.84µs 1678 tx/sec 1674 tx/sec
stdb_module 🧠 person unique 1000 100 836.2±16.07µs 834.2±33.71µs 1195 tx/sec 1198 tx/sec
stdb_raw 💿 location multi_index 0 100 385.3±0.53µs 383.7±0.46µs 2.5 Ktx/sec 2.5 Ktx/sec
stdb_raw 💿 location multi_index 1000 100 411.0±1.16µs 410.2±1.23µs 2.4 Ktx/sec 2.4 Ktx/sec
stdb_raw 💿 location non_unique 0 100 157.5±0.41µs 158.4±0.20µs 6.2 Ktx/sec 6.2 Ktx/sec
stdb_raw 💿 location non_unique 1000 100 160.3±1.05µs 161.1±0.95µs 6.1 Ktx/sec 6.1 Ktx/sec
stdb_raw 💿 location unique 0 100 284.2±0.76µs 284.9±0.96µs 3.4 Ktx/sec 3.4 Ktx/sec
stdb_raw 💿 location unique 1000 100 315.6±138.19µs 310.0±62.36µs 3.1 Ktx/sec 3.2 Ktx/sec
stdb_raw 💿 person multi_index 0 100 708.9±4.00µs 710.2±2.08µs 1410 tx/sec 1408 tx/sec
stdb_raw 💿 person multi_index 1000 100 739.3±1.20µs 739.4±1.22µs 1352 tx/sec 1352 tx/sec
stdb_raw 💿 person non_unique 0 100 216.2±6.47µs 216.3±0.32µs 4.5 Ktx/sec 4.5 Ktx/sec
stdb_raw 💿 person non_unique 1000 100 228.7±106.47µs 234.6±154.44µs 4.3 Ktx/sec 4.2 Ktx/sec
stdb_raw 💿 person unique 0 100 423.9±0.67µs 428.8±3.57µs 2.3 Ktx/sec 2.3 Ktx/sec
stdb_raw 💿 person unique 1000 100 461.7±182.52µs 446.8±1.09µs 2.1 Ktx/sec 2.2 Ktx/sec
stdb_raw 🧠 location multi_index 0 100 300.1±0.73µs 301.7±0.33µs 3.3 Ktx/sec 3.2 Ktx/sec
stdb_raw 🧠 location multi_index 1000 100 325.1±0.59µs 327.1±0.64µs 3.0 Ktx/sec 3.0 Ktx/sec
stdb_raw 🧠 location non_unique 0 100 73.6±0.29µs 75.0±0.14µs 13.3 Ktx/sec 13.0 Ktx/sec
stdb_raw 🧠 location non_unique 1000 100 75.2±0.14µs 76.3±0.17µs 13.0 Ktx/sec 12.8 Ktx/sec
stdb_raw 🧠 location unique 0 100 198.1±0.28µs 200.0±0.35µs 4.9 Ktx/sec 4.9 Ktx/sec
stdb_raw 🧠 location unique 1000 100 217.8±0.40µs 219.3±0.35µs 4.5 Ktx/sec 4.5 Ktx/sec
stdb_raw 🧠 person multi_index 0 100 618.8±0.31µs 619.9±2.09µs 1616 tx/sec 1613 tx/sec
stdb_raw 🧠 person multi_index 1000 100 648.8±1.01µs 650.5±0.95µs 1541 tx/sec 1537 tx/sec
stdb_raw 🧠 person non_unique 0 100 127.2±0.19µs 127.5±0.19µs 7.7 Ktx/sec 7.7 Ktx/sec
stdb_raw 🧠 person non_unique 1000 100 129.5±0.35µs 130.2±0.36µs 7.5 Ktx/sec 7.5 Ktx/sec
stdb_raw 🧠 person unique 0 100 336.0±0.74µs 338.1±0.62µs 2.9 Ktx/sec 2.9 Ktx/sec
stdb_raw 🧠 person unique 1000 100 355.7±0.93µs 357.8±0.50µs 2.7 Ktx/sec 2.7 Ktx/sec

Full table iterate

db on disk schema index type new latency old latency new throughput old throughput
sqlite 💿 location unique 9.2±0.07µs 9.0±0.06µs 106.4 Ktx/sec 108.8 Ktx/sec
sqlite 💿 person unique 9.4±0.11µs 9.2±0.07µs 103.5 Ktx/sec 106.4 Ktx/sec
sqlite 🧠 location unique 7.9±0.06µs 7.7±0.06µs 124.2 Ktx/sec 126.6 Ktx/sec
sqlite 🧠 person unique 8.2±0.12µs 8.0±0.06µs 119.3 Ktx/sec 122.4 Ktx/sec
stdb_module 💿 location unique 50.2±3.78µs 50.9±4.36µs 19.4 Ktx/sec 19.2 Ktx/sec
stdb_module 💿 person unique 60.5±10.10µs 54.8±11.24µs 16.1 Ktx/sec 17.8 Ktx/sec
stdb_module 🧠 location unique 47.2±5.51µs 49.2±5.23µs 20.7 Ktx/sec 19.8 Ktx/sec
stdb_module 🧠 person unique 60.9±9.60µs 63.1±6.39µs 16.0 Ktx/sec 15.5 Ktx/sec
stdb_raw 💿 location unique 8.9±0.01µs 9.1±0.01µs 109.1 Ktx/sec 107.1 Ktx/sec
stdb_raw 💿 person unique 9.0±0.03µs 9.1±0.01µs 109.0 Ktx/sec 107.2 Ktx/sec
stdb_raw 🧠 location unique 8.9±0.01µs 9.1±0.00µs 109.2 Ktx/sec 107.2 Ktx/sec
stdb_raw 🧠 person unique 9.0±0.04µs 9.1±0.01µs 109.0 Ktx/sec 107.3 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.00µs 406.6 Ktx/sec 415.6 Ktx/sec
sqlite 🧠 u32 1000 1169.8±4.37ns 1126.6±12.67ns 834.8 Ktx/sec 866.8 Ktx/sec
stdb_module 💿 u32 1000 23.7±1.58µs 23.8±1.63µs 41.2 Ktx/sec 41.1 Ktx/sec
stdb_module 🧠 u32 1000 24.2±1.39µs 25.5±2.10µs 40.3 Ktx/sec 38.3 Ktx/sec
stdb_raw 💿 u32 1000 1924.2±4.06ns 1903.1±3.28ns 507.5 Ktx/sec 513.2 Ktx/sec
stdb_raw 🧠 u32 1000 1917.9±4.36ns 1895.7±3.52ns 509.2 Ktx/sec 515.1 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.8±0.01µs 5.6±0.01µs 169.8 Ktx/sec 173.7 Ktx/sec
sqlite 💿 string non_indexed 1000 10 51.4±0.19µs 51.0±0.28µs 19.0 Ktx/sec 19.2 Ktx/sec
sqlite 💿 u64 indexed 1000 10 5.5±0.02µs 5.4±0.01µs 176.2 Ktx/sec 180.3 Ktx/sec
sqlite 💿 u64 non_indexed 1000 10 33.1±0.07µs 32.9±0.06µs 29.5 Ktx/sec 29.7 Ktx/sec
sqlite 🧠 string indexed 1000 10 4.3±0.02µs 4.2±0.01µs 226.8 Ktx/sec 231.5 Ktx/sec
sqlite 🧠 string non_indexed 1000 10 49.8±0.26µs 49.8±0.32µs 19.6 Ktx/sec 19.6 Ktx/sec
sqlite 🧠 u64 indexed 1000 10 4.1±0.01µs 4.0±0.01µs 237.6 Ktx/sec 241.9 Ktx/sec
sqlite 🧠 u64 non_indexed 1000 10 31.7±0.08µs 31.8±0.33µs 30.8 Ktx/sec 30.7 Ktx/sec
stdb_module 💿 string indexed 1000 10 35.6±2.43µs 35.0±2.42µs 27.4 Ktx/sec 27.9 Ktx/sec
stdb_module 💿 string non_indexed 1000 10 168.9±2.12µs 178.9±1.31µs 5.8 Ktx/sec 5.5 Ktx/sec
stdb_module 💿 u64 indexed 1000 10 32.6±1.84µs 31.9±2.93µs 30.0 Ktx/sec 30.6 Ktx/sec
stdb_module 💿 u64 non_indexed 1000 10 150.8±5.32µs 143.3±1.87µs 6.5 Ktx/sec 6.8 Ktx/sec
stdb_module 🧠 string indexed 1000 10 35.4±2.56µs 35.4±2.58µs 27.6 Ktx/sec 27.6 Ktx/sec
stdb_module 🧠 string non_indexed 1000 10 166.6±0.58µs 177.7±4.67µs 5.9 Ktx/sec 5.5 Ktx/sec
stdb_module 🧠 u64 indexed 1000 10 32.8±2.22µs 30.7±3.20µs 29.7 Ktx/sec 31.8 Ktx/sec
stdb_module 🧠 u64 non_indexed 1000 10 142.2±3.30µs 142.1±6.70µs 6.9 Ktx/sec 6.9 Ktx/sec
stdb_raw 💿 string indexed 1000 10 4.4±0.01µs 4.3±0.01µs 221.7 Ktx/sec 225.4 Ktx/sec
stdb_raw 💿 string non_indexed 1000 10 136.9±1.33µs 131.6±0.48µs 7.1 Ktx/sec 7.4 Ktx/sec
stdb_raw 💿 u64 indexed 1000 10 4.4±0.01µs 4.3±0.01µs 221.7 Ktx/sec 228.2 Ktx/sec
stdb_raw 💿 u64 non_indexed 1000 10 111.1±0.14µs 132.8±0.47µs 8.8 Ktx/sec 7.4 Ktx/sec
stdb_raw 🧠 string indexed 1000 10 4.4±0.01µs 4.3±0.01µs 222.2 Ktx/sec 226.2 Ktx/sec
stdb_raw 🧠 string non_indexed 1000 10 134.8±0.79µs 130.0±0.31µs 7.2 Ktx/sec 7.5 Ktx/sec
stdb_raw 🧠 u64 indexed 1000 10 4.4±0.01µs 4.3±0.01µs 222.7 Ktx/sec 228.7 Ktx/sec
stdb_raw 🧠 u64 non_indexed 1000 10 111.5±0.36µs 132.4±0.16µs 8.8 Ktx/sec 7.4 Ktx/sec

Serialize

schema format count new latency old latency new throughput old throughput
location bsatn 100 1784.3±35.47ns 1782.8±30.02ns 53.4 Mtx/sec 53.5 Mtx/sec
location json 100 3.3±0.03µs 3.6±0.03µs 29.2 Mtx/sec 26.2 Mtx/sec
location product_value 100 580.1±0.34ns 580.6±0.98ns 164.4 Mtx/sec 164.3 Mtx/sec
person bsatn 100 2.5±0.01µs 2.5±0.05µs 38.0 Mtx/sec 37.7 Mtx/sec
person json 100 5.0±0.05µs 4.8±0.03µs 19.1 Mtx/sec 19.7 Mtx/sec
person product_value 100 1030.1±2.18ns 1032.2±0.89ns 92.6 Mtx/sec 92.4 Mtx/sec

Module: invoke with large arguments

arg size new latency old latency new throughput old throughput
64KiB 76.0±10.46µs 81.2±6.83µs - -

Module: print bulk

line count new latency old latency new throughput old throughput
1 22.6±1.40µs 25.1±2.63µs - -
100 203.1±5.75µs 202.2±1.21µs - -
1000 1886.2±82.46µs 1834.1±37.39µs - -

Remaining benchmarks

name new latency old latency new throughput old throughput

Please sign in to comment.