Skip to content

Commit

Permalink
Showing 2 changed files with 2 additions and 2 deletions.
2 changes: 1 addition & 1 deletion crates/bindings-csharp/Codegen/Codegen.csproj
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@
<PropertyGroup>
<Version>$(AssemblyVersion)</Version>
<Title>SpacetimeDB Module Codegen</Title>
<Authors>ingvar_clockwork</Authors>
<Authors>RReverser</Authors>
<Company>Clockwork Labs</Company>
<Product>SpacetimeDB</Product>
<Description>The SpacetimeDB Codegen implements the Roslyn incremental generators for writing SpacetimeDB modules in C#.</Description>
2 changes: 1 addition & 1 deletion crates/bindings-csharp/Runtime/Runtime.csproj
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@
<PropertyGroup>
<Version>$(AssemblyVersion)</Version>
<Title>SpacetimeDB Module Runtime</Title>
<Authors>ingvar_clockwork</Authors>
<Authors>RReverser</Authors>
<Company>Clockwork Labs</Company>
<Product>SpacetimeDB</Product>
<Description>The SpacetimeDB Runtime implements the database runtime bindings for writing SpacetimeDB modules in C#.</Description>

1 comment on commit 15a461e

@github-actions
Copy link

@github-actions github-actions bot commented on 15a461e Nov 21, 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 💿 440.2±3.59ns 442.8±1.77ns - -
sqlite 🧠 438.1±2.78ns 437.4±2.75ns - -
stdb_module 💿 18.0±1.27µs 17.7±1.14µs - -
stdb_module 🧠 17.7±1.22µs 17.4±0.89µs - -
stdb_raw 💿 738.9±2.05ns 731.2±1.34ns - -
stdb_raw 🧠 686.2±0.99ns 685.5±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.01µs 67.2 Ktx/sec 66.2 Ktx/sec
sqlite 💿 location multi_index 1000 15.9±0.11µs 15.8±0.16µs 61.5 Ktx/sec 61.8 Ktx/sec
sqlite 💿 location non_unique 0 7.2±0.08µs 7.1±0.03µs 136.1 Ktx/sec 137.0 Ktx/sec
sqlite 💿 location non_unique 1000 7.1±0.03µs 7.1±0.03µs 138.3 Ktx/sec 136.7 Ktx/sec
sqlite 💿 location unique 0 7.3±0.45µs 7.1±0.03µs 134.5 Ktx/sec 137.0 Ktx/sec
sqlite 💿 location unique 1000 7.1±0.03µs 7.1±0.03µs 137.6 Ktx/sec 137.0 Ktx/sec
sqlite 💿 person multi_index 0 14.5±0.17µs 14.4±0.06µs 67.2 Ktx/sec 67.9 Ktx/sec
sqlite 💿 person multi_index 1000 16.0±0.09µs 16.2±0.16µs 60.9 Ktx/sec 60.4 Ktx/sec
sqlite 💿 person non_unique 0 7.3±0.44µs 7.4±0.59µs 134.6 Ktx/sec 132.2 Ktx/sec
sqlite 💿 person non_unique 1000 7.3±0.04µs 7.4±0.05µs 133.9 Ktx/sec 132.8 Ktx/sec
sqlite 💿 person unique 0 7.2±0.31µs 7.3±0.59µs 135.0 Ktx/sec 133.1 Ktx/sec
sqlite 💿 person unique 1000 7.3±0.11µs 7.4±0.08µs 134.0 Ktx/sec 132.5 Ktx/sec
sqlite 🧠 location multi_index 0 4.0±0.01µs 4.0±0.01µs 243.7 Ktx/sec 242.4 Ktx/sec
sqlite 🧠 location multi_index 1000 5.2±0.04µs 5.2±0.04µs 187.3 Ktx/sec 187.2 Ktx/sec
sqlite 🧠 location non_unique 0 1848.3±12.78ns 1845.3±9.15ns 528.4 Ktx/sec 529.2 Ktx/sec
sqlite 🧠 location non_unique 1000 1924.4±13.10ns 1902.5±9.49ns 507.5 Ktx/sec 513.3 Ktx/sec
sqlite 🧠 location unique 0 1861.0±7.60ns 1835.1±8.09ns 524.8 Ktx/sec 532.1 Ktx/sec
sqlite 🧠 location unique 1000 1944.4±17.55ns 1980.9±59.43ns 502.3 Ktx/sec 493.0 Ktx/sec
sqlite 🧠 person multi_index 0 3.7±0.04µs 3.7±0.01µs 265.3 Ktx/sec 265.7 Ktx/sec
sqlite 🧠 person multi_index 1000 5.6±0.03µs 5.6±0.05µs 175.4 Ktx/sec 175.8 Ktx/sec
sqlite 🧠 person non_unique 0 1934.9±7.30ns 1936.8±9.70ns 504.7 Ktx/sec 504.2 Ktx/sec
sqlite 🧠 person non_unique 1000 2.0±0.01µs 2.0±0.01µs 487.8 Ktx/sec 487.0 Ktx/sec
sqlite 🧠 person unique 0 1915.4±7.19ns 1903.9±8.90ns 509.8 Ktx/sec 512.9 Ktx/sec
sqlite 🧠 person unique 1000 2.0±0.02µs 2.1±0.02µs 481.0 Ktx/sec 474.6 Ktx/sec
stdb_module 💿 location multi_index 0 47.9±6.15µs 53.2±5.55µs 20.4 Ktx/sec 18.3 Ktx/sec
stdb_module 💿 location multi_index 1000 258.1±21.98µs 163.3±70.96µs 3.8 Ktx/sec 6.0 Ktx/sec
stdb_module 💿 location non_unique 0 39.3±6.13µs 40.5±4.41µs 24.9 Ktx/sec 24.1 Ktx/sec
stdb_module 💿 location non_unique 1000 316.3±9.90µs 274.8±6.92µs 3.1 Ktx/sec 3.6 Ktx/sec
stdb_module 💿 location unique 0 46.4±4.80µs 46.2±5.41µs 21.0 Ktx/sec 21.1 Ktx/sec
stdb_module 💿 location unique 1000 261.3±3.07µs 262.7±9.01µs 3.7 Ktx/sec 3.7 Ktx/sec
stdb_module 💿 person multi_index 0 60.8±5.51µs 64.9±6.07µs 16.1 Ktx/sec 15.0 Ktx/sec
stdb_module 💿 person multi_index 1000 313.8±11.68µs 346.4±18.05µs 3.1 Ktx/sec 2.8 Ktx/sec
stdb_module 💿 person non_unique 0 46.6±3.52µs 50.6±3.91µs 21.0 Ktx/sec 19.3 Ktx/sec
stdb_module 💿 person non_unique 1000 119.5±61.84µs 150.4±70.40µs 8.2 Ktx/sec 6.5 Ktx/sec
stdb_module 💿 person unique 0 54.0±5.14µs 58.9±3.57µs 18.1 Ktx/sec 16.6 Ktx/sec
stdb_module 💿 person unique 1000 328.1±50.95µs 171.2±31.09µs 3.0 Ktx/sec 5.7 Ktx/sec
stdb_module 🧠 location multi_index 0 38.0±5.14µs 39.1±4.11µs 25.7 Ktx/sec 25.0 Ktx/sec
stdb_module 🧠 location multi_index 1000 158.5±30.05µs 108.4±5.67µs 6.2 Ktx/sec 9.0 Ktx/sec
stdb_module 🧠 location non_unique 0 33.1±2.91µs 31.7±2.73µs 29.5 Ktx/sec 30.8 Ktx/sec
stdb_module 🧠 location non_unique 1000 166.9±30.86µs 176.4±11.97µs 5.9 Ktx/sec 5.5 Ktx/sec
stdb_module 🧠 location unique 0 33.6±2.84µs 32.7±2.57µs 29.1 Ktx/sec 29.9 Ktx/sec
stdb_module 🧠 location unique 1000 234.7±26.15µs 231.7±14.06µs 4.2 Ktx/sec 4.2 Ktx/sec
stdb_module 🧠 person multi_index 0 45.6±4.11µs 43.9±3.60µs 21.4 Ktx/sec 22.3 Ktx/sec
stdb_module 🧠 person multi_index 1000 213.8±66.54µs 164.4±89.57µs 4.6 Ktx/sec 5.9 Ktx/sec
stdb_module 🧠 person non_unique 0 30.7±2.24µs 32.9±3.94µs 31.9 Ktx/sec 29.7 Ktx/sec
stdb_module 🧠 person non_unique 1000 267.0±25.30µs 255.8±16.76µs 3.7 Ktx/sec 3.8 Ktx/sec
stdb_module 🧠 person unique 0 39.6±4.53µs 39.1±2.91µs 24.7 Ktx/sec 25.0 Ktx/sec
stdb_module 🧠 person unique 1000 185.3±17.97µs 216.3±13.31µs 5.3 Ktx/sec 4.5 Ktx/sec
stdb_raw 💿 location multi_index 0 6.6±0.03µs 6.6±0.02µs 147.5 Ktx/sec 147.5 Ktx/sec
stdb_raw 💿 location multi_index 1000 34.4±251.36µs 9.3±0.14µs 28.4 Ktx/sec 105.3 Ktx/sec
stdb_raw 💿 location non_unique 0 4.2±0.01µs 4.3±0.01µs 229.9 Ktx/sec 224.8 Ktx/sec
stdb_raw 💿 location non_unique 1000 5.7±0.17µs 5.8±0.12µs 171.9 Ktx/sec 168.8 Ktx/sec
stdb_raw 💿 location unique 0 5.6±0.01µs 5.6±0.01µs 175.4 Ktx/sec 173.5 Ktx/sec
stdb_raw 💿 location unique 1000 7.9±0.20µs 7.9±0.14µs 124.1 Ktx/sec 123.6 Ktx/sec
stdb_raw 💿 person multi_index 0 10.9±0.42µs 10.9±0.04µs 89.2 Ktx/sec 89.3 Ktx/sec
stdb_raw 💿 person multi_index 1000 56.0±417.24µs 56.4±422.14µs 17.4 Ktx/sec 17.3 Ktx/sec
stdb_raw 💿 person non_unique 0 5.4±0.02µs 5.4±0.04µs 180.3 Ktx/sec 179.2 Ktx/sec
stdb_raw 💿 person non_unique 1000 22.7±155.96µs 18.0±108.82µs 43.0 Ktx/sec 54.4 Ktx/sec
stdb_raw 💿 person unique 0 7.8±0.03µs 7.8±0.03µs 125.7 Ktx/sec 125.7 Ktx/sec
stdb_raw 💿 person unique 1000 10.3±0.15µs 38.4±279.80µs 94.6 Ktx/sec 25.5 Ktx/sec
stdb_raw 🧠 location multi_index 0 4.1±0.01µs 4.1±0.01µs 236.5 Ktx/sec 237.5 Ktx/sec
stdb_raw 🧠 location multi_index 1000 5.8±0.05µs 5.7±0.04µs 168.6 Ktx/sec 171.1 Ktx/sec
stdb_raw 🧠 location non_unique 0 1925.2±7.77ns 1917.7±6.54ns 507.3 Ktx/sec 509.2 Ktx/sec
stdb_raw 🧠 location non_unique 1000 2.4±0.02µs 2.4±0.02µs 403.7 Ktx/sec 405.9 Ktx/sec
stdb_raw 🧠 location unique 0 3.1±0.01µs 3.1±0.00µs 313.1 Ktx/sec 313.1 Ktx/sec
stdb_raw 🧠 location unique 1000 4.3±0.04µs 4.3±0.04µs 226.6 Ktx/sec 229.3 Ktx/sec
stdb_raw 🧠 person multi_index 0 7.8±0.01µs 7.8±0.01µs 124.8 Ktx/sec 124.7 Ktx/sec
stdb_raw 🧠 person multi_index 1000 10.0±0.09µs 9.9±0.06µs 97.9 Ktx/sec 99.0 Ktx/sec
stdb_raw 🧠 person non_unique 0 2.5±0.01µs 2.4±0.01µs 396.0 Ktx/sec 398.8 Ktx/sec
stdb_raw 🧠 person non_unique 1000 3.1±0.03µs 3.1±0.03µs 310.9 Ktx/sec 315.3 Ktx/sec
stdb_raw 🧠 person unique 0 4.7±0.01µs 4.7±0.01µs 206.6 Ktx/sec 206.0 Ktx/sec
stdb_raw 🧠 person unique 1000 6.2±0.06µs 6.1±0.07µs 158.5 Ktx/sec 160.8 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 133.5±12.43µs 131.1±0.49µs 7.3 Ktx/sec 7.4 Ktx/sec
sqlite 💿 location multi_index 1000 100 203.2±1.15µs 204.5±1.19µs 4.8 Ktx/sec 4.8 Ktx/sec
sqlite 💿 location non_unique 0 100 48.7±0.19µs 51.6±3.82µs 20.0 Ktx/sec 18.9 Ktx/sec
sqlite 💿 location non_unique 1000 100 53.4±0.22µs 53.1±0.35µs 18.3 Ktx/sec 18.4 Ktx/sec
sqlite 💿 location unique 0 100 52.4±0.48µs 52.2±2.00µs 18.7 Ktx/sec 18.7 Ktx/sec
sqlite 💿 location unique 1000 100 57.8±0.23µs 56.8±0.40µs 16.9 Ktx/sec 17.2 Ktx/sec
sqlite 💿 person multi_index 0 100 119.1±4.69µs 118.1±3.59µs 8.2 Ktx/sec 8.3 Ktx/sec
sqlite 💿 person multi_index 1000 100 228.5±0.48µs 231.7±29.10µs 4.3 Ktx/sec 4.2 Ktx/sec
sqlite 💿 person non_unique 0 100 48.7±1.57µs 52.0±1.52µs 20.0 Ktx/sec 18.8 Ktx/sec
sqlite 💿 person non_unique 1000 100 61.3±0.23µs 61.6±0.33µs 15.9 Ktx/sec 15.9 Ktx/sec
sqlite 💿 person unique 0 100 51.0±0.68µs 50.1±1.21µs 19.1 Ktx/sec 19.5 Ktx/sec
sqlite 💿 person unique 1000 100 57.6±0.41µs 55.5±0.23µs 17.0 Ktx/sec 17.6 Ktx/sec
sqlite 🧠 location multi_index 0 100 119.3±0.41µs 119.7±0.42µs 8.2 Ktx/sec 8.2 Ktx/sec
sqlite 🧠 location multi_index 1000 100 170.6±0.68µs 170.7±0.43µs 5.7 Ktx/sec 5.7 Ktx/sec
sqlite 🧠 location non_unique 0 100 43.2±0.27µs 44.0±0.39µs 22.6 Ktx/sec 22.2 Ktx/sec
sqlite 🧠 location non_unique 1000 100 44.9±0.32µs 45.9±0.36µs 21.8 Ktx/sec 21.3 Ktx/sec
sqlite 🧠 location unique 0 100 45.6±0.28µs 46.1±0.57µs 21.4 Ktx/sec 21.2 Ktx/sec
sqlite 🧠 location unique 1000 100 49.3±0.30µs 49.9±0.32µs 19.8 Ktx/sec 19.6 Ktx/sec
sqlite 🧠 person multi_index 0 100 106.9±0.59µs 107.2±0.63µs 9.1 Ktx/sec 9.1 Ktx/sec
sqlite 🧠 person multi_index 1000 100 189.4±0.45µs 191.4±1.86µs 5.2 Ktx/sec 5.1 Ktx/sec
sqlite 🧠 person non_unique 0 100 42.3±0.26µs 42.1±0.34µs 23.1 Ktx/sec 23.2 Ktx/sec
sqlite 🧠 person non_unique 1000 100 46.8±0.31µs 47.0±0.92µs 20.8 Ktx/sec 20.8 Ktx/sec
sqlite 🧠 person unique 0 100 44.7±0.69µs 44.0±0.34µs 21.9 Ktx/sec 22.2 Ktx/sec
sqlite 🧠 person unique 1000 100 49.0±0.28µs 49.3±0.67µs 19.9 Ktx/sec 19.8 Ktx/sec
stdb_module 💿 location multi_index 0 100 692.4±84.76µs 746.0±104.64µs 1444 tx/sec 1340 tx/sec
stdb_module 💿 location multi_index 1000 100 845.5±73.36µs 967.0±114.35µs 1182 tx/sec 1034 tx/sec
stdb_module 💿 location non_unique 0 100 426.5±25.59µs 456.0±18.27µs 2.3 Ktx/sec 2.1 Ktx/sec
stdb_module 💿 location non_unique 1000 100 834.9±1740.48µs 467.5±32.52µs 1197 tx/sec 2.1 Ktx/sec
stdb_module 💿 location unique 0 100 608.5±37.16µs 643.6±200.74µs 1643 tx/sec 1553 tx/sec
stdb_module 💿 location unique 1000 100 725.7±106.26µs 718.8±53.73µs 1378 tx/sec 1391 tx/sec
stdb_module 💿 person multi_index 0 100 978.8±57.74µs 941.2±35.14µs 1021 tx/sec 1062 tx/sec
stdb_module 💿 person multi_index 1000 100 1133.8±48.22µs 1069.2±71.59µs 881 tx/sec 935 tx/sec
stdb_module 💿 person non_unique 0 100 545.4±119.78µs 593.8±118.19µs 1833 tx/sec 1684 tx/sec
stdb_module 💿 person non_unique 1000 100 981.6±72.14µs 597.0±121.43µs 1018 tx/sec 1674 tx/sec
stdb_module 💿 person unique 0 100 756.8±13.01µs 690.3±81.12µs 1321 tx/sec 1448 tx/sec
stdb_module 💿 person unique 1000 100 957.1±81.69µs 740.6±45.56µs 1044 tx/sec 1350 tx/sec
stdb_module 🧠 location multi_index 0 100 780.0±8.48µs 591.1±81.20µs 1282 tx/sec 1691 tx/sec
stdb_module 🧠 location multi_index 1000 100 962.0±35.06µs 751.7±63.83µs 1039 tx/sec 1330 tx/sec
stdb_module 🧠 location non_unique 0 100 351.3±40.03µs 273.4±39.73µs 2.8 Ktx/sec 3.6 Ktx/sec
stdb_module 🧠 location non_unique 1000 100 388.4±25.08µs 509.9±24.78µs 2.5 Ktx/sec 1961 tx/sec
stdb_module 🧠 location unique 0 100 494.9±54.54µs 430.0±32.46µs 2020 tx/sec 2.3 Ktx/sec
stdb_module 🧠 location unique 1000 100 542.5±30.60µs 429.3±85.74µs 1843 tx/sec 2.3 Ktx/sec
stdb_module 🧠 person multi_index 0 100 930.1±2.94µs 921.4±3.12µs 1075 tx/sec 1085 tx/sec
stdb_module 🧠 person multi_index 1000 100 1010.2±42.61µs 874.6±43.68µs 989 tx/sec 1143 tx/sec
stdb_module 🧠 person non_unique 0 100 423.5±83.94µs 336.9±46.53µs 2.3 Ktx/sec 2.9 Ktx/sec
stdb_module 🧠 person non_unique 1000 100 458.1±69.02µs 439.6±38.15µs 2.1 Ktx/sec 2.2 Ktx/sec
stdb_module 🧠 person unique 0 100 621.8±7.51µs 546.4±26.17µs 1608 tx/sec 1830 tx/sec
stdb_module 🧠 person unique 1000 100 751.1±37.01µs 605.0±64.67µs 1331 tx/sec 1652 tx/sec
stdb_raw 💿 location multi_index 0 100 342.8±8.67µs 337.9±0.49µs 2.8 Ktx/sec 2.9 Ktx/sec
stdb_raw 💿 location multi_index 1000 100 366.5±1.29µs 385.4±215.32µs 2.7 Ktx/sec 2.5 Ktx/sec
stdb_raw 💿 location non_unique 0 100 118.9±1.23µs 118.7±0.17µs 8.2 Ktx/sec 8.2 Ktx/sec
stdb_raw 💿 location non_unique 1000 100 129.7±84.61µs 120.7±0.96µs 7.5 Ktx/sec 8.1 Ktx/sec
stdb_raw 💿 location unique 0 100 241.9±0.44µs 242.4±6.14µs 4.0 Ktx/sec 4.0 Ktx/sec
stdb_raw 💿 location unique 1000 100 274.6±150.24µs 259.1±1.42µs 3.6 Ktx/sec 3.8 Ktx/sec
stdb_raw 💿 person multi_index 0 100 710.4±3.08µs 710.4±12.46µs 1407 tx/sec 1407 tx/sec
stdb_raw 💿 person multi_index 1000 100 776.7±373.77µs 785.5±484.23µs 1287 tx/sec 1273 tx/sec
stdb_raw 💿 person non_unique 0 100 218.1±0.23µs 217.2±0.67µs 4.5 Ktx/sec 4.5 Ktx/sec
stdb_raw 💿 person non_unique 1000 100 221.0±0.60µs 219.3±0.42µs 4.4 Ktx/sec 4.5 Ktx/sec
stdb_raw 💿 person unique 0 100 429.0±0.38µs 429.2±0.70µs 2.3 Ktx/sec 2.3 Ktx/sec
stdb_raw 💿 person unique 1000 100 445.6±0.75µs 444.5±0.74µs 2.2 Ktx/sec 2.2 Ktx/sec
stdb_raw 🧠 location multi_index 0 100 296.0±2.87µs 293.7±0.44µs 3.3 Ktx/sec 3.3 Ktx/sec
stdb_raw 🧠 location multi_index 1000 100 321.6±0.60µs 319.5±0.47µs 3.0 Ktx/sec 3.1 Ktx/sec
stdb_raw 🧠 location non_unique 0 100 76.5±0.12µs 75.8±0.05µs 12.8 Ktx/sec 12.9 Ktx/sec
stdb_raw 🧠 location non_unique 1000 100 77.8±0.23µs 77.2±0.18µs 12.6 Ktx/sec 12.6 Ktx/sec
stdb_raw 🧠 location unique 0 100 198.0±0.53µs 197.9±0.49µs 4.9 Ktx/sec 4.9 Ktx/sec
stdb_raw 🧠 location unique 1000 100 215.1±0.26µs 215.5±0.41µs 4.5 Ktx/sec 4.5 Ktx/sec
stdb_raw 🧠 person multi_index 0 100 619.6±3.53µs 616.2±1.76µs 1613 tx/sec 1622 tx/sec
stdb_raw 🧠 person multi_index 1000 100 648.7±0.66µs 645.4±3.27µs 1541 tx/sec 1549 tx/sec
stdb_raw 🧠 person non_unique 0 100 128.5±0.12µs 127.2±0.10µs 7.6 Ktx/sec 7.7 Ktx/sec
stdb_raw 🧠 person non_unique 1000 100 130.5±0.24µs 129.3±0.36µs 7.5 Ktx/sec 7.6 Ktx/sec
stdb_raw 🧠 person unique 0 100 338.1±0.32µs 336.9±0.63µs 2.9 Ktx/sec 2.9 Ktx/sec
stdb_raw 🧠 person unique 1000 100 355.6±0.62µs 353.5±0.57µ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 9.0±0.06µs 9.4±0.16µs 108.3 Ktx/sec 103.5 Ktx/sec
sqlite 💿 person unique 9.6±0.09µs 10.1±0.12µs 101.8 Ktx/sec 96.8 Ktx/sec
sqlite 🧠 location unique 7.8±0.06µs 8.3±0.18µs 125.5 Ktx/sec 117.9 Ktx/sec
sqlite 🧠 person unique 8.3±0.08µs 8.7±0.11µs 117.9 Ktx/sec 111.9 Ktx/sec
stdb_module 💿 location unique 48.4±5.14µs 46.8±5.68µs 20.2 Ktx/sec 20.9 Ktx/sec
stdb_module 💿 person unique 57.8±10.12µs 53.2±9.16µs 16.9 Ktx/sec 18.4 Ktx/sec
stdb_module 🧠 location unique 47.7±4.74µs 48.7±4.15µs 20.5 Ktx/sec 20.1 Ktx/sec
stdb_module 🧠 person unique 62.0±5.95µs 52.5±10.04µs 15.7 Ktx/sec 18.6 Ktx/sec
stdb_raw 💿 location unique 9.0±0.01µs 9.0±0.01µs 108.5 Ktx/sec 108.6 Ktx/sec
stdb_raw 💿 person unique 9.0±0.02µs 9.0±0.24µs 108.5 Ktx/sec 107.9 Ktx/sec
stdb_raw 🧠 location unique 9.0±0.02µs 9.0±0.10µs 109.1 Ktx/sec 109.1 Ktx/sec
stdb_raw 🧠 person unique 8.9±0.02µs 8.9±0.01µs 109.2 Ktx/sec 109.1 Ktx/sec

