Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: somlstr for parent key #30

Merged
merged 14 commits into from
Dec 25, 2023
Merged

feat: somlstr for parent key #30

merged 14 commits into from
Dec 25, 2023

Conversation

darkskygit
Copy link
Collaborator

apply a large doc (~15m) generate in real world

  • before
image
  • after
image

@darkskygit darkskygit temporarily deployed to development September 25, 2023 12:38 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 25, 2023 12:38 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 25, 2023 12:38 — with GitHub Actions Inactive
@codecov-commenter
Copy link

codecov-commenter commented Sep 25, 2023

Codecov Report

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

Comparison is base (3764b25) 78.37% compared to head (c3d7dcf) 77.96%.

Files Patch % Lines
y-octo-utils/bin/doc_merger.rs 0.00% 66 Missing ⚠️
y-octo/src/doc/codec/item_flag.rs 99.00% 1 Missing ⚠️
y-octo/src/doc/codec/refs.rs 80.00% 1 Missing ⚠️
y-octo/src/doc/codec/utils/items.rs 50.00% 1 Missing ⚠️

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

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #30      +/-   ##
==========================================
- Coverage   78.37%   77.96%   -0.41%     
==========================================
  Files          50       52       +2     
  Lines        7633     7752     +119     
==========================================
+ Hits         5982     6044      +62     
- Misses       1651     1708      +57     
Flag Coverage Δ
node-binding-test 36.92% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@darkskygit darkskygit temporarily deployed to development September 25, 2023 12:46 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 25, 2023 12:46 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 25, 2023 12:46 — with GitHub Actions Inactive
@darkskygit darkskygit marked this pull request as draft September 26, 2023 08:10
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:10 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:10 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:10 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:31 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:31 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:31 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:46 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:46 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 08:46 — with GitHub Actions Inactive
@github-actions
Copy link

Benchmark for Linux

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 354.6±2.28µs 345.3±2.90µs -2.62%
codec/jwst decode var_uint (32 bit) 301.1±3.00µs 286.8±1.31µs -4.75%
codec/jwst decode var_uint (64 bit) 293.0±0.59µs 308.3±0.15µs +5.22%
codec/jwst encode var_int (32 bit) 423.4±2.71µs 428.8±3.75µs +1.28%
codec/jwst encode var_uint (32 bit) 375.2±0.16µs 280.7±1.84µs -25.19%
codec/jwst encode var_uint (64 bit) 375.2±0.13µs 274.6±10.65µs -26.81%
codec/lib0 decode var_int (64 bit) 271.2±1.31µs 275.2±1.35µs +1.47%
codec/lib0 decode var_uint (32 bit) 264.1±4.18µs 266.3±4.91µs +0.83%
codec/lib0 decode var_uint (64 bit) 247.2±4.80µs 237.6±2.82µs -3.88%
codec/lib0 encode var_int (64 bit) 425.8±4.12µs 384.0±0.89µs -9.82%
codec/lib0 encode var_uint (32 bit) 282.8±3.30µs 383.5±1.65µs +35.61%
codec/lib0 encode var_uint (64 bit) 282.7±2.92µs 386.2±2.07µs +36.61%
ops/array/jwst/insert 252.0±3.35µs 253.2±0.78µs +0.48%
ops/array/jwst/insert range 359.0±0.21µs 363.1±5.56µs +1.14%
ops/array/jwst/remove 166.9±0.04µs 165.6±0.17µs -0.78%
ops/array/yrs/insert 75.1±1.21µs 75.4±0.60µs +0.40%
ops/array/yrs/insert range 106.7±1.25µs 103.5±0.70µs -3.00%
ops/array/yrs/remove 95.4±0.64µs 95.1±0.32µs -0.31%
ops/map/jwst/get 447.5±5.32ns 440.0±2.57ns -1.68%
ops/map/jwst/insert 6.0±0.06µs 6.1±0.06µs +1.67%
ops/map/jwst/remove 7.4±0.01µs 7.3±0.01µs -1.35%
ops/map/yrs/get 313.9±3.39ns 298.6±4.15ns -4.87%
ops/map/yrs/insert 5.3±0.03µs 5.2±0.07µs -1.89%
ops/map/yrs/remove 7.0±0.00µs 7.1±0.01µs +1.43%
ops/text/jwst/insert 115.7±2.07µs 115.7±1.43µs -0.00%
ops/text/jwst/remove 3.4±0.08µs 3.4±0.01µs -0.00%
ops/text/yrs/insert 33.2±0.45µs 34.1±0.30µs +2.71%
ops/text/yrs/remove 2.3±0.01µs 2.3±0.01µs -0.00%
update/parse with jwst/basic.bin 56.5±0.41µs 58.9±0.02µs +4.25%
update/parse with jwst/database.bin 46.1±0.30µs 47.6±0.05µs +3.25%
update/parse with jwst/large.bin 4.3±0.01ms 4.3±0.01ms -0.00%
update/parse with jwst/with-subdoc.bin 5.6±0.01µs 6.8±0.01µs +21.43%
update/parse with yrs/basic.bin 42.4±0.04µs 41.5±0.02µs -2.12%
update/parse with yrs/database.bin 34.2±0.08µs 33.4±0.02µs -2.34%
update/parse with yrs/large.bin 3.1±0.04ms 3.1±0.01ms -0.00%
update/parse with yrs/with-subdoc.bin 4.5±0.10µs 4.3±0.01µs -4.44%

