y-crdt / y-octo

CRDT implementation which is compatible with https://github.com/yjs/yjs
https://octobase.pro/
Other
187 stars 5 forks source link

refactor: decoder accept `&[u8]` as input #35

Closed forehalo closed 8 months ago

github-actions[bot] commented 8 months ago

Benchmark for Linux

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.0±0.64µs | 213.3±1.63µs | **+0.14%** | | codec/jwst decode var_uint (32 bit) | 178.2±0.46µs | 178.5±2.72µs | **+0.17%** | | codec/jwst decode var_uint (64 bit) | 182.6±15.38µs | 180.4±0.88µs | **-1.20%** | | codec/jwst encode var_int (32 bit) | 305.0±7.30µs | 302.3±1.22µs | **-0.89%** | | codec/jwst encode var_uint (32 bit) | 252.2±2.06µs | 252.8±3.39µs | +0.24% | | codec/jwst encode var_uint (64 bit) | 252.3±2.21µs | 252.6±3.47µs | +0.12% | | codec/lib0 decode var_int (64 bit) | 185.6±2.63µs | 186.1±2.51µs | +0.27% | | codec/lib0 decode var_uint (32 bit) | 160.1±11.98µs | 155.0±2.50µs | **-3.19%** | | codec/lib0 decode var_uint (64 bit) | 153.4±2.84µs | 153.9±2.89µs | +0.33% | | codec/lib0 encode var_int (64 bit) | 384.6±5.21µs | 384.9±7.37µs | +0.08% | | codec/lib0 encode var_uint (32 bit) | 375.7±14.91µs | 373.0±1.00µs | **-0.72%** | | codec/lib0 encode var_uint (64 bit) | 373.4±2.71µs | 373.0±1.29µs | -0.11% | | ops/array/jwst/insert | 109.9±0.33µs | 105.9±0.85µs | **-3.64%** | | ops/array/jwst/insert range | 159.6±0.36µs | 156.7±0.43µs | **-1.82%** | | ops/array/jwst/remove | 62.5±0.22µs | 61.4±0.11µs | **-1.76%** | | ops/array/yrs/insert | 58.2±0.55µs | 51.8±0.38µs | **-11.00%** | | ops/array/yrs/insert range | 75.1±0.41µs | 74.8±0.36µs | **-0.40%** | | ops/array/yrs/remove | 65.5±1.03µs | 66.8±0.63µs | **+1.98%** | | ops/map/jwst/get | 205.0±2.46ns | 207.4±1.67ns | **+1.17%** | | ops/map/jwst/insert | 2.9±0.03µs | 2.9±0.01µs | -0.00% | | ops/map/jwst/remove | 4.3±0.02µs | 4.4±0.03µs | **+2.33%** | | ops/map/yrs/get | 261.8±1.54ns | 259.0±1.36ns | **-1.07%** | | ops/map/yrs/insert | 3.9±0.02µs | 3.9±0.04µs | -0.00% | | ops/map/yrs/remove | 5.0±0.03µs | 5.0±0.02µs | -0.00% | | ops/text/jwst/insert | 66.9±0.48µs | 68.3±0.40µs | **+2.09%** | | ops/text/jwst/remove | 1392.3±7.22ns | 1404.9±9.71ns | **+0.90%** | | ops/text/yrs/insert | 26.9±0.33µs | 27.1±0.09µs | **+0.74%** | | ops/text/yrs/remove | 1682.6±9.32ns | 1736.1±14.44ns | **+3.18%** | | update/parse with jwst/basic.bin | 36.5±0.26µs | 38.7±0.10µs | **+6.03%** | | update/parse with jwst/database.bin | 28.4±0.29µs | 29.7±0.21µs | **+4.58%** | | update/parse with jwst/large.bin | 3.6±0.03ms | 3.3±0.03ms | **-8.33%** | | update/parse with jwst/with-subdoc.bin | 4.6±0.02µs | 4.7±0.02µs | **+2.17%** | | update/parse with yrs/basic.bin | 29.8±0.18µs | 30.3±0.18µs | **+1.68%** | | update/parse with yrs/database.bin | 23.0±0.16µs | 23.6±0.19µs | **+2.61%** | | update/parse with yrs/large.bin | 2.4±0.01ms | 2.4±0.02ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 3.8±0.09µs | 4.6±0.03µs | **+21.05%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 214.7±8.65µs | 212.5±1.04µs | **-1.02%** | | codec/jwst decode var_uint (32 bit) | 181.1±4.97µs | 180.5±3.43µs | -0.33% | | codec/jwst decode var_uint (64 bit) | 195.7±3.63µs | 195.0±3.15µs | -0.36% | | codec/jwst encode var_int (32 bit) | 303.9±3.80µs | 302.5±1.20µs | **-0.46%** | | codec/jwst encode var_uint (32 bit) | 273.3±3.61µs | 269.3±2.31µs | **-1.46%** | | codec/jwst encode var_uint (64 bit) | 268.4±2.98µs | 267.6±4.08µs | -0.30% | | codec/lib0 decode var_int (64 bit) | 189.0±6.11µs | 190.1±7.60µs | +0.58% | | codec/lib0 decode var_uint (32 bit) | 156.3±8.72µs | 157.6±9.34µs | +0.83% | | codec/lib0 decode var_uint (64 bit) | 157.7±6.22µs | 157.6±5.35µs | -0.06% | | codec/lib0 encode var_int (64 bit) | 385.7±1.25µs | 384.5±2.09µs | **-0.31%** | | codec/lib0 encode var_uint (32 bit) | 374.7±4.40µs | 374.3±2.15µs | -0.11% | | codec/lib0 encode var_uint (64 bit) | 374.3±1.44µs | 385.4±1.97µs | **+2.97%** | | ops/array/jwst/insert | 124.2±0.92µs | 125.3±0.78µs | **+0.89%** | | ops/array/jwst/insert range | 182.2±1.08µs | 180.5±0.50µs | **-0.93%** | | ops/array/jwst/remove | 69.0±0.27µs | 65.9±0.13µs | **-4.49%** | | ops/array/yrs/insert | 75.8±0.51µs | 73.9±1.27µs | **-2.51%** | | ops/array/yrs/insert range | 99.2±0.69µs | 99.5±0.35µs | **+0.30%** | | ops/array/yrs/remove | 105.7±1.74µs | 104.3±0.94µs | **-1.32%** | | ops/map/jwst/get | 265.0±2.32ns | 259.2±2.70ns | **-2.19%** | | ops/map/jwst/insert | 5.0±0.04µs | 4.7±0.02µs | **-6.00%** | | ops/map/jwst/remove | 6.8±0.02µs | 6.9±0.13µs | **+1.47%** | | ops/map/yrs/get | 269.5±4.46ns | 276.6±4.98ns | **+2.63%** | | ops/map/yrs/insert | 5.7±0.03µs | 5.8±0.04µs | **+1.75%** | | ops/map/yrs/remove | 6.9±0.04µs | 7.3±0.02µs | **+5.80%** | | ops/text/jwst/insert | 83.6±0.68µs | 85.4±0.48µs | **+2.15%** | | ops/text/jwst/remove | 2.2±0.02µs | 2.2±0.01µs | -0.00% | | ops/text/yrs/insert | 33.5±0.27µs | 32.9±0.27µs | **-1.79%** | | ops/text/yrs/remove | 2.5±0.02µs | 2.5±0.02µs | -0.00% | | update/parse with jwst/basic.bin | 52.4±0.47µs | 56.7±0.82µs | **+8.21%** | | update/parse with jwst/database.bin | 42.4±0.35µs | 46.6±0.22µs | **+9.91%** | | update/parse with jwst/large.bin | 2.6±0.09ms | 2.8±0.09ms | **+7.69%** | | update/parse with jwst/with-subdoc.bin | 8.2±0.08µs | 8.0±0.03µs | **-2.44%** | | update/parse with yrs/basic.bin | 43.3±0.55µs | 43.9±0.53µs | **+1.39%** | | update/parse with yrs/database.bin | 34.7±0.12µs | 33.5±0.56µs | **-3.46%** | | update/parse with yrs/large.bin | 2.2±0.08ms | 2.0±0.05ms | **-9.09%** | | update/parse with yrs/with-subdoc.bin | 7.2±0.06µs | 6.7±0.05µs | **-6.94%** |
Brooooooklyn commented 8 months ago

