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(proto): optimize encoding #11

Merged
merged 1 commit into from
Dec 31, 2021
Merged

feat(proto): optimize encoding #11

merged 1 commit into from
Dec 31, 2021

Conversation

ernado
Copy link
Collaborator

@ernado ernado commented Dec 31, 2021

name                           old time/op    new time/op     delta
ColBool_Raw_EncodeColumn-32       701ns ± 1%      702ns ± 0%       ~     (p=0.635 n=5+5)
ClientHello_Encode-32            34.5ns ± 0%     34.8ns ± 1%       ~     (p=0.063 n=5+5)
ColBool_EncodeColumn-32          28.1µs ± 2%     30.2µs ± 1%     +7.61%  (p=0.008 n=5+5)
ColDate32_EncodeColumn-32         688ns ± 1%       59ns ± 2%    -91.41%  (p=0.008 n=5+5)
ColDate_EncodeColumn-32           679ns ± 1%       33ns ± 1%    -95.21%  (p=0.016 n=4+5)
ColDateTime64_EncodeColumn-32     718ns ± 2%      114ns ± 0%    -84.17%  (p=0.029 n=4+4)
ColDateTime_EncodeColumn-32       697ns ± 3%       59ns ± 0%    -91.59%  (p=0.008 n=5+5)
ColDecimal128_EncodeColumn-32    2.53µs ± 3%     0.23µs ± 1%    -91.01%  (p=0.008 n=5+5)
ColDecimal256_EncodeColumn-32    3.14µs ± 3%     0.68µs ± 2%    -78.27%  (p=0.008 n=5+5)
ColDecimal32_EncodeColumn-32      715ns ±12%       58ns ± 2%    -91.85%  (p=0.008 n=5+5)
ColDecimal64_EncodeColumn-32      729ns ± 8%      114ns ± 0%    -84.36%  (p=0.008 n=5+5)
ColEnum16_EncodeColumn-32         680ns ± 2%       33ns ± 1%    -95.20%  (p=0.008 n=5+5)
ColEnum8_EncodeColumn-32          531ns ± 1%       19ns ± 2%    -96.50%  (p=0.008 n=5+5)
ColFixedStr_EncodeColumn-32       441ns ± 2%      439ns ± 0%       ~     (p=0.310 n=5+5)
ColFloat32_EncodeColumn-32        594ns ± 2%       59ns ± 1%    -90.04%  (p=0.008 n=5+5)
ColFloat64_EncodeColumn-32        713ns ± 2%      114ns ± 0%    -84.02%  (p=0.008 n=5+5)
ColInt128_EncodeColumn-32        2.44µs ± 2%     0.23µs ± 1%    -90.69%  (p=0.008 n=5+5)
ColInt16_EncodeColumn-32          672ns ± 2%       33ns ± 1%    -95.15%  (p=0.008 n=5+5)
ColInt256_EncodeColumn-32        3.10µs ± 5%     0.69µs ± 1%    -77.82%  (p=0.008 n=5+5)
ColInt32_EncodeColumn-32          690ns ± 2%       59ns ± 2%    -91.42%  (p=0.008 n=5+5)
ColInt64_EncodeColumn-32          712ns ± 1%      114ns ± 1%    -83.98%  (p=0.008 n=5+5)
ColInt8_EncodeColumn-32           531ns ± 5%       18ns ± 1%    -96.53%  (p=0.008 n=5+5)
ColIPv4_EncodeColumn-32           704ns ±10%       59ns ± 1%    -91.66%  (p=0.008 n=5+5)
ColIPv6_EncodeColumn-32          2.39µs ± 4%     2.34µs ± 3%       ~     (p=0.151 n=5+5)
ColRaw_EncodeColumn-32           12.5ns ± 2%     12.7ns ± 1%       ~     (p=0.095 n=5+5)
ColStr_EncodeColumn-32           6.28µs ± 1%     6.72µs ± 0%     +6.98%  (p=0.008 n=5+5)
ColTuple_EncodeColumn-32         2.12µs ± 1%     2.14µs ± 2%       ~     (p=0.278 n=5+5)
ColUInt128_EncodeColumn-32       2.33µs ± 1%     0.23µs ± 1%    -90.27%  (p=0.008 n=5+5)
ColUInt16_EncodeColumn-32         681ns ± 1%       33ns ± 0%    -95.22%  (p=0.008 n=5+5)
ColUInt256_EncodeColumn-32       3.14µs ± 3%     0.69µs ± 1%    -78.14%  (p=0.008 n=5+5)
ColUInt32_EncodeColumn-32         687ns ± 3%       59ns ± 1%    -91.44%  (p=0.008 n=5+5)
ColUInt64_EncodeColumn-32         726ns ± 8%      113ns ± 2%    -84.44%  (p=0.008 n=5+5)
ColUInt8_EncodeColumn-32         9.24ns ± 1%     9.30ns ± 1%       ~     (p=0.310 n=5+5)
ColUUID_EncodeColumn-32          1.19µs ± 4%     1.16µs ± 0%       ~     (p=0.548 n=5+5)