Benchmark for Windows

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 453.0±21.01µs 582.5±31.69µs +28.59%
codec/jwst decode var_uint (32 bit) 533.9±120.97µs 494.8±24.59µs -7.32%
codec/jwst decode var_uint (64 bit) 649.8±78.73µs 397.3±17.46µs -38.86%
codec/jwst encode var_int (32 bit) 619.9±27.56µs 565.8±24.08µs -8.73%
codec/jwst encode var_uint (32 bit) 396.4±35.31µs 419.1±20.70µs +5.73%
codec/jwst encode var_uint (64 bit) 388.0±28.24µs 411.2±18.94µs +5.98%
codec/lib0 decode var_int (64 bit) 355.5±15.43µs 533.8±20.22µs +50.15%
codec/lib0 decode var_uint (32 bit) 302.9±13.66µs 297.6±11.08µs -1.75%
codec/lib0 decode var_uint (64 bit) 301.5±10.26µs 481.4±20.05µs +59.67%
codec/lib0 encode var_int (64 bit) 797.0±91.65µs 728.0±31.71µs -8.66%
codec/lib0 encode var_uint (32 bit) 498.6±27.81µs 489.4±19.41µs -1.85%
codec/lib0 encode var_uint (64 bit) 482.9±20.59µs 473.3±21.45µs -1.99%
ops/array/jwst/insert 361.2±13.06µs 358.1±11.60µs -0.86%
ops/array/jwst/insert range 502.4±21.89µs 493.2±12.72µs -1.83%
ops/array/jwst/remove 212.0±7.25µs 209.4±10.39µs -1.23%
ops/array/yrs/insert 137.7±6.61µs 133.3±6.04µs -3.20%
ops/array/yrs/insert range 186.2±5.12µs 182.7±4.82µs -1.88%
ops/array/yrs/remove 198.4±6.56µs 200.6±6.20µs +1.11%
ops/map/jwst/get 624.3±24.93ns 638.8±24.35ns +2.32%
ops/map/jwst/insert 12.8±0.61µs 12.5±0.40µs -2.34%
ops/map/jwst/remove 12.5±0.35µs 12.1±0.32µs -3.20%
ops/map/yrs/get 457.0±38.05ns 442.6±15.75ns -3.15%
ops/map/yrs/insert 10.0±0.33µs 10.1±0.32µs +1.00%
ops/map/yrs/remove 13.8±0.45µs 14.1±0.45µs +2.17%
ops/text/jwst/insert 193.6±4.86µs 198.1±6.56µs +2.32%
ops/text/jwst/remove 5.5±0.26µs 5.5±0.19µs -0.00%
ops/text/yrs/insert 58.8±2.04µs 58.3±2.76µs -0.85%
ops/text/yrs/remove 5.6±0.37µs 5.6±0.44µs -0.00%
update/parse with jwst/basic.bin 109.9±4.55µs 108.4±5.94µs -1.36%
update/parse with jwst/database.bin 80.7±2.92µs 81.5±5.73µs +0.99%
update/parse with jwst/large.bin 4.9±0.20ms 5.2±0.25ms +6.12%
update/parse with jwst/with-subdoc.bin 15.1±0.41µs 15.8±0.43µs +4.64%
update/parse with yrs/basic.bin 82.5±2.43µs 86.7±3.14µs +5.09%
update/parse with yrs/database.bin 64.8±4.42µs 63.6±1.75µs -1.85%
update/parse with yrs/large.bin 4.0±0.16ms 4.1±0.19ms +2.50%
update/parse with yrs/with-subdoc.bin 15.1±0.79µs 14.9±0.42µs -1.32%

@darkskygit darkskygit temporarily deployed to development September 26, 2023 10:34 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 10:34 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development September 26, 2023 10:34 — with GitHub Actions Inactive
@github-actions
Copy link

Benchmark for Linux

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 354.2±1.81µs 345.6±2.26µs -2.43%
codec/jwst decode var_uint (32 bit) 299.3±2.58µs 287.4±2.10µs -3.98%
codec/jwst decode var_uint (64 bit) 292.7±0.36µs 308.3±0.18µs +5.33%
codec/jwst encode var_int (32 bit) 424.5±2.05µs 430.0±4.41µs +1.30%
codec/jwst encode var_uint (32 bit) 375.4±0.79µs 267.9±1.47µs -28.64%
codec/jwst encode var_uint (64 bit) 375.3±0.20µs 276.8±4.88µs -26.25%
codec/lib0 decode var_int (64 bit) 271.1±1.95µs 273.7±0.73µs +0.96%
codec/lib0 decode var_uint (32 bit) 264.6±5.90µs 259.5±4.84µs -1.93%
codec/lib0 decode var_uint (64 bit) 250.6±5.46µs 238.2±3.90µs -4.95%
codec/lib0 encode var_int (64 bit) 424.5±4.42µs 383.9±0.72µs -9.56%
codec/lib0 encode var_uint (32 bit) 277.5±4.35µs 377.1±1.13µs +35.89%
codec/lib0 encode var_uint (64 bit) 275.9±3.99µs 380.2±1.08µs +37.80%
ops/array/jwst/insert 250.5±0.56µs 253.1±0.34µs +1.04%
ops/array/jwst/insert range 360.4±1.48µs 363.2±0.29µs +0.78%
ops/array/jwst/remove 169.2±0.23µs 166.9±0.46µs -1.36%
ops/array/yrs/insert 75.6±0.90µs 74.1±0.39µs -1.98%
ops/array/yrs/insert range 104.8±0.19µs 103.1±0.28µs -1.62%
ops/array/yrs/remove 95.2±0.73µs 97.0±0.29µs +1.89%
ops/map/jwst/get 449.7±6.47ns 461.4±5.05ns +2.60%
ops/map/jwst/insert 6.0±0.03µs 6.1±0.02µs +1.67%
ops/map/jwst/remove 7.5±0.01µs 7.3±0.02µs -2.67%
ops/map/yrs/get 336.6±3.23ns 298.1±1.34ns -11.44%
ops/map/yrs/insert 5.2±0.01µs 5.2±0.01µs -0.00%
ops/map/yrs/remove 7.0±0.01µs 6.9±0.01µs -1.43%
ops/text/jwst/insert 115.7±0.69µs 116.1±2.09µs +0.35%
ops/text/jwst/remove 3.4±0.01µs 3.4±0.02µs -0.00%
ops/text/yrs/insert 33.3±0.17µs 34.0±0.10µs +2.10%
ops/text/yrs/remove 2.3±0.00µs 2.3±0.00µs -0.00%
update/parse with jwst/basic.bin 56.3±0.06µs 53.1±0.03µs -5.68%
update/parse with jwst/database.bin 46.2±0.02µs 43.0±0.04µs -6.93%
update/parse with jwst/large.bin 4.6±0.03ms 4.0±0.01ms -13.04%
update/parse with jwst/with-subdoc.bin 5.7±0.01µs 6.1±0.01µs +7.02%
update/parse with yrs/basic.bin 42.1±0.08µs 42.2±0.10µs +0.24%
update/parse with yrs/database.bin 33.8±0.02µs 34.0±0.06µs +0.59%
update/parse with yrs/large.bin 3.1±0.01ms 3.1±0.01ms -0.00%
update/parse with yrs/with-subdoc.bin 4.4±0.01µs 4.3±0.01µs -2.27%