Since we introduce the zero copy parse here, We can use https://github.com/fitzgen/bumpalo for further optimization in the future.

codecov-commenter commented 8 months ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (d29799a) 78.32% compared to head (602c0b4) 36.92%. Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #35 +/- ## =========================================== - Coverage 78.32% 36.92% -41.41% =========================================== Files 50 1 -49 Lines 7682 260 -7422 =========================================== - Hits 6017 96 -5921 + Misses 1665 164 -1501 ``` | [Flag](https://app.codecov.io/gh/y-crdt/y-octo/pull/35/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) | Coverage Δ | | |---|---|---| | [node-binding-test](https://app.codecov.io/gh/y-crdt/y-octo/pull/35/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None) | `36.92% <ø> (ø)` | | Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=None#carryforward-flags-in-the-pull-request-comment) to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

github-actions[bot] commented 8 months ago

Benchmark for Linux

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.0±0.90µs | 213.0±0.69µs | -0.00% | | codec/jwst decode var_uint (32 bit) | 178.4±1.29µs | 178.1±0.47µs | **-0.17%** | | codec/jwst decode var_uint (64 bit) | 180.4±0.77µs | 180.6±0.96µs | **+0.11%** | | codec/jwst encode var_int (32 bit) | 302.6±1.19µs | 302.8±1.66µs | +0.07% | | codec/jwst encode var_uint (32 bit) | 253.6±5.47µs | 251.7±3.77µs | -0.75% | | codec/jwst encode var_uint (64 bit) | 252.4±3.36µs | 251.3±3.61µs | -0.44% | | codec/lib0 decode var_int (64 bit) | 188.1±8.66µs | 186.5±5.57µs | -0.85% | | codec/lib0 decode var_uint (32 bit) | 155.5±2.82µs | 154.2±4.00µs | -0.84% | | codec/lib0 decode var_uint (64 bit) | 152.7±1.18µs | 153.6±3.21µs | +0.59% | | codec/lib0 encode var_int (64 bit) | 384.4±2.02µs | 384.4±3.84µs | -0.00% | | codec/lib0 encode var_uint (32 bit) | 373.9±3.45µs | 373.0±0.52µs | **-0.24%** | | codec/lib0 encode var_uint (64 bit) | 373.6±3.25µs | 373.1±0.78µs | **-0.13%** | | ops/array/jwst/insert | 104.9±0.92µs | 104.3±0.35µs | **-0.57%** | | ops/array/jwst/insert range | 156.9±2.61µs | 156.9±0.47µs | -0.00% | | ops/array/jwst/remove | 60.8±0.12µs | 62.4±0.20µs | **+2.63%** | | ops/array/yrs/insert | 58.5±0.81µs | 58.2±0.27µs | **-0.51%** | | ops/array/yrs/insert range | 75.7±1.20µs | 75.2±0.55µs | **-0.66%** | | ops/array/yrs/remove | 66.1±0.81µs | 63.1±0.70µs | **-4.54%** | | ops/map/jwst/get | 208.6±1.12ns | 207.3±1.29ns | **-0.62%** | | ops/map/jwst/insert | 3.2±0.04µs | 3.0±0.03µs | **-6.25%** | | ops/map/jwst/remove | 4.8±0.01µs | 4.6±0.10µs | **-4.17%** | | ops/map/yrs/get | 258.3±2.03ns | 265.9±1.56ns | **+2.94%** | | ops/map/yrs/insert | 3.9±0.04µs | 3.9±0.04µs | -0.00% | | ops/map/yrs/remove | 5.0±0.03µs | 5.0±0.01µs | -0.00% | | ops/text/jwst/insert | 69.4±0.76µs | 67.3±0.48µs | **-3.03%** | | ops/text/jwst/remove | 1366.1±8.36ns | 1366.6±14.77ns | +0.04% | | ops/text/yrs/insert | 26.9±0.28µs | 26.9±0.16µs | -0.00% | | ops/text/yrs/remove | 1760.6±17.04ns | 1777.0±21.64ns | +0.93% | | update/parse with jwst/basic.bin | 38.9±0.19µs | 44.5±0.22µs | **+14.40%** | | update/parse with jwst/database.bin | 28.6±0.20µs | 34.2±0.28µs | **+19.58%** | | update/parse with jwst/large.bin | 3.4±0.02ms | 3.5±0.03ms | **+2.94%** | | update/parse with jwst/with-subdoc.bin | 4.7±0.06µs | 5.6±0.04µs | **+19.15%** | | update/parse with yrs/basic.bin | 30.2±0.13µs | 30.4±0.09µs | **+0.66%** | | update/parse with yrs/database.bin | 23.0±0.14µs | 23.7±0.68µs | **+3.04%** | | update/parse with yrs/large.bin | 2.4±0.02ms | 2.4±0.06ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 3.8±0.02µs | 4.1±0.03µs | **+7.89%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.1±1.06µs | 212.6±1.59µs | -0.23% | | codec/jwst decode var_uint (32 bit) | 181.5±4.27µs | 180.4±3.59µs | -0.61% | | codec/jwst decode var_uint (64 bit) | 193.9±2.04µs | 195.4±3.42µs | +0.77% | | codec/jwst encode var_int (32 bit) | 303.2±2.80µs | 304.3±6.41µs | +0.36% | | codec/jwst encode var_uint (32 bit) | 271.3±3.22µs | 271.0±2.91µs | -0.11% | | codec/jwst encode var_uint (64 bit) | 267.9±2.12µs | 267.2±1.31µs | -0.26% | | codec/lib0 decode var_int (64 bit) | 187.7±5.94µs | 190.9±7.43µs | +1.70% | | codec/lib0 decode var_uint (32 bit) | 157.6±8.30µs | 158.5±8.88µs | +0.57% | | codec/lib0 decode var_uint (64 bit) | 155.5±4.56µs | 152.5±3.68µs | -1.93% | | codec/lib0 encode var_int (64 bit) | 384.7±2.16µs | 386.2±5.12µs | +0.39% | | codec/lib0 encode var_uint (32 bit) | 373.5±1.47µs | 373.2±0.86µs | **-0.08%** | | codec/lib0 encode var_uint (64 bit) | 373.4±1.02µs | 373.3±1.01µs | -0.03% | | ops/array/jwst/insert | 123.6±0.83µs | 122.1±1.40µs | **-1.21%** | | ops/array/jwst/insert range | 178.3±0.65µs | 182.4±0.73µs | **+2.30%** | | ops/array/jwst/remove | 66.9±0.25µs | 65.9±0.18µs | **-1.49%** | | ops/array/yrs/insert | 77.0±0.59µs | 74.4±0.74µs | **-3.38%** | | ops/array/yrs/insert range | 98.5±0.46µs | 99.9±0.74µs | **+1.42%** | | ops/array/yrs/remove | 102.6±0.30µs | 103.1±0.32µs | **+0.49%** | | ops/map/jwst/get | 265.3±2.54ns | 260.0±3.40ns | **-2.00%** | | ops/map/jwst/insert | 5.2±0.03µs | 4.6±0.03µs | **-11.54%** | | ops/map/jwst/remove | 7.0±0.02µs | 6.8±0.04µs | **-2.86%** | | ops/map/yrs/get | 271.6±6.40ns | 271.7±6.33ns | +0.04% | | ops/map/yrs/insert | 5.8±0.05µs | 5.8±0.03µs | -0.00% | | ops/map/yrs/remove | 7.0±0.02µs | 7.4±0.02µs | **+5.71%** | | ops/text/jwst/insert | 83.9±0.82µs | 84.4±0.45µs | **+0.60%** | | ops/text/jwst/remove | 2.2±0.01µs | 2.1±0.01µs | **-4.55%** | | ops/text/yrs/insert | 34.7±0.21µs | 32.9±0.29µs | **-5.19%** | | ops/text/yrs/remove | 2.5±0.02µs | 2.5±0.02µs | -0.00% | | update/parse with jwst/basic.bin | 52.6±0.36µs | 58.4±0.63µs | **+11.03%** | | update/parse with jwst/database.bin | 43.4±0.37µs | 45.1±0.16µs | **+3.92%** | | update/parse with jwst/large.bin | 2.5±0.03ms | 2.7±0.09ms | **+8.00%** | | update/parse with jwst/with-subdoc.bin | 8.0±0.05µs | 8.1±0.06µs | **+1.25%** | | update/parse with yrs/basic.bin | 43.3±0.18µs | 44.4±0.43µs | **+2.54%** | | update/parse with yrs/database.bin | 34.7±0.15µs | 34.4±0.18µs | **-0.86%** | | update/parse with yrs/large.bin | 2.1±0.09ms | 2.0±0.06ms | **-4.76%** | | update/parse with yrs/with-subdoc.bin | 7.0±0.06µs | 7.0±0.05µs | -0.00% |
github-actions[bot] commented 8 months ago

