Closed forehalo closed 11 months ago
Since we introduce the zero copy parse here, We can use https://github.com/fitzgen/bumpalo for further optimization in the future.
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.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
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%** |