Benchmark for Windows

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 239.7±1.97µs 243.2±3.48µs +1.46%
codec/jwst decode var_uint (32 bit) 212.3±3.18µs 205.5±1.97µs -3.20%
codec/jwst decode var_uint (64 bit) 242.9±3.57µs 211.5±1.75µs -12.93%
codec/jwst encode var_int (32 bit) 355.7±6.76µs 313.0±5.65µs -12.00%
codec/jwst encode var_uint (32 bit) 232.4±2.55µs 282.9±2.55µs +21.73%
codec/jwst encode var_uint (64 bit) 224.4±3.75µs 277.0±2.12µs +23.44%
codec/lib0 decode var_int (64 bit) 199.0±1.87µs 205.6±2.12µs +3.32%
codec/lib0 decode var_uint (32 bit) 172.6±5.77µs 171.4±3.15µs -0.70%
codec/lib0 decode var_uint (64 bit) 176.6±11.10µs 189.8±3.24µs +7.47%
codec/lib0 encode var_int (64 bit) 306.4±2.47µs 280.4±13.43µs -8.49%
codec/lib0 encode var_uint (32 bit) 213.0±2.20µs 260.7±2.35µs +22.39%
codec/lib0 encode var_uint (64 bit) 230.1±12.34µs 223.5±3.54µs -2.87%
ops/array/jwst/insert 200.8±1.82µs 201.5±1.41µs +0.35%
ops/array/jwst/insert range 272.9±3.36µs 273.4±2.51µs +0.18%
ops/array/jwst/remove 123.0±1.23µs 122.7±0.85µs -0.24%
ops/array/yrs/insert 73.8±0.78µs 71.0±0.70µs -3.79%
ops/array/yrs/insert range 100.5±1.57µs 97.5±0.78µs -2.99%
ops/array/yrs/remove 104.4±0.75µs 103.9±1.22µs -0.48%
ops/map/jwst/get 351.9±7.10ns 357.0±7.55ns +1.45%
ops/map/jwst/insert 6.5±0.05µs 6.5±0.05µs -0.00%
ops/map/jwst/remove 7.2±0.45µs 7.1±0.04µs -1.39%
ops/map/yrs/get 273.4±6.33ns 274.9±4.06ns +0.55%
ops/map/yrs/insert 6.0±0.04µs 5.9±0.04µs -1.67%
ops/map/yrs/remove 8.2±0.06µs 8.0±0.07µs -2.44%
ops/text/jwst/insert 106.4±1.00µs 104.8±1.35µs -1.50%
ops/text/jwst/remove 3.2±0.02µs 3.2±0.04µs -0.00%
ops/text/yrs/insert 30.3±0.22µs 30.3±0.44µs -0.00%
ops/text/yrs/remove 3.0±0.06µs 3.0±0.02µs -0.00%
update/parse with jwst/basic.bin 54.0±0.49µs 57.5±0.78µs +6.48%
update/parse with jwst/database.bin 42.4±0.33µs 44.0±0.53µs +3.77%
update/parse with jwst/large.bin 2.7±0.05ms 2.9±0.07ms +7.41%
update/parse with jwst/with-subdoc.bin 7.6±0.07µs 8.1±0.07µs +6.58%
update/parse with yrs/basic.bin 44.1±0.34µs 43.7±0.25µs -0.91%
update/parse with yrs/database.bin 35.1±0.24µs 34.6±0.25µs -1.42%
update/parse with yrs/large.bin 2.4±0.04ms 2.3±0.07ms -4.17%
update/parse with yrs/with-subdoc.bin 7.5±0.04µs 7.5±0.05µs -0.00%

@darkskygit darkskygit temporarily deployed to development October 17, 2023 05:29 — with GitHub Actions Inactive
@darkskygit darkskygit temporarily deployed to development October 17, 2023 05:29 — with GitHub Actions Inactive
@github-actions
Copy link