Benchmark for Linux

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.1±0.87µs | 213.2±2.15µs | **+0.05%** | | codec/jwst decode var_uint (32 bit) | 178.0±0.28µs | 178.3±0.55µs | **+0.17%** | | codec/jwst decode var_uint (64 bit) | 180.3±0.73µs | 180.5±0.85µs | **+0.11%** | | codec/jwst encode var_int (32 bit) | 303.4±6.22µs | 302.8±1.81µs | -0.20% | | codec/jwst encode var_uint (32 bit) | 256.5±17.18µs | 250.3±4.24µs | **-2.42%** | | codec/jwst encode var_uint (64 bit) | 252.6±3.81µs | 251.7±3.72µs | -0.36% | | codec/lib0 decode var_int (64 bit) | 185.9±2.34µs | 187.0±4.70µs | +0.59% | | codec/lib0 decode var_uint (32 bit) | 153.8±3.20µs | 180.9±0.68µs | **+17.62%** | | codec/lib0 decode var_uint (64 bit) | 153.6±3.09µs | 153.5±2.96µs | -0.07% | | codec/lib0 encode var_int (64 bit) | 383.9±0.54µs | 384.1±2.84µs | **+0.05%** | | codec/lib0 encode var_uint (32 bit) | 373.0±1.73µs | 372.8±0.49µs | **-0.05%** | | codec/lib0 encode var_uint (64 bit) | 373.0±1.08µs | 372.7±0.23µs | **-0.08%** | | ops/array/jwst/insert | 105.4±0.72µs | 106.2±0.31µs | **+0.76%** | | ops/array/jwst/insert range | 156.5±0.50µs | 159.5±0.88µs | **+1.92%** | | ops/array/jwst/remove | 60.5±0.26µs | 71.0±0.27µs | **+17.36%** | | ops/array/yrs/insert | 57.9±0.43µs | 58.3±0.54µs | **+0.69%** | | ops/array/yrs/insert range | 74.9±0.60µs | 75.2±0.62µs | **+0.40%** | | ops/array/yrs/remove | 63.7±0.78µs | 65.4±0.80µs | **+2.67%** | | ops/map/jwst/get | 205.2±1.48ns | 208.0±1.34ns | **+1.36%** | | ops/map/jwst/insert | 3.1±0.02µs | 3.0±0.03µs | **-3.23%** | | ops/map/jwst/remove | 4.8±0.02µs | 4.4±0.02µs | **-8.33%** | | ops/map/yrs/get | 258.9±2.28ns | 258.8±1.29ns | -0.04% | | ops/map/yrs/insert | 3.9±0.02µs | 3.9±0.04µs | -0.00% | | ops/map/yrs/remove | 5.1±0.03µs | 5.0±0.03µs | **-1.96%** | | ops/text/jwst/insert | 66.9±0.73µs | 70.0±0.38µs | **+4.63%** | | ops/text/jwst/remove | 1383.4±6.60ns | 1417.6±13.24ns | **+2.47%** | | ops/text/yrs/insert | 26.7±0.25µs | 26.9±0.12µs | **+0.75%** | | ops/text/yrs/remove | 1744.9±13.73ns | 1723.8±37.50ns | **-1.21%** | | update/parse with jwst/basic.bin | 36.7±0.98µs | 39.0±0.24µs | **+6.27%** | | update/parse with jwst/database.bin | 28.1±0.20µs | 30.1±0.24µs | **+7.12%** | | update/parse with jwst/large.bin | 3.7±0.03ms | 3.3±0.09ms | **-10.81%** | | update/parse with jwst/with-subdoc.bin | 4.5±0.03µs | 4.9±0.03µs | **+8.89%** | | update/parse with yrs/basic.bin | 30.5±0.10µs | 30.1±0.08µs | **-1.31%** | | update/parse with yrs/database.bin | 23.3±0.15µs | 23.2±0.15µs | **-0.43%** | | update/parse with yrs/large.bin | 2.3±0.01ms | 2.4±0.01ms | **+4.35%** | | update/parse with yrs/with-subdoc.bin | 3.6±0.02µs | 4.0±0.02µs | **+11.11%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 212.8±0.69µs | 212.5±0.75µs | **-0.14%** | | codec/jwst decode var_uint (32 bit) | 181.1±3.64µs | 180.7±3.65µs | -0.22% | | codec/jwst decode var_uint (64 bit) | 195.8±2.95µs | 195.7±3.48µs | -0.05% | | codec/jwst encode var_int (32 bit) | 304.2±3.37µs | 302.5±1.18µs | **-0.56%** | | codec/jwst encode var_uint (32 bit) | 273.2±3.26µs | 270.9±1.63µs | **-0.84%** | | codec/jwst encode var_uint (64 bit) | 268.0±5.57µs | 267.5±2.23µs | -0.19% | | codec/lib0 decode var_int (64 bit) | 189.1±6.13µs | 188.9±6.89µs | -0.11% | | codec/lib0 decode var_uint (32 bit) | 155.2±5.68µs | 158.4±10.08µs | +2.06% | | codec/lib0 decode var_uint (64 bit) | 157.8±5.75µs | 157.9±6.91µs | +0.06% | | codec/lib0 encode var_int (64 bit) | 385.0±3.07µs | 384.5±2.47µs | -0.13% | | codec/lib0 encode var_uint (32 bit) | 373.9±2.56µs | 373.3±1.77µs | -0.16% | | codec/lib0 encode var_uint (64 bit) | 374.3±1.11µs | 384.2±1.50µs | **+2.64%** | | ops/array/jwst/insert | 121.9±0.71µs | 122.3±0.78µs | **+0.33%** | | ops/array/jwst/insert range | 181.4±0.58µs | 182.3±0.66µs | **+0.50%** | | ops/array/jwst/remove | 66.4±0.15µs | 66.1±0.30µs | **-0.45%** | | ops/array/yrs/insert | 77.2±1.99µs | 73.5±0.46µs | **-4.79%** | | ops/array/yrs/insert range | 99.4±0.40µs | 99.6±0.52µs | **+0.20%** | | ops/array/yrs/remove | 102.3±0.28µs | 101.3±0.27µs | **-0.98%** | | ops/map/jwst/get | 265.7±2.87ns | 261.1±5.55ns | **-1.73%** | | ops/map/jwst/insert | 5.1±0.04µs | 4.6±0.02µs | **-9.80%** | | ops/map/jwst/remove | 7.1±0.03µs | 9.0±0.05µs | **+26.76%** | | ops/map/yrs/get | 285.1±6.70ns | 270.7±5.71ns | **-5.05%** | | ops/map/yrs/insert | 5.8±0.05µs | 5.7±0.05µs | **-1.72%** | | ops/map/yrs/remove | 7.0±0.03µs | 7.3±0.03µs | **+4.29%** | | ops/text/jwst/insert | 86.4±0.71µs | 81.2±0.63µs | **-6.02%** | | ops/text/jwst/remove | 2.1±0.01µs | 2.1±0.01µs | -0.00% | | ops/text/yrs/insert | 34.8±0.46µs | 32.9±0.15µs | **-5.46%** | | ops/text/yrs/remove | 2.5±0.01µs | 2.5±0.02µs | -0.00% | | update/parse with jwst/basic.bin | 52.3±0.29µs | 54.6±0.51µs | **+4.40%** | | update/parse with jwst/database.bin | 44.3±0.38µs | 42.9±0.31µs | **-3.16%** | | update/parse with jwst/large.bin | 2.6±0.09ms | 2.6±0.05ms | -0.00% | | update/parse with jwst/with-subdoc.bin | 7.7±0.06µs | 7.5±0.03µs | **-2.60%** | | update/parse with yrs/basic.bin | 43.6±0.45µs | 44.2±0.20µs | **+1.38%** | | update/parse with yrs/database.bin | 35.0±0.38µs | 34.4±0.16µs | **-1.71%** | | update/parse with yrs/large.bin | 2.1±0.07ms | 2.1±0.08ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 7.0±0.04µs | 6.9±0.09µs | **-1.43%** |
github-actions[bot] commented 8 months ago