Find unique key

db on disk key type load new latency old latency new throughput old throughput
sqlite 💿 u32 1000 2.3±0.01µs 2.4±0.01µs 417.0 Ktx/sec 415.2 Ktx/sec
sqlite 🧠 u32 1000 1132.6±9.66ns 1144.6±5.95ns 862.3 Ktx/sec 853.2 Ktx/sec
stdb_module 💿 u32 1000 23.9±1.69µs 24.2±2.24µs 40.8 Ktx/sec 40.3 Ktx/sec
stdb_module 🧠 u32 1000 26.6±2.21µs 25.2±2.01µs 36.7 Ktx/sec 38.7 Ktx/sec
stdb_raw 💿 u32 1000 1955.7±7.04ns 1952.7±5.27ns 499.3 Ktx/sec 500.1 Ktx/sec
stdb_raw 🧠 u32 1000 1885.3±4.38ns 1888.2±3.34ns 518.0 Ktx/sec 517.2 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.6±0.02µs 5.7±0.02µs 174.0 Ktx/sec 172.8 Ktx/sec
sqlite 💿 string non_indexed 1000 10 54.0±0.23µs 55.2±0.48µs 18.1 Ktx/sec 17.7 Ktx/sec
sqlite 💿 u64 indexed 1000 10 5.5±0.02µs 5.4±0.01µs 178.8 Ktx/sec 179.5 Ktx/sec
sqlite 💿 u64 non_indexed 1000 10 33.9±0.26µs 34.1±0.14µs 28.8 Ktx/sec 28.6 Ktx/sec
sqlite 🧠 string indexed 1000 10 4.2±0.02µs 4.3±0.02µs 231.7 Ktx/sec 229.7 Ktx/sec
sqlite 🧠 string non_indexed 1000 10 52.6±0.27µs 53.8±0.46µs 18.6 Ktx/sec 18.2 Ktx/sec
sqlite 🧠 u64 indexed 1000 10 4.0±0.03µs 4.0±0.02µs 244.3 Ktx/sec 241.3 Ktx/sec
sqlite 🧠 u64 non_indexed 1000 10 32.6±0.20µs 32.8±0.08µs 29.9 Ktx/sec 29.7 Ktx/sec
stdb_module 💿 string indexed 1000 10 35.0±2.30µs 35.0±2.03µs 27.9 Ktx/sec 27.9 Ktx/sec
stdb_module 💿 string non_indexed 1000 10 168.3±1.17µs 177.9±5.84µs 5.8 Ktx/sec 5.5 Ktx/sec
stdb_module 💿 u64 indexed 1000 10 31.8±3.31µs 32.8±2.60µs 30.7 Ktx/sec 29.8 Ktx/sec
stdb_module 💿 u64 non_indexed 1000 10 150.4±7.48µs 140.4±1.80µs 6.5 Ktx/sec 7.0 Ktx/sec
stdb_module 🧠 string indexed 1000 10 34.7±2.26µs 36.7±2.61µs 28.1 Ktx/sec 26.6 Ktx/sec
stdb_module 🧠 string non_indexed 1000 10 170.3±4.30µs 166.9±1.17µs 5.7 Ktx/sec 5.9 Ktx/sec
stdb_module 🧠 u64 indexed 1000 10 32.2±2.78µs 30.7±3.24µs 30.3 Ktx/sec 31.8 Ktx/sec
stdb_module 🧠 u64 non_indexed 1000 10 143.0±1.20µs 139.3±1.45µs 6.8 Ktx/sec 7.0 Ktx/sec
stdb_raw 💿 string indexed 1000 10 4.4±0.01µs 4.4±0.01µs 223.1 Ktx/sec 223.5 Ktx/sec
stdb_raw 💿 string non_indexed 1000 10 154.7±0.43µs 148.8±0.56µs 6.3 Ktx/sec 6.6 Ktx/sec
stdb_raw 💿 u64 indexed 1000 10 4.2±0.02µs 4.2±0.05µs 231.7 Ktx/sec 232.4 Ktx/sec
stdb_raw 💿 u64 non_indexed 1000 10 130.9±0.21µs 125.3±0.17µs 7.5 Ktx/sec 7.8 Ktx/sec
stdb_raw 🧠 string indexed 1000 10 4.3±0.01µs 4.3±0.01µs 227.2 Ktx/sec 226.6 Ktx/sec
stdb_raw 🧠 string non_indexed 1000 10 153.3±0.41µs 145.4±0.49µs 6.4 Ktx/sec 6.7 Ktx/sec
stdb_raw 🧠 u64 indexed 1000 10 4.1±0.01µs 4.1±0.01µs 237.0 Ktx/sec 236.3 Ktx/sec
stdb_raw 🧠 u64 non_indexed 1000 10 131.1±0.34µs 124.2±0.43µs 7.4 Ktx/sec 7.9 Ktx/sec