Benchmark for Linux

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 461.2±0.52µs 377.4±0.20µs -18.17%
codec/jwst decode var_uint (32 bit) 446.6±0.23µs 473.3±0.15µs +5.98%
codec/jwst decode var_uint (64 bit) 320.4±1.47µs 320.2±0.13µs -0.06%
codec/jwst encode var_int (32 bit) 467.3±4.56µs 502.9±10.00µs +7.62%
codec/jwst encode var_uint (32 bit) 293.5±0.57µs 293.3±0.50µs -0.07%
codec/jwst encode var_uint (64 bit) 293.3±0.47µs 293.5±0.50µs +0.07%
codec/lib0 decode var_int (64 bit) 396.1±0.14µs 396.1±0.13µs -0.00%
codec/lib0 decode var_uint (32 bit) 242.6±10.70µs 351.7±0.57µs +44.97%
codec/lib0 decode var_uint (64 bit) 240.4±0.12µs 385.0±0.12µs +60.15%
codec/lib0 encode var_int (64 bit) 445.0±8.56µs 508.3±5.19µs +14.22%
codec/lib0 encode var_uint (32 bit) 375.7±10.17µs 383.8±0.15µs +2.16%
codec/lib0 encode var_uint (64 bit) 379.9±0.15µs 379.9±0.16µs -0.00%
ops/array/jwst/insert 250.7±0.78µs 250.8±0.34µs +0.04%
ops/array/jwst/insert range 368.4±15.99µs 362.6±0.72µs -1.57%
ops/array/jwst/remove 158.1±0.05µs 158.7±0.21µs +0.38%
ops/array/yrs/insert 79.8±0.87µs 80.4±0.63µs +0.75%
ops/array/yrs/insert range 108.6±0.31µs 108.5±0.12µs -0.09%
ops/array/yrs/remove 101.0±1.08µs 98.8±0.22µs -2.18%
ops/map/jwst/get 456.4±2.30ns 455.6±2.39ns -0.18%
ops/map/jwst/insert 5.7±0.01µs 5.8±0.01µs +1.75%
ops/map/jwst/remove 7.2±0.00µs 7.1±0.01µs -1.39%
ops/map/yrs/get 312.1±3.34ns 310.6±2.33ns -0.48%
ops/map/yrs/insert 5.0±0.01µs 5.0±0.01µs -0.00%
ops/map/yrs/remove 6.5±0.00µs 6.6±0.01µs +1.54%
ops/text/jwst/insert 130.2±2.91µs 126.7±0.75µs -2.69%
ops/text/jwst/remove 3.3±0.02µs 3.3±0.01µs -0.00%
ops/text/yrs/insert 38.4±0.08µs 37.6±0.12µs -2.08%
ops/text/yrs/remove 2.2±0.00µs 2.5±0.02µs +13.64%
update/parse with jwst/basic.bin 58.4±0.14µs 56.0±0.09µs -4.11%
update/parse with jwst/database.bin 40.3±0.74µs 38.8±0.11µs -3.72%
update/parse with jwst/large.bin 4.5±0.02ms 4.2±0.02ms -6.67%
update/parse with jwst/with-subdoc.bin 7.3±0.01µs 7.4±0.02µs +1.37%
update/parse with yrs/basic.bin 45.3±0.03µs 44.7±0.02µs -1.32%
update/parse with yrs/database.bin 30.7±0.05µs 30.9±0.04µs +0.65%
update/parse with yrs/large.bin 3.7±0.01ms 3.3±0.01ms -10.81%
update/parse with yrs/with-subdoc.bin 6.6±0.07µs 6.7±0.00µs +1.52%

Benchmark for Windows

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 473.1±9.90µs 365.8±6.15µs -22.68%
codec/jwst decode var_uint (32 bit) 438.9±18.54µs 389.2±5.03µs -11.32%
codec/jwst decode var_uint (64 bit) 324.0±4.97µs 484.3±6.18µs +49.48%
codec/jwst encode var_int (32 bit) 495.3±10.08µs 476.0±6.73µs -3.90%
codec/jwst encode var_uint (32 bit) 393.9±5.60µs 312.7±5.81µs -20.61%
codec/jwst encode var_uint (64 bit) 386.9±5.09µs 305.6±4.89µs -21.01%
codec/lib0 decode var_int (64 bit) 431.9±5.40µs 290.4±4.04µs -32.76%
codec/lib0 decode var_uint (32 bit) 355.7±5.00µs 242.5±2.96µs -31.82%
codec/lib0 decode var_uint (64 bit) 356.1±4.50µs 242.4±2.81µs -31.93%
codec/lib0 encode var_int (64 bit) 596.0±7.89µs 602.8±8.07µs +1.14%
codec/lib0 encode var_uint (32 bit) 400.1±5.67µs 399.2±5.86µs -0.22%
codec/lib0 encode var_uint (64 bit) 414.4±6.85µs 387.7±4.72µs -6.44%
ops/array/jwst/insert 290.0±5.69µs 287.0±2.64µs -1.03%
ops/array/jwst/insert range 397.9±4.61µs 396.9±17.64µs -0.25%
ops/array/jwst/remove 168.0±2.02µs 167.7±2.06µs -0.18%
ops/array/yrs/insert 111.2±1.90µs 110.8±1.08µs -0.36%
ops/array/yrs/insert range 151.1±1.45µs 149.8±1.57µs -0.86%
ops/array/yrs/remove 160.2±2.17µs 158.1±2.49µs -1.31%
ops/map/jwst/get 503.8±16.42ns 509.5±7.32ns +1.13%
ops/map/jwst/insert 10.4±0.11µs 10.2±0.24µs -1.92%
ops/map/jwst/remove 9.2±0.10µs 9.0±0.16µs -2.17%
ops/map/yrs/get 356.9±6.40ns 355.1±7.63ns -0.50%
ops/map/yrs/insert 8.1±0.08µs 8.2±0.09µs +1.23%
ops/map/yrs/remove 10.5±0.13µs 10.6±0.13µs +0.95%
ops/text/jwst/insert 161.2±4.07µs 160.5±2.54µs -0.43%
ops/text/jwst/remove 3.7±0.06µs 4.0±0.05µs +8.11%
ops/text/yrs/insert 47.2±0.38µs 47.8±0.67µs +1.27%
ops/text/yrs/remove 3.7±0.04µs 3.8±0.04µs +2.70%
update/parse with jwst/basic.bin 84.4±1.23µs 86.7±1.16µs +2.73%
update/parse with jwst/database.bin 63.7±0.58µs 64.5±0.58µs +1.26%
update/parse with jwst/large.bin 3.9±0.08ms 4.2±0.14ms +7.69%
update/parse with jwst/with-subdoc.bin 11.6±0.08µs 12.3±0.13µs +6.03%
update/parse with yrs/basic.bin 68.9±1.38µs 68.8±0.85µs -0.15%
update/parse with yrs/database.bin 52.5±0.44µs 53.8±0.63µs +2.48%
update/parse with yrs/large.bin 3.2±0.11ms 3.3±0.11ms +3.12%
update/parse with yrs/with-subdoc.bin 12.1±0.11µs 12.3±0.11µs +1.65%

