toeverything / OctoBase

🐙 OctoBase is the open-source database behind AFFiNE, local-first, yet collaborative. A light-weight, scalable, data engine written in Rust.
https://octobase.dev
GNU Affero General Public License v3.0
1.37k stars 90 forks source link

perf: avoid select all field when list blob keys #558

Closed forehalo closed 11 months ago

vercel[bot] commented 11 months ago

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
octobase ✅ Ready (Inspect) Visit Preview 💬 Add feedback Nov 9, 2023 10:29am
github-actions[bot] commented 11 months ago

Benchmark for Linux

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 395.5±24.83µs | 398.9±12.35µs | +0.86% | | codec/jwst decode var_uint (32 bit) | 344.0±14.67µs | 354.0±13.24µs | +2.91% | | codec/jwst decode var_uint (64 bit) | 342.0±11.92µs | 353.4±13.22µs | **+3.33%** | | codec/jwst encode var_int (32 bit) | 511.8±26.01µs | 513.1±15.04µs | +0.25% | | codec/jwst encode var_uint (32 bit) | 343.4±20.34µs | 347.7±11.98µs | +1.25% | | codec/jwst encode var_uint (64 bit) | 333.5±20.56µs | 350.4±27.47µs | +5.07% | | codec/lib0 decode var_int (64 bit) | 346.3±17.41µs | 359.5±14.42µs | +3.81% | | codec/lib0 decode var_uint (32 bit) | 289.0±9.98µs | 310.9±11.69µs | **+7.58%** | | codec/lib0 decode var_uint (64 bit) | 290.3±15.29µs | 312.0±10.74µs | **+7.48%** | | codec/lib0 encode var_int (64 bit) | 503.1±24.97µs | 518.5±19.15µs | +3.06% | | codec/lib0 encode var_uint (32 bit) | 325.8±20.17µs | 353.7±16.59µs | **+8.56%** | | codec/lib0 encode var_uint (64 bit) | 326.3±16.61µs | 351.6±12.85µs | **+7.75%** | | ops/array/jwst/insert | 307.9±15.03µs | 324.4±8.56µs | **+5.36%** | | ops/array/jwst/insert range | 436.2±33.82µs | 458.8±23.40µs | +5.18% | | ops/array/jwst/remove | 188.3±8.92µs | 201.1±5.16µs | **+6.80%** | | ops/array/yrs/insert | 87.3±3.55µs | 92.5±4.42µs | **+5.96%** | | ops/array/yrs/insert range | 122.2±6.96µs | 130.8±2.50µs | **+7.04%** | | ops/array/yrs/remove | 113.2±6.78µs | 123.2±3.56µs | **+8.83%** | | ops/map/jwst/get | 544.2±24.20ns | 555.3±19.94ns | +2.04% | | ops/map/jwst/insert | 6.9±0.33µs | 7.2±0.16µs | **+4.35%** | | ops/map/jwst/remove | 9.2±0.31µs | 9.0±0.26µs | **-2.17%** | | ops/map/yrs/get | 404.1±9.94ns | 386.5±16.76ns | **-4.36%** | | ops/map/yrs/insert | 6.1±0.21µs | 5.7±0.22µs | **-6.56%** | | ops/map/yrs/remove | 8.2±0.19µs | 7.8±0.54µs | **-4.88%** | | ops/text/jwst/insert | 166.6±5.23µs | 159.4±6.77µs | **-4.32%** | | ops/text/jwst/remove | 4.3±0.22µs | 4.0±0.15µs | **-6.98%** | | ops/text/yrs/insert | 46.0±1.05µs | 44.4±1.74µs | **-3.48%** | | ops/text/yrs/remove | 2.9±0.11µs | 2.7±0.11µs | **-6.90%** | | update/parse with jwst/basic.bin | 73.3±1.79µs | 70.8±2.39µs | **-3.41%** | | update/parse with jwst/database.bin | 58.5±1.71µs | 58.4±2.50µs | -0.17% | | update/parse with jwst/large.bin | 3.1±0.11ms | 3.0±0.15ms | **-3.23%** | | update/parse with jwst/with-subdoc.bin | 10.0±0.26µs | 9.6±0.41µs | **-4.00%** | | update/parse with yrs/basic.bin | 56.8±1.50µs | 54.5±2.32µs | **-4.05%** | | update/parse with yrs/database.bin | 46.1±1.31µs | 42.7±1.67µs | **-7.38%** | | update/parse with yrs/large.bin | 2.1±0.06ms | 2.1±0.09ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 6.9±0.21µs | 7.9±0.30µs | **+14.49%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.1±1.29µs | 212.7±1.00µs | -0.19% | | codec/jwst decode var_uint (32 bit) | 184.8±2.85µs | 186.7±5.54µs | +1.03% | | codec/jwst decode var_uint (64 bit) | 196.2±3.17µs | 196.7±4.71µs | +0.25% | | codec/jwst encode var_int (32 bit) | 275.9±5.09µs | 274.4±5.05µs | -0.54% | | codec/jwst encode var_uint (32 bit) | 267.4±4.88µs | 252.4±4.36µs | **-5.61%** | | codec/jwst encode var_uint (64 bit) | 262.3±4.89µs | 247.8±3.31µs | **-5.53%** | | codec/lib0 decode var_int (64 bit) | 192.7±7.77µs | 193.1±8.06µs | +0.21% | | codec/lib0 decode var_uint (32 bit) | 158.0±6.89µs | 158.2±5.72µs | +0.13% | | codec/lib0 decode var_uint (64 bit) | 156.1±5.22µs | 157.8±7.11µs | +1.09% | | codec/lib0 encode var_int (64 bit) | 385.1±3.39µs | 385.2±1.77µs | +0.03% | | codec/lib0 encode var_uint (32 bit) | 373.5±1.11µs | 384.4±3.49µs | **+2.92%** | | codec/lib0 encode var_uint (64 bit) | 374.0±2.98µs | 380.1±2.34µs | **+1.63%** | | ops/array/jwst/insert | 143.5±2.31µs | 150.6±1.35µs | **+4.95%** | | ops/array/jwst/insert range | 204.7±1.46µs | 194.8±1.05µs | **-4.84%** | | ops/array/jwst/remove | 78.3±1.98µs | 81.5±1.31µs | **+4.09%** | | ops/array/yrs/insert | 67.8±0.61µs | 71.1±0.54µs | **+4.87%** | | ops/array/yrs/insert range | 95.1±0.82µs | 96.3±0.53µs | **+1.26%** | | ops/array/yrs/remove | 100.1±0.37µs | 102.1±0.72µs | **+2.00%** | | ops/map/jwst/get | 376.4±2.71ns | 376.8±3.00ns | +0.11% | | ops/map/jwst/insert | 6.5±0.24µs | 7.5±0.05µs | **+15.38%** | | ops/map/jwst/remove | 6.2±0.02µs | 6.7±0.02µs | **+8.06%** | | ops/map/yrs/get | 276.7±5.99ns | 274.0±3.66ns | -0.98% | | ops/map/yrs/insert | 5.7±0.02µs | 6.3±0.03µs | **+10.53%** | | ops/map/yrs/remove | 6.9±0.02µs | 7.3±0.02µs | **+5.80%** | | ops/text/jwst/insert | 90.0±0.91µs | 90.5±1.38µs | **+0.56%** | | ops/text/jwst/remove | 2.6±0.04µs | 2.5±0.01µs | **-3.85%** | | ops/text/yrs/insert | 32.3±0.33µs | 32.0±0.23µs | **-0.93%** | | ops/text/yrs/remove | 2.5±0.01µs | 2.5±0.01µs | -0.00% | | update/parse with jwst/basic.bin | 53.9±0.75µs | 53.6±0.34µs | **-0.56%** | | update/parse with jwst/database.bin | 41.4±3.36µs | 42.7±0.23µs | **+3.14%** | | update/parse with jwst/large.bin | 2.6±0.08ms | 2.6±0.04ms | -0.00% | | update/parse with jwst/with-subdoc.bin | 7.7±0.04µs | 7.8±0.19µs | **+1.30%** | | update/parse with yrs/basic.bin | 45.7±0.30µs | 44.2±0.28µs | **-3.28%** | | update/parse with yrs/database.bin | 34.7±0.26µs | 35.5±0.29µs | **+2.31%** | | update/parse with yrs/large.bin | 2.1±0.06ms | 2.2±0.09ms | **+4.76%** | | update/parse with yrs/with-subdoc.bin | 7.4±0.06µs | 7.4±0.05µs | -0.00% |