Serialize

schema format count new latency old latency new throughput old throughput
location bsatn 100 1595.9±4.02ns 1590.6±1.92ns 59.8 Mtx/sec 60.0 Mtx/sec
location json 100 3.3±0.04µs 3.7±0.04µs 29.1 Mtx/sec 26.0 Mtx/sec
location product_value 100 552.2±0.84ns 551.5±0.57ns 172.7 Mtx/sec 172.9 Mtx/sec
person bsatn 100 2.4±0.05µs 2.4±0.03µs 40.0 Mtx/sec 39.7 Mtx/sec
person json 100 5.4±0.03µs 5.3±0.04µs 17.7 Mtx/sec 18.0 Mtx/sec
person product_value 100 1029.4±0.89ns 1028.4±1.77ns 92.6 Mtx/sec 92.7 Mtx/sec

Module: invoke with large arguments

arg size new latency old latency new throughput old throughput
64KiB 67.2±7.54µs 62.8±8.72µs - -

Module: print bulk

line count new latency old latency new throughput old throughput
1 21.9±0.97µs 22.2±1.10µs - -
100 188.9±4.26µs 189.4±1.73µs - -
1000 1776.5±98.21µs 1803.7±511.06µs - -

Remaining benchmarks

name new latency old latency new throughput old throughput

Please sign in to comment.