@darkskygit darkskygit changed the title feat: string interning for parent key feat: somlstr for parent key Dec 20, 2023
@darkskygit darkskygit marked this pull request as ready for review December 20, 2023 10:58
Copy link

Benchmark for Linux

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 214.7±10.33µs 242.5±0.32µs +12.95%
codec/jwst decode var_uint (32 bit) 178.2±0.81µs 178.3±0.74µs +0.06%
codec/jwst decode var_uint (64 bit) 180.8±1.19µs 180.8±2.49µs -0.00%
codec/jwst encode var_int (32 bit) 302.4±1.32µs 302.1±0.82µs -0.10%
codec/jwst encode var_uint (32 bit) 251.6±3.67µs 252.4±4.29µs +0.32%
codec/jwst encode var_uint (64 bit) 254.1±12.03µs 252.8±3.30µs -0.51%
codec/lib0 decode var_int (64 bit) 185.1±1.73µs 187.8±10.60µs +1.46%
codec/lib0 decode var_uint (32 bit) 151.1±1.67µs 153.1±2.33µs +1.32%
codec/lib0 decode var_uint (64 bit) 153.9±2.85µs 153.4±2.50µs -0.32%
codec/lib0 encode var_int (64 bit) 392.5±10.73µs 384.8±7.10µs -1.96%
codec/lib0 encode var_uint (32 bit) 373.5±4.16µs 373.3±1.66µs -0.05%
codec/lib0 encode var_uint (64 bit) 373.3±0.93µs 372.8±0.40µs -0.13%
ops/array/jwst/insert 106.2±1.22µs 107.2±0.76µs +0.94%
ops/array/jwst/insert range 157.4±3.36µs 160.9±0.69µs +2.22%
ops/array/jwst/remove 63.0±0.70µs 62.9±2.76µs -0.16%
ops/array/yrs/insert 57.3±0.39µs 57.4±0.58µs +0.17%
ops/array/yrs/insert range 75.5±0.58µs 75.1±1.21µs -0.53%
ops/array/yrs/remove 60.8±0.25µs 65.1±0.48µs +7.07%
ops/map/jwst/get 209.3±1.36ns 206.0±4.37ns -1.58%
ops/map/jwst/insert 2.9±0.02µs 3.1±0.02µs +6.90%
ops/map/jwst/remove 4.3±0.11µs 4.3±0.08µs -0.00%
ops/map/yrs/get 301.8±4.61ns 256.0±1.06ns -15.18%
ops/map/yrs/insert 3.9±0.06µs 3.9±0.05µs -0.00%
ops/map/yrs/remove 5.2±0.04µs 5.0±0.08µs -3.85%
ops/text/jwst/insert 70.1±2.34µs 67.5±0.30µs -3.71%
ops/text/jwst/remove 1388.4±7.48ns 1391.1±6.31ns +0.19%
ops/text/yrs/insert 27.1±0.09µs 27.3±0.23µs +0.74%
ops/text/yrs/remove 1730.2±27.87ns 1741.7±7.65ns +0.66%
update/parse with jwst/basic.bin 40.9±0.57µs 38.4±0.26µs -6.11%
update/parse with jwst/database.bin 31.5±0.61µs 29.5±0.25µs -6.35%
update/parse with jwst/large.bin 3.4±0.02ms 3.2±0.03ms -5.88%
update/parse with jwst/with-subdoc.bin 5.0±0.13µs 5.2±0.03µs +4.00%
update/parse with yrs/basic.bin 29.9±0.23µs 29.5±0.40µs -1.34%
update/parse with yrs/database.bin 23.1±0.09µs 23.1±0.12µs -0.00%
update/parse with yrs/large.bin 2.4±0.03ms 2.3±0.03ms -4.17%
update/parse with yrs/with-subdoc.bin 3.7±0.02µs 3.8±0.12µs +2.70%