Benchmark for Linux

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.1±0.79µs | 212.9±0.53µs | **-0.09%** | | codec/jwst decode var_uint (32 bit) | 178.2±0.29µs | 178.1±0.44µs | **-0.06%** | | codec/jwst decode var_uint (64 bit) | 180.5±0.47µs | 180.7±0.88µs | **+0.11%** | | codec/jwst encode var_int (32 bit) | 303.9±5.12µs | 302.8±1.55µs | **-0.36%** | | codec/jwst encode var_uint (32 bit) | 250.6±3.95µs | 252.8±3.46µs | +0.88% | | codec/jwst encode var_uint (64 bit) | 253.3±12.81µs | 253.3±16.30µs | -0.00% | | codec/lib0 decode var_int (64 bit) | 185.9±2.53µs | 184.0±1.16µs | **-1.02%** | | codec/lib0 decode var_uint (32 bit) | 154.4±3.72µs | 153.6±3.08µs | -0.52% | | codec/lib0 decode var_uint (64 bit) | 153.5±2.49µs | 151.2±0.90µs | **-1.50%** | | codec/lib0 encode var_int (64 bit) | 384.2±1.05µs | 385.4±9.64µs | **+0.31%** | | codec/lib0 encode var_uint (32 bit) | 373.1±0.98µs | 373.2±1.34µs | **+0.03%** | | codec/lib0 encode var_uint (64 bit) | 373.1±1.92µs | 373.2±0.95µs | **+0.03%** | | ops/array/jwst/insert | 115.4±0.68µs | 105.8±0.29µs | **-8.32%** | | ops/array/jwst/insert range | 166.8±2.41µs | 157.0±0.59µs | **-5.88%** | | ops/array/jwst/remove | 70.8±0.20µs | 62.0±0.16µs | **-12.43%** | | ops/array/yrs/insert | 59.8±1.57µs | 57.8±0.65µs | **-3.34%** | | ops/array/yrs/insert range | 75.1±0.36µs | 75.2±1.34µs | **+0.13%** | | ops/array/yrs/remove | 68.1±2.54µs | 67.5±1.41µs | -0.88% | | ops/map/jwst/get | 206.3±8.07ns | 213.6±1.39ns | **+3.54%** | | ops/map/jwst/insert | 3.0±0.03µs | 2.9±0.02µs | **-3.33%** | | ops/map/jwst/remove | 4.3±0.01µs | 4.4±0.01µs | **+2.33%** | | ops/map/yrs/get | 262.3±4.89ns | 258.2±1.22ns | **-1.56%** | | ops/map/yrs/insert | 3.9±0.03µs | 3.9±0.05µs | -0.00% | | ops/map/yrs/remove | 5.1±0.02µs | 5.0±0.02µs | **-1.96%** | | ops/text/jwst/insert | 68.3±0.77µs | 67.5±0.33µs | **-1.17%** | | ops/text/jwst/remove | 1416.2±5.66ns | 1393.2±43.01ns | **-1.62%** | | ops/text/yrs/insert | 27.0±0.16µs | 27.3±0.40µs | **+1.11%** | | ops/text/yrs/remove | 1760.5±14.10ns | 1731.4±8.61ns | **-1.65%** | | update/parse with jwst/basic.bin | 37.4±0.14µs | 39.5±1.00µs | **+5.61%** | | update/parse with jwst/database.bin | 28.4±0.65µs | 30.0±0.18µs | **+5.63%** | | update/parse with jwst/large.bin | 3.3±0.02ms | 3.3±0.03ms | -0.00% | | update/parse with jwst/with-subdoc.bin | 4.6±0.04µs | 4.9±0.02µs | **+6.52%** | | update/parse with yrs/basic.bin | 29.7±0.19µs | 29.6±0.40µs | **-0.34%** | | update/parse with yrs/database.bin | 23.1±0.06µs | 23.2±0.21µs | **+0.43%** | | update/parse with yrs/large.bin | 2.3±0.01ms | 2.4±0.01ms | **+4.35%** | | update/parse with yrs/with-subdoc.bin | 3.8±0.02µs | 4.6±0.02µs | **+21.05%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.3±2.64µs | 213.0±3.59µs | -0.14% | | codec/jwst decode var_uint (32 bit) | 180.2±3.16µs | 181.1±4.57µs | +0.50% | | codec/jwst decode var_uint (64 bit) | 195.6±6.02µs | 195.0±3.36µs | -0.31% | | codec/jwst encode var_int (32 bit) | 304.4±4.63µs | 303.0±3.87µs | -0.46% | | codec/jwst encode var_uint (32 bit) | 273.2±3.22µs | 271.4±3.17µs | -0.66% | | codec/jwst encode var_uint (64 bit) | 267.1±2.55µs | 265.9±1.46µs | **-0.45%** | | codec/lib0 decode var_int (64 bit) | 192.3±7.13µs | 188.6±5.94µs | -1.92% | | codec/lib0 decode var_uint (32 bit) | 156.6±7.74µs | 163.0±8.11µs | +4.09% | | codec/lib0 decode var_uint (64 bit) | 156.9±6.16µs | 158.2±5.82µs | +0.83% | | codec/lib0 encode var_int (64 bit) | 385.6±1.61µs | 386.8±8.82µs | **+0.31%** | | codec/lib0 encode var_uint (32 bit) | 386.2±2.96µs | 374.4±2.42µs | **-3.06%** | | codec/lib0 encode var_uint (64 bit) | 380.0±1.53µs | 373.0±0.76µs | **-1.84%** | | ops/array/jwst/insert | 122.4±3.09µs | 121.9±0.52µs | **-0.41%** | | ops/array/jwst/insert range | 178.1±0.97µs | 181.9±1.75µs | **+2.13%** | | ops/array/jwst/remove | 65.8±0.33µs | 66.8±0.21µs | **+1.52%** | | ops/array/yrs/insert | 74.7±0.36µs | 72.3±0.61µs | **-3.21%** | | ops/array/yrs/insert range | 100.2±0.40µs | 99.7±0.64µs | **-0.50%** | | ops/array/yrs/remove | 102.6±0.67µs | 103.1±0.42µs | **+0.49%** | | ops/map/jwst/get | 264.9±2.75ns | 260.9±4.25ns | **-1.51%** | | ops/map/jwst/insert | 4.6±0.09µs | 4.5±0.02µs | **-2.17%** | | ops/map/jwst/remove | 6.8±0.04µs | 6.8±0.04µs | -0.00% | | ops/map/yrs/get | 270.5±4.89ns | 274.8±6.06ns | **+1.59%** | | ops/map/yrs/insert | 6.0±0.07µs | 5.7±0.08µs | **-5.00%** | | ops/map/yrs/remove | 7.2±0.06µs | 7.3±0.05µs | **+1.39%** | | ops/text/jwst/insert | 84.2±0.61µs | 81.7±0.67µs | **-2.97%** | | ops/text/jwst/remove | 2.1±0.04µs | 2.2±0.01µs | **+4.76%** | | ops/text/yrs/insert | 34.3±0.28µs | 32.7±0.11µs | **-4.66%** | | ops/text/yrs/remove | 2.5±0.02µs | 2.5±0.05µs | -0.00% | | update/parse with jwst/basic.bin | 52.3±0.52µs | 56.3±0.68µs | **+7.65%** | | update/parse with jwst/database.bin | 43.3±0.20µs | 42.4±0.28µs | **-2.08%** | | update/parse with jwst/large.bin | 2.5±0.05ms | 2.6±0.06ms | **+4.00%** | | update/parse with jwst/with-subdoc.bin | 7.8±0.04µs | 7.7±0.05µs | **-1.28%** | | update/parse with yrs/basic.bin | 43.7±0.34µs | 43.7±0.20µs | -0.00% | | update/parse with yrs/database.bin | 35.4±0.26µs | 35.2±0.23µs | **-0.56%** | | update/parse with yrs/large.bin | 2.1±0.06ms | 2.1±0.06ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 7.3±0.07µs | 7.0±0.06µs | **-4.11%** |
github-actions[bot] commented 8 months ago