name                           old speed      new speed       delta
ColBool_Raw_EncodeColumn-32    71.4GB/s ± 1%   71.2GB/s ± 0%       ~     (p=0.690 n=5+5)
ClientHello_Encode-32          1.59GB/s ± 0%   1.58GB/s ± 1%       ~     (p=0.056 n=5+5)
ColBool_EncodeColumn-32        1.78GB/s ± 2%   1.66GB/s ± 1%     -7.07%  (p=0.008 n=5+5)
ColDate32_EncodeColumn-32      5.81GB/s ± 2%  67.72GB/s ± 2%  +1064.76%  (p=0.008 n=5+5)
ColDate_EncodeColumn-32        2.94GB/s ± 1%  61.51GB/s ± 1%  +1989.42%  (p=0.016 n=4+5)
ColDateTime64_EncodeColumn-32  10.9GB/s ± 8%   70.4GB/s ± 0%   +544.82%  (p=0.016 n=5+4)
ColDateTime_EncodeColumn-32    5.74GB/s ± 3%  68.28GB/s ± 0%  +1088.88%  (p=0.008 n=5+5)
ColDecimal128_EncodeColumn-32  6.33GB/s ± 3%  70.41GB/s ± 1%  +1012.50%  (p=0.008 n=5+5)
ColDecimal256_EncodeColumn-32  10.2GB/s ± 3%   46.9GB/s ± 2%   +360.19%  (p=0.008 n=5+5)
ColDecimal32_EncodeColumn-32   5.61GB/s ±11%  68.62GB/s ± 2%  +1122.26%  (p=0.008 n=5+5)
ColDecimal64_EncodeColumn-32   11.0GB/s ± 7%   70.1GB/s ± 0%   +538.15%  (p=0.008 n=5+5)
ColEnum16_EncodeColumn-32      2.94GB/s ± 2%  61.22GB/s ± 1%  +1981.30%  (p=0.008 n=5+5)
ColEnum8_EncodeColumn-32       1.88GB/s ± 1%  53.89GB/s ± 2%  +2759.73%  (p=0.008 n=5+5)
ColFixedStr_EncodeColumn-32    72.5GB/s ± 2%   72.9GB/s ± 0%       ~     (p=0.310 n=5+5)
ColFloat32_EncodeColumn-32     6.73GB/s ± 2%  67.61GB/s ± 1%   +904.19%  (p=0.008 n=5+5)
ColFloat64_EncodeColumn-32     11.2GB/s ± 2%   70.3GB/s ± 0%   +525.84%  (p=0.008 n=5+5)
ColInt128_EncodeColumn-32      6.57GB/s ± 2%  70.54GB/s ± 1%   +974.23%  (p=0.008 n=5+5)
ColInt16_EncodeColumn-32       2.98GB/s ± 2%  61.46GB/s ± 1%  +1963.38%  (p=0.008 n=5+5)
ColInt256_EncodeColumn-32      10.3GB/s ± 5%   46.6GB/s ± 1%   +350.56%  (p=0.008 n=5+5)
ColInt32_EncodeColumn-32       5.80GB/s ± 2%  67.62GB/s ± 2%  +1065.42%  (p=0.008 n=5+5)
ColInt64_EncodeColumn-32       11.2GB/s ± 1%   70.2GB/s ± 1%   +524.41%  (p=0.008 n=5+5)
ColInt8_EncodeColumn-32        1.88GB/s ± 5%  54.23GB/s ± 1%  +2778.57%  (p=0.008 n=5+5)
ColIPv4_EncodeColumn-32        5.69GB/s ± 9%  68.11GB/s ± 1%  +1096.47%  (p=0.008 n=5+5)
ColIPv6_EncodeColumn-32        6.70GB/s ± 4%   6.85GB/s ± 3%       ~     (p=0.151 n=5+5)
ColRaw_EncodeColumn-32         81.9GB/s ± 2%   80.4GB/s ± 1%       ~     (p=0.095 n=5+5)
ColStr_EncodeColumn-32         5.26GB/s ± 1%   4.91GB/s ± 0%     -6.53%  (p=0.008 n=5+5)
ColTuple_EncodeColumn-32       70.7GB/s ± 1%   70.2GB/s ± 2%       ~     (p=0.310 n=5+5)
ColUInt128_EncodeColumn-32     6.86GB/s ± 1%  70.50GB/s ± 1%   +928.05%  (p=0.008 n=5+5)
ColUInt16_EncodeColumn-32      2.94GB/s ± 1%  61.43GB/s ± 0%  +1991.95%  (p=0.008 n=5+5)
ColUInt256_EncodeColumn-32     10.2GB/s ± 3%   46.6GB/s ± 1%   +357.29%  (p=0.008 n=5+5)
ColUInt32_EncodeColumn-32      5.82GB/s ± 3%  68.02GB/s ± 1%  +1067.81%  (p=0.008 n=5+5)
ColUInt64_EncodeColumn-32      11.0GB/s ± 8%   70.8GB/s ± 2%   +541.62%  (p=0.008 n=5+5)
ColUInt8_EncodeColumn-32        108GB/s ± 1%    108GB/s ± 1%       ~     (p=0.310 n=5+5)
ColUUID_EncodeColumn-32        13.4GB/s ± 4%   13.7GB/s ± 0%       ~     (p=0.548 n=5+5)

@codecov
Copy link

codecov bot commented Dec 31, 2021

Codecov Report

Merging #11 (cbe7d25) into main (35fccb5) will decrease coverage by 1.53%.
The diff coverage is 78.88%.

Impacted file tree graph

@@            Coverage Diff             @@
##             main      #11      +/-   ##
==========================================
- Coverage   81.21%   79.67%   -1.54%     
==========================================
  Files         104      104              
  Lines        4173     4247      +74     
==========================================
- Hits         3389     3384       -5     
- Misses        642      697      +55     
- Partials      142      166      +24     
Impacted Files Coverage Δ
proto/col_date32_gen.go 100.00% <ø> (ø)
proto/col_date_gen.go 100.00% <ø> (ø)
proto/col_datetime64_gen.go 100.00% <ø> (ø)
proto/col_datetime_gen.go 100.00% <ø> (ø)
proto/col_decimal128_gen.go 100.00% <ø> (ø)
proto/col_decimal256_gen.go 100.00% <ø> (ø)
proto/col_decimal32_gen.go 100.00% <ø> (ø)
proto/col_decimal64_gen.go 100.00% <ø> (ø)
proto/col_enum16_gen.go 100.00% <ø> (ø)
proto/col_enum8_gen.go 100.00% <ø> (ø)
... and 43 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 35fccb5...cbe7d25. Read the comment docs.

@ernado ernado merged commit 5eb8f3a into main Dec 31, 2021
@ernado ernado deleted the feat/optimize-encoding branch December 31, 2021 16:12
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.

1 participant