Benchmark for Windows

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 213.7±5.29µs 212.4±0.77µs -0.61%
codec/jwst decode var_uint (32 bit) 180.5±3.54µs 181.7±5.03µs +0.66%
codec/jwst decode var_uint (64 bit) 195.4±3.08µs 184.4±4.18µs -5.63%
codec/jwst encode var_int (32 bit) 304.7±5.34µs 303.1±4.35µs -0.53%
codec/jwst encode var_uint (32 bit) 273.1±11.31µs 266.9±2.03µs -2.27%
codec/jwst encode var_uint (64 bit) 267.6±1.98µs 249.8±3.48µs -6.65%
codec/lib0 decode var_int (64 bit) 187.3±4.82µs 188.4±6.93µs +0.59%
codec/lib0 decode var_uint (32 bit) 160.1±7.96µs 158.6±7.53µs -0.94%
codec/lib0 decode var_uint (64 bit) 152.7±4.22µs 156.7±6.17µs +2.62%
codec/lib0 encode var_int (64 bit) 384.8±1.53µs 384.3±1.38µs -0.13%
codec/lib0 encode var_uint (32 bit) 373.8±3.10µs 373.1±0.82µs -0.19%
codec/lib0 encode var_uint (64 bit) 375.3±2.17µs 373.4±1.07µs -0.51%
ops/array/jwst/insert 122.1±1.26µs 121.7±0.90µs -0.33%
ops/array/jwst/insert range 182.2±2.22µs 181.4±0.78µs -0.44%
ops/array/jwst/remove 65.8±0.68µs 65.5±0.28µs -0.46%
ops/array/yrs/insert 74.3±0.69µs 71.0±0.38µs -4.44%
ops/array/yrs/insert range 99.4±0.35µs 99.0±0.42µs -0.40%
ops/array/yrs/remove 102.6±0.87µs 103.0±0.59µs +0.39%
ops/map/jwst/get 259.8±2.56ns 266.8±2.96ns +2.69%
ops/map/jwst/insert 4.8±0.02µs 4.8±0.03µs -0.00%
ops/map/jwst/remove 7.2±0.05µs 10.1±0.11µs +40.28%
ops/map/yrs/get 270.9±4.71ns 321.6±9.11ns +18.72%
ops/map/yrs/insert 5.7±0.04µs 5.8±0.05µs +1.75%
ops/map/yrs/remove 6.9±0.17µs 7.1±0.06µs +2.90%
ops/text/jwst/insert 84.8±0.65µs 84.6±0.61µs -0.24%
ops/text/jwst/remove 2.1±0.01µs 2.1±0.06µs -0.00%
ops/text/yrs/insert 35.0±0.31µs 33.8±0.36µs -3.43%
ops/text/yrs/remove 2.5±0.01µs 2.6±0.02µs +4.00%
update/parse with jwst/basic.bin 56.0±0.63µs 59.6±0.60µs +6.43%
update/parse with jwst/database.bin 43.4±0.91µs 45.3±0.19µs +4.38%
update/parse with jwst/large.bin 2.7±0.12ms 2.9±0.10ms +7.41%
update/parse with jwst/with-subdoc.bin 8.0±0.17µs 8.0±0.06µs -0.00%
update/parse with yrs/basic.bin 45.7±0.77µs 44.4±0.37µs -2.84%
update/parse with yrs/database.bin 35.0±0.14µs 35.0±0.21µs -0.00%
update/parse with yrs/large.bin 2.1±0.05ms 2.2±0.05ms +4.76%
update/parse with yrs/with-subdoc.bin 7.2±0.03µs 7.3±0.04µs +1.39%

Copy link

Benchmark for Linux

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 213.4±1.09µs 242.7±1.14µs +13.73%
codec/jwst decode var_uint (32 bit) 178.8±1.36µs 178.1±0.26µs -0.39%
codec/jwst decode var_uint (64 bit) 209.0±17.82µs 182.6±12.21µs -12.63%
codec/jwst encode var_int (32 bit) 306.2±18.87µs 334.7±13.62µs +9.31%
codec/jwst encode var_uint (32 bit) 252.7±3.53µs 251.4±3.39µs -0.51%
codec/jwst encode var_uint (64 bit) 253.5±2.85µs 251.2±3.77µs -0.91%
codec/lib0 decode var_int (64 bit) 186.3±4.09µs 185.8±2.93µs -0.27%
codec/lib0 decode var_uint (32 bit) 153.5±2.77µs 154.2±2.94µs +0.46%
codec/lib0 decode var_uint (64 bit) 154.1±2.97µs 153.8±2.41µs -0.19%
codec/lib0 encode var_int (64 bit) 384.3±0.61µs 393.6±0.86µs +2.42%
codec/lib0 encode var_uint (32 bit) 372.8±0.27µs 373.4±2.90µs +0.16%
codec/lib0 encode var_uint (64 bit) 373.2±0.71µs 373.0±0.59µs -0.05%
ops/array/jwst/insert 105.6±1.84µs 106.8±1.29µs +1.14%
ops/array/jwst/insert range 157.5±0.48µs 161.6±0.38µs +2.60%
ops/array/jwst/remove 61.3±0.28µs 61.7±0.10µs +0.65%
ops/array/yrs/insert 56.5±0.83µs 57.6±2.49µs +1.95%
ops/array/yrs/insert range 74.0±0.64µs 75.4±0.99µs +1.89%
ops/array/yrs/remove 64.8±0.78µs 65.4±0.88µs +0.93%
ops/map/jwst/get 206.0±1.99ns 213.7±7.16ns +3.74%
ops/map/jwst/insert 2.9±0.12µs 3.2±0.01µs +10.34%
ops/map/jwst/remove 4.2±0.03µs 4.5±0.01µs +7.14%
ops/map/yrs/get 259.2±3.71ns 256.1±1.17ns -1.20%
ops/map/yrs/insert 3.8±0.08µs 3.9±0.02µs +2.63%
ops/map/yrs/remove 5.0±0.01µs 5.1±0.12µs +2.00%
ops/text/jwst/insert 67.6±0.99µs 69.0±1.26µs +2.07%
ops/text/jwst/remove 1486.9±23.91ns 1448.3±10.07ns -2.60%
ops/text/yrs/insert 26.9±0.15µs 27.0±0.09µs +0.37%
ops/text/yrs/remove 1733.8±5.64ns 1745.9±16.86ns +0.70%
update/parse with jwst/basic.bin 39.0±0.28µs 37.8±0.09µs -3.08%
update/parse with jwst/database.bin 30.2±0.47µs 29.5±0.45µs -2.32%
update/parse with jwst/large.bin 3.3±0.03ms 3.2±0.04ms -3.03%
update/parse with jwst/with-subdoc.bin 4.9±0.02µs 5.1±0.09µs +4.08%
update/parse with yrs/basic.bin 30.4±0.43µs 29.6±0.14µs -2.63%
update/parse with yrs/database.bin 23.3±0.27µs 23.0±0.19µs -1.29%
update/parse with yrs/large.bin 2.5±0.01ms 2.4±0.03ms -4.00%
update/parse with yrs/with-subdoc.bin 4.6±0.11µs 4.6±0.03µs -0.00%

