You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -77,27 +77,30 @@ Two SQLite configurations are shown to keep the comparison fair:
77
77
<details>
78
78
<summary>Raw BenchmarkDotNet results</summary>
79
79
80
-
1 op = 1000 queries for point lookup, 100 queries for range scan and count. The `Parallel` variants run 8 threads of 1000 queries each: `ParallelSpread` reads spread-out keys (the realistic shape), `Parallel` hammers a single key (worst case for page refcount contention). `RandomKeys` defeats the branch predictor with a pseudo-random key sequence. `OpenAndFirstRead` opens the database file and runs one query.
81
-
82
-
| Type | Method | Mean | Error | StdDev | Allocated |
| ReadBenchmark | DryDB_FindByKey | 24.80 us | 2.017 us | 1.334 us | - |
85
-
| ReadBenchmark | DryDB_FindByKeyAsync | 27.81 us | 0.591 us | 0.391 us | - |
86
-
| ReadBenchmark | DryDB_FindByKey_RandomKeys | 43.37 us | 2.248 us | 1.176 us | - |
87
-
| ReadBenchmark | DryDB_FindByKey_ParallelSpread | 213.66 us | 3.046 us | 1.812 us | 1550 B |
88
-
| ReadBenchmark | DryDB_FindByKey_Parallel | 885.10 us | 20.434 us | 13.516 us | 1296 B |
89
-
| ReadBenchmark | RocksDB_FindByKey | 239.35 us | 8.747 us | 5.205 us | 40032 B |
90
-
| ReadBenchmark | CsSqlite_FindByKey_Fair | 708.89 us | 8.700 us | 4.550 us | 48000 B |
91
-
| ReadBenchmark | CsSqlite_FindByKey | 5,412.34 us | 124.296 us | 73.967 us | 48000 B |
92
-
| RangeBenchmark | DryDB_GetRange | 50.36 us | 3.490 us | 2.308 us | - |
93
-
| RangeBenchmark | CsSqlite_GetRange_Fair | 597.25 us | 20.959 us | 13.863 us | 480000 B |
94
-
| RangeBenchmark | RocksDB_GetRange | 1,026.97 us | 47.101 us | 28.029 us | 726432 B |
95
-
| RangeBenchmark | CsSqlite_GetRange | 1,051.58 us | 35.486 us | 18.560 us | 480000 B |
96
-
| CountBenchmark | DryDB_CountRange | 112.00 us | 2.285 us | 1.511 us | - |
97
-
| CountBenchmark | CsSqlite_CountRange_Fair | 9,253.18 us | 352.778 us | 233.341 us | - |
98
-
| CountBenchmark | CsSqlite_CountRange | 9,566.06 us | 204.066 us | 106.731 us | - |
99
-
| CountBenchmark | RocksDB_CountRange | 63,871.91 us | 1,284.642 us | 849.711 us | 25606432 B |
100
-
| OpenBenchmark | DryDB_OpenAndFirstRead | 133.34 us | 6.287 us | 3.741 us | 639292 B |
80
+
Each benchmark class is measured in its own run. 1 op = 1000 queries for point lookup, 100 queries for range scan and count. The `Parallel` variants run 8 threads of 1000 queries each: `ParallelSpread` reads spread-out keys (the realistic shape), `Parallel` hammers a single key (worst case for page refcount contention). `RandomKeys` defeats the branch predictor with a pseudo-random key sequence. `OpenAndFirstRead` opens the database file and runs one query. The `1M` variants read a 1,000,000-row (~45 MB) table where the working set no longer fits in the CPU cache.
81
+
82
+
| Type | Method | Mean | Error | StdDev | Allocated |
0 commit comments