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

[Rust] Subtyping support for deserialization #211

Merged
merged 55 commits into from
Apr 22, 2021
Merged

[Rust] Subtyping support for deserialization #211

merged 55 commits into from
Apr 22, 2021

Conversation

chenyan-dfinity
Copy link
Contributor

@chenyan-dfinity chenyan-dfinity commented Mar 23, 2021

Breaking changes:

@github-actions
Copy link

Benchmark for 9b3de77

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 271.7±85.68µs 273.4±84.01µs -0.62%
Blob/ByteBuf 260.3±64.38µs 259.4±62.61µs +0.35%
Blob/Bytes 154.8±45.44µs 159.6±44.90µs -3.01%
Blob/String 375.4±90.06µs 376.8±91.30µs -0.37%
profiles/200 555.2±21.24µs 568.0±15.59µs -2.25%

@github-actions
Copy link

Benchmark for 045ed46

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 247.8±75.31µs 251.8±70.77µs -1.59%
Blob/ByteBuf 243.4±61.59µs 248.1±62.10µs -1.89%
Blob/Bytes 135.4±34.18µs 145.1±37.32µs -6.69%
Blob/String 351.5±94.93µs 346.8±87.41µs +1.36%
profiles/200 523.9±38.40µs 527.4±52.07µs -0.66%

@github-actions
Copy link

Benchmark for 507a014

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 241.6±56.19µs 232.7±53.50µs +3.82%
Blob/ByteBuf 174.5±52.74µs 174.6±52.64µs -0.06%
Blob/Bytes 107.8±25.20µs 103.8±24.67µs +3.85%
Blob/String 260.5±61.11µs 261.3±61.03µs -0.31%
Collections/vec (text, nat) 85.5±2.74ms 84.6±1.61ms +1.06%
Collections/vec int 41.0±0.72ms 39.2±0.49ms +4.59%
Collections/vec int64 28.0±0.78ms 22.0±0.45ms +27.27%
Collections/vec nat8 22.8±0.36ms 17.7±0.23ms +28.81%
option list/512 1457.6±31.95µs 559.7±15.49µs +160.43%
profiles/512 2.6±0.04ms 1256.8±22.62µs +106.87%
variant list/512 1402.8±20.97µs 627.5±18.28µs +123.55%

@github-actions
Copy link

Benchmark for 0dffde1

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 252.3±56.61µs 255.2±54.10µs -1.14%
Blob/ByteBuf 244.4±67.28µs 258.5±59.18µs -5.45%
Blob/Bytes 159.5±38.62µs 144.8±31.71µs +10.15%
Blob/String 322.3±71.40µs 337.5±60.88µs -4.50%
Collections/vec (text, nat) 94.3±5.17ms 97.2±3.96ms -2.98%
Collections/vec int 44.0±1.80ms 43.4±1.91ms +1.38%
Collections/vec int64 33.2±1.75ms 25.1±1.27ms +32.27%
Collections/vec nat8 25.5±1.00ms 20.0±1.07ms +27.50%
option list/512 1670.4±72.68µs 671.0±24.99µs +148.94%
profiles/512 2.9±0.15ms 1468.3±405.75µs +97.51%
variant list/512 1609.3±64.90µs 772.0±35.62µs +108.46%

@github-actions
Copy link

Benchmark for adf7edd

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 250.9±53.45µs 251.6±52.40µs -0.28%
Blob/ByteBuf 192.4±49.39µs 192.6±50.07µs -0.10%
Blob/Bytes 122.5±22.56µs 120.7±23.37µs +1.49%
Blob/String 275.6±57.11µs 276.4±57.86µs -0.29%
Collections/vec (text, nat) 89.1±2.07ms 90.1±3.21ms -1.11%
Collections/vec int 42.3±0.09ms 40.4±0.08ms +4.70%
Collections/vec int64 30.0±0.40ms 24.5±0.23ms +22.45%
Collections/vec nat8 23.6±0.03ms 18.4±0.09ms +28.26%
option list/512 1526.1±5.54µs 563.1±1.89µs +171.02%
profiles/512 2.7±0.01ms 1294.2±1.36µs +108.62%
variant list/512 1463.7±4.10µs 645.8±31.62µs +126.65%

@github-actions
Copy link

Benchmark for 72e7ff1

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 239.9±54.10µs 236.3±54.25µs +1.52%
Blob/ByteBuf 180.4±57.45µs 179.9±52.87µs +0.28%
Blob/Bytes 112.3±26.24µs 107.7±25.43µs +4.27%
Blob/String 261.5±60.61µs 270.3±61.18µs -3.26%
Collections/vec (text, nat) 85.1±1.17ms 87.8±1.35ms -3.08%
Collections/vec int 41.5±1.32ms 39.7±0.31ms +4.53%
Collections/vec int64 30.2±0.45ms 22.5±0.39ms +34.22%
Collections/vec nat8 23.5±0.20ms 18.0±0.19ms +30.56%
option list/512 1499.8±25.14µs 560.6±4.88µs +167.53%
profiles/512 2.7±0.03ms 1421.0±16.15µs +90.01%
variant list/512 1454.0±12.70µs 628.2±5.99µs +131.45%

@github-actions
Copy link

Benchmark for 56e942e

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 247.7±54.80µs 239.3±54.33µs +3.51%
Blob/ByteBuf 180.9±52.63µs 186.3±52.05µs -2.90%
Blob/Bytes 118.8±25.42µs 109.9±25.53µs +8.10%
Blob/String 263.0±60.96µs 268.7±60.41µs -2.12%
Collections/vec (text, nat) 87.0±1.91ms 88.4±1.14ms -1.58%
Collections/vec int 41.4±0.20ms 41.4±0.11ms 0.00%
Collections/vec int64 29.9±0.38ms 23.2±0.22ms +28.88%
Collections/vec nat8 23.4±0.05ms 18.4±0.12ms +27.17%
option list/512 1515.4±9.12µs 565.3±2.29µs +168.07%
profiles/512 2.7±0.01ms 1293.5±7.15µs +108.74%
variant list/512 1437.5±12.40µs 641.9±3.40µs +123.94%

@github-actions
Copy link

Benchmark for 1195e66

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 242.1±52.56µs 239.7±54.26µs +1.00%
Blob/ByteBuf 226.8±67.39µs 240.3±55.93µs -5.62%
Blob/Bytes 141.8±30.67µs 141.0±29.01µs +0.57%
Blob/String 290.9±53.80µs 326.4±53.25µs -10.88%
Collections/vec (text, nat) 85.6±3.54ms 92.7±3.56ms -7.66%
Collections/vec int 41.4±1.90ms 41.7±1.50ms -0.72%
Collections/vec int64 32.2±1.27ms 24.8±1.50ms +29.84%
Collections/vec nat8 24.8±0.76ms 19.2±1.01ms +29.17%
option list/1024 3.1±0.12ms 1242.8±42.38µs +149.44%
option list/512 1430.6±51.76µs 534.8±16.80µs +167.50%
profiles/1024 5.4±0.20ms 2.7±0.12ms +100.00%
profiles/512 2.5±0.08ms 1229.9±31.58µs +103.27%
variant list/1024 3.0±0.10ms 1475.0±27.32µs +103.39%
variant list/512 1397.0±42.95µs 601.0±18.27µs +132.45%

@github-actions
Copy link

Benchmark for 873e8c5

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 231.3±73.38µs 218.7±71.63µs +5.76%
Blob/ByteBuf 181.7±49.63µs 195.6±44.86µs -7.11%
Blob/Bytes 123.2±28.99µs 116.0±30.59µs +6.21%
Blob/String 277.1±78.25µs 296.4±74.01µs -6.51%
Collections/vec (text, nat) 77.8±3.63ms 78.4±3.76ms -0.77%
Collections/vec int 36.4±1.13ms 35.1±1.34ms +3.70%
Collections/vec int64 27.4±1.50ms 20.0±0.72ms +37.00%
Collections/vec nat8 22.0±0.71ms 16.3±0.48ms +34.97%
option list/1024 2.9±0.14ms 1074.2±46.36µs +169.97%
profiles/1024 4.9±0.16ms 2.3±0.07ms +113.04%
variant list/1024 2.7±0.10ms 1226.9±70.65µs +120.07%

@chenyan-dfinity chenyan-dfinity changed the title refactor deserialization [Rust] Subtyping support for deserialization Apr 20, 2021
@github-actions
Copy link

Benchmark for dce9c5f

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 244.4±61.30µs 255.2±45.15µs -4.23%
Blob/ByteBuf 237.6±54.58µs 254.9±65.34µs -6.79%
Blob/Bytes 143.4±31.86µs 138.2±32.80µs +3.76%
Blob/String 293.8±54.58µs 355.5±51.60µs -17.36%
Collections/vec (text, nat) 89.4±6.23ms 86.4±5.26ms +3.47%
Collections/vec int 39.2±3.44ms 39.1±2.38ms +0.26%
Collections/vec int64 33.8±1.85ms 24.2±1.74ms +39.67%
Collections/vec nat8 24.6±1.55ms 19.6±0.76ms +25.51%
option list/1024 3.4±0.19ms 1287.8±69.58µs +164.02%
profiles/1024 5.3±0.32ms 2.7±0.15ms +96.30%
variant list/1024 3.1±0.13ms 1405.0±76.29µs +120.64%

@chenyan-dfinity chenyan-dfinity marked this pull request as ready for review April 20, 2021 00:36
@github-actions
Copy link

Benchmark for 0ce964a

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 250.3±49.97µs 247.9±70.83µs +0.97%
Blob/ByteBuf 227.3±53.34µs 252.8±55.85µs -10.09%
Blob/Bytes 150.2±29.73µs 143.5±31.11µs +4.67%
Blob/String 314.5±55.05µs 325.6±49.32µs -3.41%
Collections/vec (text, nat) 91.0±5.30ms 90.9±4.80ms +0.11%
Collections/vec int 41.5±1.56ms 40.4±1.98ms +2.72%
Collections/vec int64 33.3±1.45ms 24.5±1.17ms +35.92%
Collections/vec nat8 24.5±0.90ms 18.7±1.09ms +31.02%
option list/1024 3.3±0.24ms 1266.8±63.42µs +160.50%
profiles/1024 5.3±0.33ms 2.7±0.12ms +96.30%
variant list/1024 3.2±0.18ms 1459.8±89.98µs +119.21%

@chenyan-dfinity chenyan-dfinity changed the base branch from master to beta April 20, 2021 22:58
@chenyan-dfinity chenyan-dfinity merged commit 7ea9404 into beta Apr 22, 2021
@chenyan-dfinity chenyan-dfinity deleted the binread branch April 22, 2021 21:47
@github-actions
Copy link

Benchmark for 5a76023

Click to view benchmark
Test PR Benchmark Master Benchmark %
Blob/&str 263.3±59.50µs 268.1±66.71µs -1.79%
Blob/ByteBuf 225.1±65.30µs 229.4±67.28µs -1.87%
Blob/Bytes 129.3±27.79µs 125.3±28.09µs +3.19%
Blob/String 302.5±65.60µs 303.0±67.89µs -0.17%
Collections/vec (text, nat) 94.4±2.55ms 94.2±1.80ms +0.21%
Collections/vec int 44.6±0.06ms 41.9±0.07ms +6.44%
Collections/vec int64 32.7±0.08ms 26.2±0.09ms +24.81%
Collections/vec nat8 24.4±0.04ms 19.1±0.03ms +27.75%
option list/1024 3.2±0.01ms 1185.5±2.33µs +169.93%
profiles/1024 5.6±0.02ms 2.7±0.01ms +107.41%
variant list/1024 3.0±0.01ms 1354.9±2.70µs +121.42%

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.

Disable/warn opt rule for textual parser
2 participants