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

perf: apply update #39

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.1±1.42µs | 213.0±0.60µs | **-0.05%** | | codec/jwst decode var_uint (32 bit) | 180.8±0.68µs | 178.3±0.90µs | **-1.38%** | | codec/jwst decode var_uint (64 bit) | 206.3±0.49µs | 208.5±15.94µs | **+1.07%** | | codec/jwst encode var_int (32 bit) | 303.6±2.03µs | 303.5±1.37µs | -0.03% | | codec/jwst encode var_uint (32 bit) | 253.8±3.11µs | 252.1±3.74µs | -0.67% | | codec/jwst encode var_uint (64 bit) | 253.9±3.39µs | 253.7±3.75µs | -0.08% | | codec/lib0 decode var_int (64 bit) | 186.3±2.09µs | 186.4±2.26µs | +0.05% | | codec/lib0 decode var_uint (32 bit) | 155.1±9.38µs | 153.1±3.08µs | -1.29% | | codec/lib0 decode var_uint (64 bit) | 153.8±2.52µs | 154.8±8.90µs | +0.65% | | codec/lib0 encode var_int (64 bit) | 386.3±12.47µs | 385.8±6.93µs | -0.13% | | codec/lib0 encode var_uint (32 bit) | 373.6±0.45µs | 372.8±0.48µs | **-0.21%** | | codec/lib0 encode var_uint (64 bit) | 374.1±2.00µs | 373.0±1.10µs | **-0.29%** | | ops/array/jwst/insert | 104.6±0.43µs | 105.0±1.31µs | **+0.38%** | | ops/array/jwst/insert range | 155.1±0.45µs | 156.6±1.93µs | **+0.97%** | | ops/array/jwst/remove | 61.5±0.32µs | 61.0±0.31µs | **-0.81%** | | ops/array/yrs/insert | 56.4±0.35µs | 57.9±1.24µs | **+2.66%** | | ops/array/yrs/insert range | 73.8±1.55µs | 75.2±0.99µs | **+1.90%** | | ops/array/yrs/remove | 63.9±0.99µs | 64.8±1.05µs | **+1.41%** | | ops/map/jwst/get | 206.2±1.50ns | 205.7±1.03ns | -0.24% | | ops/map/jwst/insert | 2.9±0.01µs | 2.9±0.02µs | -0.00% | | ops/map/jwst/remove | 4.2±0.01µs | 4.1±0.03µs | **-2.38%** | | ops/map/yrs/get | 259.0±1.89ns | 258.1±0.78ns | **-0.35%** | | ops/map/yrs/insert | 3.8±0.05µs | 3.9±0.03µs | **+2.63%** | | ops/map/yrs/remove | 5.0±0.02µs | 5.0±0.07µs | -0.00% | | ops/text/jwst/insert | 67.5±0.49µs | 67.3±0.66µs | **-0.30%** | | ops/text/jwst/remove | 1454.6±9.83ns | 1451.0±21.07ns | -0.25% | | ops/text/yrs/insert | 26.8±0.19µs | 27.5±0.19µs | **+2.61%** | | ops/text/yrs/remove | 1697.8±15.16ns | 1726.5±7.64ns | **+1.69%** | | update/parse with jwst/basic.bin | 38.8±0.19µs | 39.1±0.12µs | **+0.77%** | | update/parse with jwst/database.bin | 30.4±0.18µs | 30.0±0.23µs | **-1.32%** | | update/parse with jwst/large.bin | 3.3±0.04ms | 3.3±0.04ms | -0.00% | | update/parse with jwst/with-subdoc.bin | 4.8±0.06µs | 4.9±0.04µs | **+2.08%** | | update/parse with yrs/basic.bin | 29.8±0.13µs | 29.8±0.19µs | -0.00% | | update/parse with yrs/database.bin | 22.9±0.21µs | 23.2±0.24µs | **+1.31%** | | update/parse with yrs/large.bin | 2.3±0.06ms | 2.4±0.01ms | **+4.35%** | | update/parse with yrs/with-subdoc.bin | 4.7±0.02µs | 4.4±0.02µs | **-6.38%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.4±1.46µs | 212.4±0.85µs | **-0.47%** | | codec/jwst decode var_uint (32 bit) | 185.1±4.60µs | 183.4±4.72µs | -0.92% | | codec/jwst decode var_uint (64 bit) | 184.4±4.64µs | 184.8±6.28µs | +0.22% | | codec/jwst encode var_int (32 bit) | 307.1±19.59µs | 302.8±2.60µs | **-1.40%** | | codec/jwst encode var_uint (32 bit) | 260.6±5.29µs | 255.7±5.99µs | -1.88% | | codec/jwst encode var_uint (64 bit) | 256.3±4.71µs | 254.0±3.83µs | -0.90% | | codec/lib0 decode var_int (64 bit) | 190.4±6.16µs | 185.5±2.61µs | **-2.57%** | | codec/lib0 decode var_uint (32 bit) | 157.7±6.58µs | 156.3±6.51µs | -0.89% | | codec/lib0 decode var_uint (64 bit) | 157.0±5.60µs | 157.7±6.28µs | +0.45% | | codec/lib0 encode var_int (64 bit) | 385.0±1.72µs | 384.4±2.52µs | -0.16% | | codec/lib0 encode var_uint (32 bit) | 374.0±2.34µs | 373.6±2.25µs | -0.11% | | codec/lib0 encode var_uint (64 bit) | 373.4±1.01µs | 373.3±0.99µs | **-0.03%** | | ops/array/jwst/insert | 123.1±2.57µs | 122.7±0.73µs | **-0.32%** | | ops/array/jwst/insert range | 179.3±1.21µs | 182.1±1.05µs | **+1.56%** | | ops/array/jwst/remove | 66.4±0.71µs | 65.8±0.22µs | **-0.90%** | | ops/array/yrs/insert | 70.5±1.17µs | 72.4±0.74µs | **+2.70%** | | ops/array/yrs/insert range | 97.5±0.84µs | 97.6±0.61µs | **+0.10%** | | ops/array/yrs/remove | 101.6±0.56µs | 104.9±0.45µs | **+3.25%** | | ops/map/jwst/get | 258.7±3.14ns | 256.9±3.25ns | -0.70% | | ops/map/jwst/insert | 4.6±0.10µs | 4.7±0.02µs | **+2.17%** | | ops/map/jwst/remove | 6.8±0.02µs | 6.8±0.03µs | -0.00% | | ops/map/yrs/get | 272.3±8.10ns | 269.4±4.68ns | -1.07% | | ops/map/yrs/insert | 5.7±0.03µs | 5.7±0.04µs | -0.00% | | ops/map/yrs/remove | 6.9±0.02µs | 7.4±0.02µs | **+7.25%** | | ops/text/jwst/insert | 85.8±1.26µs | 83.5±0.59µs | **-2.68%** | | ops/text/jwst/remove | 2.2±0.02µs | 2.1±0.01µs | **-4.55%** | | ops/text/yrs/insert | 33.9±0.18µs | 33.0±0.16µs | **-2.65%** | | ops/text/yrs/remove | 2.5±0.02µs | 2.6±0.05µs | **+4.00%** | | update/parse with jwst/basic.bin | 54.0±0.33µs | 55.7±1.26µs | **+3.15%** | | update/parse with jwst/database.bin | 44.2±0.21µs | 43.0±0.29µs | **-2.71%** | | update/parse with jwst/large.bin | 2.6±0.06ms | 2.6±0.07ms | -0.00% | | update/parse with jwst/with-subdoc.bin | 7.9±0.05µs | 8.0±0.09µs | **+1.27%** | | update/parse with yrs/basic.bin | 43.5±0.19µs | 44.7±1.00µs | **+2.76%** | | update/parse with yrs/database.bin | 34.9±0.14µs | 34.5±0.30µs | **-1.15%** | | update/parse with yrs/large.bin | 2.1±0.06ms | 2.2±0.07ms | **+4.76%** | | update/parse with yrs/with-subdoc.bin | 7.2±0.10µs | 7.5±0.05µs | **+4.17%** |
codecov-commenter commented 8 months ago

Codecov Report

Attention: 10 lines in your changes are missing coverage. Please review.

Comparison is base (dae318a) 78.42% compared to head (99ceb98) 78.37%.

Files Patch % Lines
y-octo-node/src/doc.rs 0.00% 10 Missing :warning:

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

Additional details and impacted files ```diff @@ Coverage Diff @@ ## main #39 +/- ## ========================================== - Coverage 78.42% 78.37% -0.06% ========================================== Files 50 50 Lines 7640 7633 -7 ========================================== - Hits 5992 5982 -10 - Misses 1648 1651 +3 ``` | [Flag](https://app.codecov.io/gh/y-crdt/y-octo/pull/39/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/39/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) | 242.5±0.56µs | 242.7±1.24µs | **+0.08%** | | codec/jwst decode var_uint (32 bit) | 178.1±0.53µs | 178.4±1.96µs | **+0.17%** | | codec/jwst decode var_uint (64 bit) | 180.7±0.33µs | 181.4±2.70µs | **+0.39%** | | codec/jwst encode var_int (32 bit) | 303.7±3.96µs | 303.6±7.33µs | -0.03% | | codec/jwst encode var_uint (32 bit) | 252.5±3.41µs | 245.4±2.82µs | **-2.81%** | | codec/jwst encode var_uint (64 bit) | 253.1±3.51µs | 247.0±3.19µs | **-2.41%** | | codec/lib0 decode var_int (64 bit) | 186.1±2.48µs | 185.9±3.12µs | -0.11% | | codec/lib0 decode var_uint (32 bit) | 153.7±2.22µs | 153.6±2.54µs | -0.07% | | codec/lib0 decode var_uint (64 bit) | 154.6±3.09µs | 154.7±2.23µs | +0.06% | | codec/lib0 encode var_int (64 bit) | 384.1±0.54µs | 384.2±1.18µs | **+0.03%** | | codec/lib0 encode var_uint (32 bit) | 373.4±3.22µs | 373.0±1.40µs | -0.11% | | codec/lib0 encode var_uint (64 bit) | 372.9±0.80µs | 373.1±0.67µs | **+0.05%** | | ops/array/jwst/insert | 105.7±0.72µs | 108.4±0.42µs | **+2.55%** | | ops/array/jwst/insert range | 156.0±0.72µs | 160.5±1.27µs | **+2.88%** | | ops/array/jwst/remove | 62.0±0.14µs | 67.6±0.12µs | **+9.03%** | | ops/array/yrs/insert | 57.5±0.23µs | 57.6±0.48µs | **+0.17%** | | ops/array/yrs/insert range | 74.3±0.28µs | 74.7±0.53µs | **+0.54%** | | ops/array/yrs/remove | 63.2±1.08µs | 65.7±0.69µs | **+3.96%** | | ops/map/jwst/get | 204.2±2.41ns | 204.0±1.45ns | -0.10% | | ops/map/jwst/insert | 2.9±0.01µs | 2.9±0.05µs | -0.00% | | ops/map/jwst/remove | 4.0±0.06µs | 4.2±0.03µs | **+5.00%** | | ops/map/yrs/get | 257.7±2.24ns | 259.2±1.32ns | **+0.58%** | | ops/map/yrs/insert | 3.9±0.13µs | 3.9±0.03µs | -0.00% | | ops/map/yrs/remove | 5.0±0.03µs | 5.1±0.09µs | **+2.00%** | | ops/text/jwst/insert | 67.0±0.16µs | 69.6±0.59µs | **+3.88%** | | ops/text/jwst/remove | 1450.3±6.47ns | 1417.9±10.23ns | **-2.23%** | | ops/text/yrs/insert | 27.7±0.46µs | 27.4±0.09µs | **-1.08%** | | ops/text/yrs/remove | 1749.4±8.98ns | 1733.9±9.76ns | **-0.89%** | | update/parse with jwst/basic.bin | 38.5±1.10µs | 38.7±0.14µs | **+0.52%** | | update/parse with jwst/database.bin | 30.0±0.19µs | 29.9±0.18µs | **-0.33%** | | update/parse with jwst/large.bin | 3.3±0.09ms | 3.3±0.03ms | -0.00% | | update/parse with jwst/with-subdoc.bin | 4.9±0.02µs | 4.9±0.07µs | -0.00% | | update/parse with yrs/basic.bin | 28.8±0.17µs | 30.6±0.18µs | **+6.25%** | | update/parse with yrs/database.bin | 22.9±0.19µs | 23.2±0.10µs | **+1.31%** | | update/parse with yrs/large.bin | 2.7±0.01ms | 2.4±0.01ms | **-11.11%** | | update/parse with yrs/with-subdoc.bin | 4.6±0.05µs | 4.7±0.03µs | **+2.17%** |

Benchmark for Windows

Click to view benchmark | Test | Base | PR | % | | --- | --- | --- | --- | | codec/jwst decode var_int (32 bit) | 213.3±4.45µs | 212.7±1.80µs | -0.28% | | codec/jwst decode var_uint (32 bit) | 181.7±8.21µs | 181.6±4.96µs | -0.06% | | codec/jwst decode var_uint (64 bit) | 206.9±0.81µs | 207.0±1.46µs | **+0.05%** | | codec/jwst encode var_int (32 bit) | 303.5±2.70µs | 303.6±10.38µs | +0.03% | | codec/jwst encode var_uint (32 bit) | 275.3±2.28µs | 272.5±1.63µs | **-1.02%** | | codec/jwst encode var_uint (64 bit) | 268.9±1.37µs | 268.4±3.08µs | -0.19% | | codec/lib0 decode var_int (64 bit) | 191.1±5.63µs | 188.7±6.11µs | -1.26% | | codec/lib0 decode var_uint (32 bit) | 158.8±8.55µs | 156.2±9.77µs | -1.64% | | codec/lib0 decode var_uint (64 bit) | 158.7±6.53µs | 159.4±7.06µs | +0.44% | | codec/lib0 encode var_int (64 bit) | 386.2±5.62µs | 384.9±6.05µs | -0.34% | | codec/lib0 encode var_uint (32 bit) | 373.9±1.32µs | 373.7±3.28µs | -0.05% | | codec/lib0 encode var_uint (64 bit) | 375.2±2.19µs | 374.2±1.17µs | -0.27% | | ops/array/jwst/insert | 126.8±0.86µs | 122.6±1.26µs | **-3.31%** | | ops/array/jwst/insert range | 178.6±2.47µs | 180.3±1.63µs | **+0.95%** | | ops/array/jwst/remove | 66.9±0.38µs | 65.9±0.18µs | **-1.49%** | | ops/array/yrs/insert | 73.0±1.25µs | 72.2±1.53µs | -1.10% | | ops/array/yrs/insert range | 98.8±3.75µs | 99.2±0.75µs | **+0.40%** | | ops/array/yrs/remove | 107.3±1.57µs | 103.5±0.33µs | **-3.54%** | | ops/map/jwst/get | 264.9±3.56ns | 265.0±4.79ns | +0.04% | | ops/map/jwst/insert | 4.7±0.02µs | 4.5±0.07µs | **-4.26%** | | ops/map/jwst/remove | 7.0±0.13µs | 6.6±0.02µs | **-5.71%** | | ops/map/yrs/get | 270.1±3.74ns | 278.5±10.11ns | **+3.11%** | | ops/map/yrs/insert | 5.8±0.02µs | 5.8±0.02µs | -0.00% | | ops/map/yrs/remove | 7.0±0.02µs | 7.4±0.09µs | **+5.71%** | | ops/text/jwst/insert | 81.7±0.73µs | 83.3±0.61µs | **+1.96%** | | ops/text/jwst/remove | 2.1±0.02µs | 2.1±0.02µs | -0.00% | | ops/text/yrs/insert | 35.1±0.34µs | 32.8±0.39µs | **-6.55%** | | ops/text/yrs/remove | 2.5±0.02µs | 2.6±0.06µs | **+4.00%** | | update/parse with jwst/basic.bin | 54.5±0.50µs | 57.4±0.99µs | **+5.32%** | | update/parse with jwst/database.bin | 44.3±0.23µs | 44.6±0.53µs | **+0.68%** | | update/parse with jwst/large.bin | 2.7±0.07ms | 2.7±0.13ms | -0.00% | | update/parse with jwst/with-subdoc.bin | 7.8±0.04µs | 7.6±0.14µs | **-2.56%** | | update/parse with yrs/basic.bin | 43.4±0.20µs | 43.6±0.51µs | **+0.46%** | | update/parse with yrs/database.bin | 34.8±0.39µs | 34.9±0.28µs | **+0.29%** | | update/parse with yrs/large.bin | 2.0±0.05ms | 2.1±0.08ms | **+5.00%** | | update/parse with yrs/with-subdoc.bin | 6.7±0.04µs | 7.3±0.04µs | **+8.96%** |