Benchmark for Linux

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 212.9±0.71µs | 213.1±0.83µs | **+0.09%** | | codec/jwst decode var_uint (32 bit) | 178.2±0.70µs | 178.2±0.68µs | -0.00% | | codec/jwst decode var_uint (64 bit) | 181.0±4.03µs | 180.7±6.10µs | -0.17% | | codec/jwst encode var_int (32 bit) | 302.2±1.12µs | 302.5±0.77µs | **+0.10%** | | codec/jwst encode var_uint (32 bit) | 251.6±3.48µs | 253.4±1.94µs | **+0.72%** | | codec/jwst encode var_uint (64 bit) | 252.8±3.92µs | 253.5±4.06µs | +0.28% | | codec/lib0 decode var_int (64 bit) | 186.8±2.20µs | 185.4±1.91µs | **-0.75%** | | codec/lib0 decode var_uint (32 bit) | 153.9±3.14µs | 153.2±0.74µs | **-0.45%** | | codec/lib0 decode var_uint (64 bit) | 154.1±2.86µs | 153.3±2.56µs | -0.52% | | codec/lib0 encode var_int (64 bit) | 397.5±26.20µs | 384.5±3.89µs | **-3.27%** | | codec/lib0 encode var_uint (32 bit) | 373.7±5.09µs | 373.1±0.87µs | **-0.16%** | | codec/lib0 encode var_uint (64 bit) | 373.3±1.05µs | 373.3±1.13µs | -0.00% | | ops/array/jwst/insert | 106.6±1.91µs | 105.3±0.53µs | **-1.22%** | | ops/array/jwst/insert range | 157.9±0.88µs | 158.8±2.18µs | **+0.57%** | | ops/array/jwst/remove | 61.1±0.76µs | 62.3±0.19µs | **+1.96%** | | ops/array/yrs/insert | 58.7±0.98µs | 60.5±0.67µs | **+3.07%** | | ops/array/yrs/insert range | 74.8±0.66µs | 79.0±0.56µs | **+5.61%** | | ops/array/yrs/remove | 60.4±0.33µs | 62.7±0.25µs | **+3.81%** | | ops/map/jwst/get | 205.7±4.12ns | 207.5±0.95ns | **+0.88%** | | ops/map/jwst/insert | 2.9±0.03µs | 3.0±0.04µs | **+3.45%** | | ops/map/jwst/remove | 4.2±0.01µs | 4.6±0.02µs | **+9.52%** | | ops/map/yrs/get | 260.4±1.53ns | 258.8±1.92ns | **-0.61%** | | ops/map/yrs/insert | 3.9±0.04µs | 3.9±0.01µs | -0.00% | | ops/map/yrs/remove | 5.0±0.03µs | 5.0±0.03µs | -0.00% | | ops/text/jwst/insert | 66.1±1.72µs | 68.1±0.69µs | **+3.03%** | | ops/text/jwst/remove | 1386.2±58.15ns | 1374.1±5.18ns | **-0.87%** | | ops/text/yrs/insert | 26.7±0.20µs | 26.9±0.27µs | **+0.75%** | | ops/text/yrs/remove | 1722.2±20.99ns | 1696.2±11.84ns | **-1.51%** | | update/parse with jwst/basic.bin | 36.3±0.15µs | 39.1±0.13µs | **+7.71%** | | update/parse with jwst/database.bin | 28.3±0.94µs | 30.1±0.19µs | **+6.36%** | | update/parse with jwst/large.bin | 3.6±0.01ms | 3.3±0.04ms | **-8.33%** | | update/parse with jwst/with-subdoc.bin | 4.5±0.02µs | 4.8±0.02µs | **+6.67%** | | update/parse with yrs/basic.bin | 30.3±0.08µs | 30.1±0.32µs | **-0.66%** | | update/parse with yrs/database.bin | 23.2±0.20µs | 23.1±0.15µs | **-0.43%** | | update/parse with yrs/large.bin | 2.4±0.01ms | 2.4±0.01ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 3.9±0.04µs | 3.7±0.02µs | **-5.13%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.3±3.76µs | 212.6±0.88µs | **-0.33%** | | codec/jwst decode var_uint (32 bit) | 180.5±2.74µs | 179.6±2.91µs | -0.50% | | codec/jwst decode var_uint (64 bit) | 194.9±2.73µs | 196.7±8.33µs | +0.92% | | codec/jwst encode var_int (32 bit) | 306.4±13.13µs | 303.6±7.70µs | -0.91% | | codec/jwst encode var_uint (32 bit) | 272.9±1.20µs | 272.7±3.51µs | -0.07% | | codec/jwst encode var_uint (64 bit) | 267.7±1.46µs | 269.2±4.41µs | **+0.56%** | | codec/lib0 decode var_int (64 bit) | 188.5±0.82µs | 191.5±7.37µs | **+1.59%** | | codec/lib0 decode var_uint (32 bit) | 156.7±8.61µs | 150.6±0.99µs | **-3.89%** | | codec/lib0 decode var_uint (64 bit) | 158.1±5.53µs | 158.3±6.84µs | +0.13% | | codec/lib0 encode var_int (64 bit) | 388.1±14.45µs | 384.5±3.08µs | **-0.93%** | | codec/lib0 encode var_uint (32 bit) | 373.5±1.20µs | 373.4±0.92µs | **-0.03%** | | codec/lib0 encode var_uint (64 bit) | 373.4±1.22µs | 373.2±1.04µs | -0.05% | | ops/array/jwst/insert | 124.5±2.29µs | 121.9±0.89µs | **-2.09%** | | ops/array/jwst/insert range | 183.2±1.91µs | 179.0±1.61µs | **-2.29%** | | ops/array/jwst/remove | 67.7±0.28µs | 66.4±0.35µs | **-1.92%** | | ops/array/yrs/insert | 73.9±0.60µs | 72.5±0.44µs | **-1.89%** | | ops/array/yrs/insert range | 99.1±0.84µs | 99.6±0.46µs | **+0.50%** | | ops/array/yrs/remove | 105.3±0.66µs | 104.8±1.79µs | **-0.47%** | | ops/map/jwst/get | 266.1±2.60ns | 260.7±3.88ns | **-2.03%** | | ops/map/jwst/insert | 4.7±0.03µs | 4.6±0.19µs | **-2.13%** | | ops/map/jwst/remove | 9.9±0.04µs | 6.7±0.02µs | **-32.32%** | | ops/map/yrs/get | 274.3±7.16ns | 270.1±4.38ns | **-1.53%** | | ops/map/yrs/insert | 5.9±0.02µs | 5.8±0.04µs | **-1.69%** | | ops/map/yrs/remove | 7.0±0.03µs | 7.5±0.03µs | **+7.14%** | | ops/text/jwst/insert | 85.0±1.12µs | 85.1±2.16µs | +0.12% | | ops/text/jwst/remove | 2.2±0.02µs | 2.2±0.01µs | -0.00% | | ops/text/yrs/insert | 34.9±0.51µs | 33.3±0.14µs | **-4.58%** | | ops/text/yrs/remove | 2.5±0.03µs | 2.5±0.01µs | -0.00% | | update/parse with jwst/basic.bin | 52.2±0.55µs | 57.3±0.54µs | **+9.77%** | | update/parse with jwst/database.bin | 43.7±0.17µs | 43.3±0.21µs | **-0.92%** | | update/parse with jwst/large.bin | 2.6±0.08ms | 2.7±0.12ms | **+3.85%** | | update/parse with jwst/with-subdoc.bin | 7.7±0.04µs | 7.8±0.03µs | **+1.30%** | | update/parse with yrs/basic.bin | 43.6±0.43µs | 43.8±0.25µs | **+0.46%** | | update/parse with yrs/database.bin | 35.0±0.16µs | 34.6±0.29µs | **-1.14%** | | update/parse with yrs/large.bin | 2.1±0.04ms | 2.1±0.05ms | -0.00% | | update/parse with yrs/with-subdoc.bin | 7.3±0.04µs | 7.0±0.06µs | **-4.11%** |