Benchmark for Windows

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 214.0±4.44µs 213.0±1.00µs -0.47%
codec/jwst decode var_uint (32 bit) 185.5±5.13µs 181.4±3.74µs -2.21%
codec/jwst decode var_uint (64 bit) 184.6±5.24µs 184.2±4.52µs -0.22%
codec/jwst encode var_int (32 bit) 304.5±3.82µs 302.5±1.88µs -0.66%
codec/jwst encode var_uint (32 bit) 258.6±5.18µs 269.1±3.39µs +4.06%
codec/jwst encode var_uint (64 bit) 253.7±6.23µs 264.3±8.25µs +4.18%
codec/lib0 decode var_int (64 bit) 183.8±0.70µs 193.2±9.48µs +5.11%
codec/lib0 decode var_uint (32 bit) 154.6±4.81µs 156.0±4.15µs +0.91%
codec/lib0 decode var_uint (64 bit) 156.3±6.81µs 156.3±8.07µs -0.00%
codec/lib0 encode var_int (64 bit) 385.7±1.52µs 385.2±1.80µs -0.13%
codec/lib0 encode var_uint (32 bit) 373.9±1.22µs 373.1±1.16µs -0.21%
codec/lib0 encode var_uint (64 bit) 373.4±0.96µs 373.4±1.51µs -0.00%
ops/array/jwst/insert 122.5±0.64µs 124.8±1.83µs +1.88%
ops/array/jwst/insert range 182.9±0.60µs 184.3±0.71µs +0.77%
ops/array/jwst/remove 66.1±0.39µs 67.4±0.28µs +1.97%
ops/array/yrs/insert 71.7±0.76µs 74.3±0.33µs +3.63%
ops/array/yrs/insert range 98.1±0.56µs 99.1±0.44µs +1.02%
ops/array/yrs/remove 101.8±0.60µs 102.6±0.68µs +0.79%
ops/map/jwst/get 259.3±3.77ns 266.9±2.85ns +2.93%
ops/map/jwst/insert 4.6±0.02µs 4.8±0.03µs +4.35%
ops/map/jwst/remove 7.1±0.04µs 7.3±0.03µs +2.82%
ops/map/yrs/get 272.9±5.88ns 270.1±10.21ns -1.03%
ops/map/yrs/insert 5.7±0.02µs 5.8±0.05µs +1.75%
ops/map/yrs/remove 7.0±0.06µs 7.0±0.02µs -0.00%
ops/text/jwst/insert 85.0±0.93µs 84.0±0.69µs -1.18%
ops/text/jwst/remove 2.2±0.02µs 2.2±0.01µs -0.00%
ops/text/yrs/insert 34.8±0.36µs 33.9±0.22µs -2.59%
ops/text/yrs/remove 2.5±0.01µs 2.6±0.01µs +4.00%
update/parse with jwst/basic.bin 54.1±0.54µs 56.2±0.46µs +3.88%
update/parse with jwst/database.bin 44.5±0.52µs 44.8±0.20µs +0.67%
update/parse with jwst/large.bin 2.6±0.13ms 2.8±0.04ms +7.69%
update/parse with jwst/with-subdoc.bin 8.0±0.03µs 8.0±0.05µs -0.00%
update/parse with yrs/basic.bin 44.8±0.32µs 44.4±0.38µs -0.89%
update/parse with yrs/database.bin 35.3±0.26µs 34.9±0.23µs -1.13%
update/parse with yrs/large.bin 2.2±0.10ms 2.2±0.06ms -0.00%
update/parse with yrs/with-subdoc.bin 7.2±0.04µs 7.0±0.17µs -2.78%

@Brooooooklyn Brooooooklyn enabled auto-merge (squash) December 25, 2023 07:53
@darkskygit darkskygit merged commit 4d6a29c into main Dec 25, 2023
16 checks passed
@darkskygit darkskygit deleted the darksky/small-key branch December 25, 2023 08:17
Copy link

Benchmark for Linux

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 214.0±13.32µs 212.3±0.72µs -0.79%
codec/jwst decode var_uint (32 bit) 182.0±11.66µs 178.2±0.69µs -2.09%
codec/jwst decode var_uint (64 bit) 193.5±0.63µs 206.5±1.50µs +6.72%
codec/jwst encode var_int (32 bit) 336.9±16.67µs 338.3±29.89µs +0.42%
codec/jwst encode var_uint (32 bit) 249.5±3.95µs 252.8±3.95µs +1.32%
codec/jwst encode var_uint (64 bit) 248.7±3.35µs 252.1±3.66µs +1.37%
codec/lib0 decode var_int (64 bit) 188.5±11.01µs 185.9±2.82µs -1.38%
codec/lib0 decode var_uint (32 bit) 153.7±2.66µs 154.4±9.26µs +0.46%
codec/lib0 decode var_uint (64 bit) 153.8±2.76µs 176.0±1.00µs +14.43%
codec/lib0 encode var_int (64 bit) 385.0±0.74µs 385.8±8.45µs +0.21%
codec/lib0 encode var_uint (32 bit) 373.8±0.47µs 373.3±1.04µs -0.13%
codec/lib0 encode var_uint (64 bit) 373.8±0.68µs 373.2±0.54µs -0.16%
ops/array/jwst/insert 105.2±0.62µs 105.2±0.30µs -0.00%
ops/array/jwst/insert range 155.3±1.00µs 158.9±2.54µs +2.32%
ops/array/jwst/remove 61.7±0.26µs 62.6±0.16µs +1.46%
ops/array/yrs/insert 56.1±0.16µs 57.5±0.48µs +2.50%
ops/array/yrs/insert range 74.2±0.46µs 75.1±3.18µs +1.21%
ops/array/yrs/remove 63.4±0.82µs 62.6±0.89µs -1.26%
ops/map/jwst/get 207.4±19.19ns 210.7±1.78ns +1.59%
ops/map/jwst/insert 2.9±0.02µs 3.1±0.02µs +6.90%
ops/map/jwst/remove 4.1±0.02µs 4.4±0.02µs +7.32%
ops/map/yrs/get 256.2±1.42ns 255.6±1.19ns -0.23%
ops/map/yrs/insert 3.9±0.11µs 3.9±0.02µs -0.00%
ops/map/yrs/remove 5.0±0.02µs 5.0±0.07µs -0.00%
ops/text/jwst/insert 67.3±0.55µs 67.0±0.33µs -0.45%
ops/text/jwst/remove 1388.9±5.76ns 1434.3±5.83ns +3.27%
ops/text/yrs/insert 27.3±0.36µs 27.2±0.14µs -0.37%
ops/text/yrs/remove 1776.9±35.53ns 1808.6±18.33ns +1.78%
update/parse with jwst/basic.bin 38.6±0.30µs 38.2±0.17µs -1.04%
update/parse with jwst/database.bin 30.3±0.61µs 29.8±1.01µs -1.65%
update/parse with jwst/large.bin 3.6±0.02ms 3.2±0.03ms -11.11%
update/parse with jwst/with-subdoc.bin 4.9±0.04µs 5.1±0.06µs +4.08%
update/parse with yrs/basic.bin 30.5±0.41µs 30.3±0.25µs -0.66%
update/parse with yrs/database.bin 23.3±0.39µs 23.0±0.21µs -1.29%
update/parse with yrs/large.bin 2.4±0.01ms 2.4±0.11ms -0.00%
update/parse with yrs/with-subdoc.bin 4.6±0.02µs 4.8±0.04µs +4.35%

Benchmark for Windows

Click to view benchmark
Test Base PR %
codec/jwst decode var_int (32 bit) 243.6±3.94µs 213.4±1.14µs -12.40%
codec/jwst decode var_uint (32 bit) 182.1±3.78µs 182.7±2.17µs +0.33%
codec/jwst decode var_uint (64 bit) 182.6±3.72µs 184.5±4.03µs +1.04%
codec/jwst encode var_int (32 bit) 303.9±3.12µs 364.5±2.09µs +19.94%
codec/jwst encode var_uint (32 bit) 251.4±1.90µs 246.0±5.95µs -2.15%
codec/jwst encode var_uint (64 bit) 247.1±3.05µs 268.5±6.27µs +8.66%
codec/lib0 decode var_int (64 bit) 189.8±7.01µs 185.8±3.21µs -2.11%
codec/lib0 decode var_uint (32 bit) 150.8±2.49µs 156.0±1.40µs +3.45%
codec/lib0 decode var_uint (64 bit) 155.5±5.00µs 155.9±6.10µs +0.26%
codec/lib0 encode var_int (64 bit) 385.9±5.88µs 384.2±1.74µs -0.44%
codec/lib0 encode var_uint (32 bit) 374.9±4.03µs 374.4±2.41µs -0.13%
codec/lib0 encode var_uint (64 bit) 373.4±1.73µs 374.3±1.25µs +0.24%
ops/array/jwst/insert 122.9±0.56µs 122.0±0.82µs -0.73%
ops/array/jwst/insert range 178.4±1.45µs 180.5±0.93µs +1.18%
ops/array/jwst/remove 67.1±0.17µs 65.7±0.19µs -2.09%
ops/array/yrs/insert 71.8±1.27µs 72.2±0.38µs +0.56%
ops/array/yrs/insert range 97.5±0.51µs 98.2±0.45µs +0.72%
ops/array/yrs/remove 106.0±1.30µs 101.8±0.36µs -3.96%
ops/map/jwst/get 261.5±3.21ns 266.8±2.62ns +2.03%
ops/map/jwst/insert 4.7±0.03µs 4.8±0.04µs +2.13%
ops/map/jwst/remove 8.5±0.07µs 7.0±0.03µs -17.65%
ops/map/yrs/get 270.4±5.52ns 271.2±4.39ns +0.30%
ops/map/yrs/insert 5.7±0.03µs 5.8±0.07µs +1.75%
ops/map/yrs/remove 6.9±0.05µs 7.0±0.03µs +1.45%
ops/text/jwst/insert 83.4±0.41µs 85.1±0.65µs +2.04%
ops/text/jwst/remove 2.1±0.02µs 2.2±0.01µs +4.76%
ops/text/yrs/insert 34.0±0.33µs 33.8±0.34µs -0.59%
ops/text/yrs/remove 2.6±0.01µs 2.5±0.01µs -3.85%
update/parse with jwst/basic.bin 54.9±0.47µs 58.7±0.59µs +6.92%
update/parse with jwst/database.bin 42.8±0.40µs 45.3±0.31µs +5.84%
update/parse with jwst/large.bin 2.7±0.12ms 3.0±0.18ms +11.11%
update/parse with jwst/with-subdoc.bin 7.8±0.15µs 8.2±0.10µs +5.13%
update/parse with yrs/basic.bin 43.4±0.24µs 44.6±2.90µs +2.76%
update/parse with yrs/database.bin 35.6±0.18µs 35.3±0.18µs -0.84%
update/parse with yrs/large.bin 2.1±0.07ms 2.2±0.08ms +4.76%
update/parse with yrs/with-subdoc.bin 7.3±0.04µs 7.3±0.05µs -0.00%

darkskygit added a commit to toeverything/OctoBase that referenced this pull request Dec 28, 2023
darkskygit added a commit to toeverything/OctoBase that referenced this pull request Jan 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants