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

Decoder reduce allocations #76

Merged
merged 6 commits into from
May 28, 2017
Merged

Decoder reduce allocations #76

merged 6 commits into from
May 28, 2017

Conversation

klauspost
Copy link
Owner

Test changed to re-use decoder via Reset.

Added random data file, which will test speed of decoding stored data.

name                       old time/op    new time/op     delta
DecodeDigitsSpeed1e4-8        147µs ± 0%      142µs ± 1%   -3.81%
DecodeDigitsSpeed1e5-8       1.52ms ± 4%     1.44ms ± 1%   -5.30%
DecodeDigitsSpeed1e6-8       14.1ms ± 2%     13.5ms ± 1%   -4.15%
DecodeDigitsDefault1e4-8      148µs ± 2%      140µs ± 0%   -5.83%
DecodeDigitsDefault1e5-8     1.48ms ± 3%     1.41ms ± 0%   -4.74%
DecodeDigitsDefault1e6-8     14.9ms ± 2%     14.3ms ± 1%   -3.98%
DecodeDigitsCompress1e4-8     150µs ± 3%      141µs ± 0%   -6.07%
DecodeDigitsCompress1e5-8    1.48ms ± 4%     1.40ms ± 0%   -5.35%
DecodeDigitsCompress1e6-8    14.7ms ± 4%     13.9ms ± 0%   -5.24%
DecodeTwainSpeed1e4-8         155µs ± 4%      145µs ± 0%   -6.99%
DecodeTwainSpeed1e5-8        1.40ms ± 2%     1.32ms ± 0%   -5.45%
DecodeTwainSpeed1e6-8        13.9ms ± 1%     13.6ms ± 6%   -1.99%
DecodeTwainDefault1e4-8       145µs ± 1%      137µs ± 0%   -5.34%
DecodeTwainDefault1e5-8      1.21ms ± 1%     1.17ms ± 0%   -4.08%
DecodeTwainDefault1e6-8      11.8ms ± 1%     11.4ms ± 1%   -3.18%
DecodeTwainCompress1e4-8      143µs ± 1%      135µs ± 0%   -5.64%
DecodeTwainCompress1e5-8     1.17ms ± 1%     1.12ms ± 0%   -4.24%
DecodeTwainCompress1e6-8     11.4ms ± 1%     11.0ms ± 1%   -3.13%
DecodeRandomSpeed1e4-8       1.04µs ± 1%     0.72µs ± 1%  -30.83%
DecodeRandomSpeed1e5-8       6.04µs ± 1%     5.70µs ± 1%   -5.62%
DecodeRandomSpeed1e6-8       57.8µs ± 1%     57.4µs ± 1%   -0.62%

name                       old speed      new speed       delta
DecodeDigitsSpeed1e4-8     68.0MB/s ± 0%   70.7MB/s ± 1%   +3.96%
DecodeDigitsSpeed1e5-8     66.0MB/s ± 4%   69.7MB/s ± 1%   +5.52%
DecodeDigitsSpeed1e6-8     71.1MB/s ± 2%   74.2MB/s ± 1%   +4.32%
DecodeDigitsDefault1e4-8   67.4MB/s ± 2%   71.6MB/s ± 0%   +6.16%
DecodeDigitsDefault1e5-8   67.8MB/s ± 3%   71.1MB/s ± 0%   +4.94%
DecodeDigitsDefault1e6-8   67.3MB/s ± 2%   70.0MB/s ± 1%   +4.12%
DecodeDigitsCompress1e4-8  66.8MB/s ± 3%   71.1MB/s ± 0%   +6.40%
DecodeDigitsCompress1e5-8  67.8MB/s ± 4%   71.5MB/s ± 0%   +5.56%
DecodeDigitsCompress1e6-8  68.1MB/s ± 4%   71.8MB/s ± 0%   +5.47%
DecodeTwainSpeed1e4-8      64.4MB/s ± 4%   69.2MB/s ± 0%   +7.43%
DecodeTwainSpeed1e5-8      71.4MB/s ± 2%   75.5MB/s ± 0%   +5.75%
DecodeTwainSpeed1e6-8      72.0MB/s ± 1%   73.6MB/s ± 6%   +2.21%
DecodeTwainDefault1e4-8    69.1MB/s ± 1%   73.0MB/s ± 0%   +5.63%
DecodeTwainDefault1e5-8    82.3MB/s ± 1%   85.8MB/s ± 0%   +4.25%
DecodeTwainDefault1e6-8    85.0MB/s ± 1%   87.8MB/s ± 1%   +3.28%
DecodeTwainCompress1e4-8   70.1MB/s ± 1%   74.3MB/s ± 0%   +5.96%
DecodeTwainCompress1e5-8   85.2MB/s ± 1%   88.9MB/s ± 0%   +4.42%
DecodeTwainCompress1e6-8   87.8MB/s ± 1%   90.6MB/s ± 1%   +3.23%
DecodeRandomSpeed1e4-8     9.65GB/s ± 1%  13.95GB/s ± 1%  +44.57%
DecodeRandomSpeed1e5-8     16.5GB/s ± 1%   17.5GB/s ± 1%   +5.95%
DecodeRandomSpeed1e6-8     17.3GB/s ± 1%   17.4GB/s ± 1%   +0.62%

name                       old alloc/op   new alloc/op    delta
DecodeDigitsSpeed1e4-8         132B ± 0%        52B ± 0%  -60.61%
DecodeDigitsSpeed1e5-8         440B ± 0%        88B ± 0%  -80.00%
DecodeDigitsSpeed1e6-8       4.28kB ± 0%     0.46kB ± 0%  -89.27%
DecodeDigitsDefault1e4-8       100B ± 0%        52B ± 0%  -48.00%
DecodeDigitsDefault1e5-8       424B ± 0%        88B ± 0%  -79.25%
DecodeDigitsDefault1e6-8     4.99kB ± 0%     0.45kB ± 0%  -90.90%
DecodeDigitsCompress1e4-8      100B ± 0%        52B ± 0%  -48.00%
DecodeDigitsCompress1e5-8      376B ± 0%        88B ± 0%  -76.60%
DecodeDigitsCompress1e6-8    4.89kB ± 0%     0.45kB ± 0%  -90.74%
DecodeTwainSpeed1e4-8          972B ± 0%        52B ± 0%  -94.65%
DecodeTwainSpeed1e5-8        4.40kB ± 0%     0.09kB ± 0%  -97.95%
DecodeTwainSpeed1e6-8        38.5kB ± 0%      0.5kB ± 0%  -98.76%
DecodeTwainDefault1e4-8        612B ± 0%        52B ± 0%  -91.50%
DecodeTwainDefault1e5-8      5.03kB ± 0%     0.07kB ± 0%  -98.63%
DecodeTwainDefault1e6-8      33.8kB ± 0%      0.5kB ± 0%  -98.46%
DecodeTwainCompress1e4-8       732B ± 0%        52B ± 0%  -92.90%
DecodeTwainCompress1e5-8     2.65kB ± 1%     0.07kB ± 0%  -97.43%
DecodeTwainCompress1e6-8     24.4kB ± 0%      0.5kB ± 0%  -97.92%
DecodeRandomSpeed1e4-8        48.0B ± 0%      48.0B ± 0%   +0.00%
DecodeRandomSpeed1e5-8        48.0B ± 0%      48.0B ± 0%   +0.00%
DecodeRandomSpeed1e6-8        49.0B ± 0%      49.0B ± 0%   +0.00%

name                       old allocs/op  new allocs/op   delta
DecodeDigitsSpeed1e4-8         4.00 ± 0%       1.00 ± 0%  -75.00%
DecodeDigitsSpeed1e5-8         7.00 ± 0%       1.00 ± 0%  -85.71%
DecodeDigitsSpeed1e6-8         60.0 ± 0%        1.0 ± 0%  -98.33%
DecodeDigitsDefault1e4-8       3.00 ± 0%       1.00 ± 0%  -66.67%
DecodeDigitsDefault1e5-8       10.0 ± 0%        1.0 ± 0%  -90.00%
DecodeDigitsDefault1e6-8       96.0 ± 0%        1.0 ± 0%  -98.96%
DecodeDigitsCompress1e4-8      3.00 ± 0%       1.00 ± 0%  -66.67%
DecodeDigitsCompress1e5-8      9.00 ± 0%       1.00 ± 0%  -88.89%
DecodeDigitsCompress1e6-8      87.0 ± 0%        1.0 ± 0%  -98.85%
DecodeTwainSpeed1e4-8          14.0 ± 0%        1.0 ± 0%  -92.86%
DecodeTwainSpeed1e5-8          26.0 ± 0%        1.0 ± 0%  -96.15%
DecodeTwainSpeed1e6-8           195 ± 0%          1 ± 0%  -99.49%
DecodeTwainDefault1e4-8        13.0 ± 0%        1.0 ± 0%  -92.31%
DecodeTwainDefault1e5-8        26.0 ± 0%        1.0 ± 0%  -96.15%
DecodeTwainDefault1e6-8         199 ± 0%          1 ± 0%  -99.50%
DecodeTwainCompress1e4-8       15.0 ± 0%        1.0 ± 0%  -93.33%
DecodeTwainCompress1e5-8       24.0 ± 0%        1.0 ± 0%  -95.83%
DecodeTwainCompress1e6-8        195 ± 0%          1 ± 0%  -99.49%
DecodeRandomSpeed1e4-8         1.00 ± 0%       1.00 ± 0%   +0.00%
DecodeRandomSpeed1e5-8         1.00 ± 0%       1.00 ± 0%   +0.00%
DecodeRandomSpeed1e6-8         1.00 ± 0%       1.00 ± 0%   +0.00%

Test changed to re-use decoder via Reset.

name                       old time/op    new time/op     delta
DecodeDigitsSpeed1e4-8        147µs ± 0%      142µs ± 1%   -3.81%
DecodeDigitsSpeed1e5-8       1.52ms ± 4%     1.44ms ± 1%   -5.30%
DecodeDigitsSpeed1e6-8       14.1ms ± 2%     13.5ms ± 1%   -4.15%
DecodeDigitsDefault1e4-8      148µs ± 2%      140µs ± 0%   -5.83%
DecodeDigitsDefault1e5-8     1.48ms ± 3%     1.41ms ± 0%   -4.74%
DecodeDigitsDefault1e6-8     14.9ms ± 2%     14.3ms ± 1%   -3.98%
DecodeDigitsCompress1e4-8     150µs ± 3%      141µs ± 0%   -6.07%
DecodeDigitsCompress1e5-8    1.48ms ± 4%     1.40ms ± 0%   -5.35%
DecodeDigitsCompress1e6-8    14.7ms ± 4%     13.9ms ± 0%   -5.24%
DecodeTwainSpeed1e4-8         155µs ± 4%      145µs ± 0%   -6.99%
DecodeTwainSpeed1e5-8        1.40ms ± 2%     1.32ms ± 0%   -5.45%
DecodeTwainSpeed1e6-8        13.9ms ± 1%     13.6ms ± 6%   -1.99%
DecodeTwainDefault1e4-8       145µs ± 1%      137µs ± 0%   -5.34%
DecodeTwainDefault1e5-8      1.21ms ± 1%     1.17ms ± 0%   -4.08%
DecodeTwainDefault1e6-8      11.8ms ± 1%     11.4ms ± 1%   -3.18%
DecodeTwainCompress1e4-8      143µs ± 1%      135µs ± 0%   -5.64%
DecodeTwainCompress1e5-8     1.17ms ± 1%     1.12ms ± 0%   -4.24%
DecodeTwainCompress1e6-8     11.4ms ± 1%     11.0ms ± 1%   -3.13%
DecodeRandomSpeed1e4-8       1.04µs ± 1%     0.72µs ± 1%  -30.83%
DecodeRandomSpeed1e5-8       6.04µs ± 1%     5.70µs ± 1%   -5.62%
DecodeRandomSpeed1e6-8       57.8µs ± 1%     57.4µs ± 1%   -0.62%

name                       old speed      new speed       delta
DecodeDigitsSpeed1e4-8     68.0MB/s ± 0%   70.7MB/s ± 1%   +3.96%
DecodeDigitsSpeed1e5-8     66.0MB/s ± 4%   69.7MB/s ± 1%   +5.52%
DecodeDigitsSpeed1e6-8     71.1MB/s ± 2%   74.2MB/s ± 1%   +4.32%
DecodeDigitsDefault1e4-8   67.4MB/s ± 2%   71.6MB/s ± 0%   +6.16%
DecodeDigitsDefault1e5-8   67.8MB/s ± 3%   71.1MB/s ± 0%   +4.94%
DecodeDigitsDefault1e6-8   67.3MB/s ± 2%   70.0MB/s ± 1%   +4.12%
DecodeDigitsCompress1e4-8  66.8MB/s ± 3%   71.1MB/s ± 0%   +6.40%
DecodeDigitsCompress1e5-8  67.8MB/s ± 4%   71.5MB/s ± 0%   +5.56%
DecodeDigitsCompress1e6-8  68.1MB/s ± 4%   71.8MB/s ± 0%   +5.47%
DecodeTwainSpeed1e4-8      64.4MB/s ± 4%   69.2MB/s ± 0%   +7.43%
DecodeTwainSpeed1e5-8      71.4MB/s ± 2%   75.5MB/s ± 0%   +5.75%
DecodeTwainSpeed1e6-8      72.0MB/s ± 1%   73.6MB/s ± 6%   +2.21%
DecodeTwainDefault1e4-8    69.1MB/s ± 1%   73.0MB/s ± 0%   +5.63%
DecodeTwainDefault1e5-8    82.3MB/s ± 1%   85.8MB/s ± 0%   +4.25%
DecodeTwainDefault1e6-8    85.0MB/s ± 1%   87.8MB/s ± 1%   +3.28%
DecodeTwainCompress1e4-8   70.1MB/s ± 1%   74.3MB/s ± 0%   +5.96%
DecodeTwainCompress1e5-8   85.2MB/s ± 1%   88.9MB/s ± 0%   +4.42%
DecodeTwainCompress1e6-8   87.8MB/s ± 1%   90.6MB/s ± 1%   +3.23%
DecodeRandomSpeed1e4-8     9.65GB/s ± 1%  13.95GB/s ± 1%  +44.57%
DecodeRandomSpeed1e5-8     16.5GB/s ± 1%   17.5GB/s ± 1%   +5.95%
DecodeRandomSpeed1e6-8     17.3GB/s ± 1%   17.4GB/s ± 1%   +0.62%

name                       old alloc/op   new alloc/op    delta
DecodeDigitsSpeed1e4-8         132B ± 0%        52B ± 0%  -60.61%
DecodeDigitsSpeed1e5-8         440B ± 0%        88B ± 0%  -80.00%
DecodeDigitsSpeed1e6-8       4.28kB ± 0%     0.46kB ± 0%  -89.27%
DecodeDigitsDefault1e4-8       100B ± 0%        52B ± 0%  -48.00%
DecodeDigitsDefault1e5-8       424B ± 0%        88B ± 0%  -79.25%
DecodeDigitsDefault1e6-8     4.99kB ± 0%     0.45kB ± 0%  -90.90%
DecodeDigitsCompress1e4-8      100B ± 0%        52B ± 0%  -48.00%
DecodeDigitsCompress1e5-8      376B ± 0%        88B ± 0%  -76.60%
DecodeDigitsCompress1e6-8    4.89kB ± 0%     0.45kB ± 0%  -90.74%
DecodeTwainSpeed1e4-8          972B ± 0%        52B ± 0%  -94.65%
DecodeTwainSpeed1e5-8        4.40kB ± 0%     0.09kB ± 0%  -97.95%
DecodeTwainSpeed1e6-8        38.5kB ± 0%      0.5kB ± 0%  -98.76%
DecodeTwainDefault1e4-8        612B ± 0%        52B ± 0%  -91.50%
DecodeTwainDefault1e5-8      5.03kB ± 0%     0.07kB ± 0%  -98.63%
DecodeTwainDefault1e6-8      33.8kB ± 0%      0.5kB ± 0%  -98.46%
DecodeTwainCompress1e4-8       732B ± 0%        52B ± 0%  -92.90%
DecodeTwainCompress1e5-8     2.65kB ± 1%     0.07kB ± 0%  -97.43%
DecodeTwainCompress1e6-8     24.4kB ± 0%      0.5kB ± 0%  -97.92%
DecodeRandomSpeed1e4-8        48.0B ± 0%      48.0B ± 0%   +0.00%
DecodeRandomSpeed1e5-8        48.0B ± 0%      48.0B ± 0%   +0.00%
DecodeRandomSpeed1e6-8        49.0B ± 0%      49.0B ± 0%   +0.00%

name                       old allocs/op  new allocs/op   delta
DecodeDigitsSpeed1e4-8         4.00 ± 0%       1.00 ± 0%  -75.00%
DecodeDigitsSpeed1e5-8         7.00 ± 0%       1.00 ± 0%  -85.71%
DecodeDigitsSpeed1e6-8         60.0 ± 0%        1.0 ± 0%  -98.33%
DecodeDigitsDefault1e4-8       3.00 ± 0%       1.00 ± 0%  -66.67%
DecodeDigitsDefault1e5-8       10.0 ± 0%        1.0 ± 0%  -90.00%
DecodeDigitsDefault1e6-8       96.0 ± 0%        1.0 ± 0%  -98.96%
DecodeDigitsCompress1e4-8      3.00 ± 0%       1.00 ± 0%  -66.67%
DecodeDigitsCompress1e5-8      9.00 ± 0%       1.00 ± 0%  -88.89%
DecodeDigitsCompress1e6-8      87.0 ± 0%        1.0 ± 0%  -98.85%
DecodeTwainSpeed1e4-8          14.0 ± 0%        1.0 ± 0%  -92.86%
DecodeTwainSpeed1e5-8          26.0 ± 0%        1.0 ± 0%  -96.15%
DecodeTwainSpeed1e6-8           195 ± 0%          1 ± 0%  -99.49%
DecodeTwainDefault1e4-8        13.0 ± 0%        1.0 ± 0%  -92.31%
DecodeTwainDefault1e5-8        26.0 ± 0%        1.0 ± 0%  -96.15%
DecodeTwainDefault1e6-8         199 ± 0%          1 ± 0%  -99.50%
DecodeTwainCompress1e4-8       15.0 ± 0%        1.0 ± 0%  -93.33%
DecodeTwainCompress1e5-8       24.0 ± 0%        1.0 ± 0%  -95.83%
DecodeTwainCompress1e6-8        195 ± 0%          1 ± 0%  -99.49%
DecodeRandomSpeed1e4-8         1.00 ± 0%       1.00 ± 0%   +0.00%
DecodeRandomSpeed1e5-8         1.00 ± 0%       1.00 ± 0%   +0.00%
DecodeRandomSpeed1e6-8         1.00 ± 0%       1.00 ± 0%   +0.00%
@klauspost klauspost merged commit 38ece4f into master May 28, 2017
@klauspost klauspost deleted the decoder-reduce-allocations branch May 28, 2017 13:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant