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

test(encoding): bench key/value encoding #5165

Merged
merged 8 commits into from
Oct 8, 2022
Merged

Conversation

Gun9niR
Copy link
Contributor

@Gun9niR Gun9niR commented Sep 7, 2022

I hereby agree to the terms of the Singularity Data, Inc. Contributor License Agreement.

What's changed and what's your intention?

As title. From the benchmark result, value encoding is better at encoding strings, while key encoding is better at encoding list or struct.

Int16 key encoded len: 3
test bench Int16 (key encoding serialization) ... bench:          24 ns/iter (+/- 0)

Int16 value encoded len: 3
test bench Int16 (value encoding serialization) ... bench:          22 ns/iter (+/- 0)

Int32 key encoded len: 5
test bench Int32 (key encoding serialization) ... bench:          24 ns/iter (+/- 0)

Int32 value encoded len: 5
test bench Int32 (value encoding serialization) ... bench:          23 ns/iter (+/- 0)

Int64 key encoded len: 9
test bench Int64 (key encoding serialization) ... bench:          56 ns/iter (+/- 0)

Int64 value encoded len: 9
test bench Int64 (value encoding serialization) ... bench:          48 ns/iter (+/- 0)

Float32 key encoded len: 5
test bench Float32 (key encoding serialization) ... bench:          25 ns/iter (+/- 0)

Float32 value encoded len: 5
test bench Float32 (value encoding serialization) ... bench:          23 ns/iter (+/- 0)

Float64 key encoded len: 9
test bench Float64 (key encoding serialization) ... bench:          54 ns/iter (+/- 0)

Float64 value encoded len: 9
test bench Float64 (value encoding serialization) ... bench:          48 ns/iter (+/- 0)

Bool key encoded len: 2
test bench Bool (key encoding serialization) ... bench:          24 ns/iter (+/- 0)

Bool value encoded len: 2
test bench Bool (value encoding serialization) ... bench:          23 ns/iter (+/- 0)

Decimal key encoded len: 5
test bench Decimal (key encoding serialization) ... bench:         139 ns/iter (+/- 0)

Decimal value encoded len: 17
test bench Decimal (value encoding serialization) ... bench:          53 ns/iter (+/- 0)

Interval key encoded len: 17
test bench Interval (key encoding serialization) ... bench:         110 ns/iter (+/- 0)

Interval value encoded len: 17
test bench Interval (value encoding serialization) ... bench:         102 ns/iter (+/- 0)

NaiveDate key encoded len: 5
test bench NaiveDate (key encoding serialization) ... bench:          25 ns/iter (+/- 0)

NaiveDate value encoded len: 5
test bench NaiveDate (value encoding serialization) ... bench:          24 ns/iter (+/- 0)

NaiveDateTime key encoded len: 13
test bench NaiveDateTime (key encoding serialization) ... bench:          56 ns/iter (+/- 0)

NaiveDateTime value encoded len: 13
test bench NaiveDateTime (value encoding serialization) ... bench:          50 ns/iter (+/- 0)

NaiveTime key encoded len: 9
test bench NaiveTime (key encoding serialization) ... bench:          55 ns/iter (+/- 0)

NaiveTime value encoded len: 9
test bench NaiveTime (value encoding serialization) ... bench:          48 ns/iter (+/- 0)

Utf8 (len = 10) key encoded len: 20
test bench Utf8 (len = 10) (key encoding serialization) ... bench:         122 ns/iter (+/- 0)

Utf8 (len = 10) value encoded len: 15
test bench Utf8 (len = 10) (value encoding serialization) ... bench:          49 ns/iter (+/- 0)

Utf8 (len = 1000) key encoded len: 1127
test bench Utf8 (len = 1000) (key encoding serialization) ... bench:        1564 ns/iter (+/- 1)

Utf8 (len = 1000) value encoded len: 1005
test bench Utf8 (len = 1000) (value encoding serialization) ... bench:         104 ns/iter (+/- 0)

Utf8 (len = 10000) key encoded len: 112502
test bench Utf8 (len = 10000) (key encoding serialization) ... bench:      101736 ns/iter (+/- 682)

Utf8 (len = 10000) value encoded len: 100005
test bench Utf8 (len = 10000) (value encoding serialization) ... bench:        2567 ns/iter (+/- 18)

Struct of Bool (len = 100) key encoded len: 201
test bench Struct of Bool (len = 100) (key encoding serialization) ... bench:        1928 ns/iter (+/- 1)

Struct of Bool (len = 100) value encoded len: 305
test bench Struct of Bool (len = 100) (value encoding serialization) ... bench:        5934 ns/iter (+/- 4)

List of Bool (len = 100) key encoded len: 227
test bench List of Bool (len = 100) (key encoding serialization) ... bench:        2338 ns/iter (+/- 1)

List of Bool (len = 100) value encoded len: 305
test bench List of Bool (len = 100) (value encoding serialization) ... bench:        5915 ns/iter (+/- 5)

test bench Int16 (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Int16 (value encoding deserialization) ... bench:           3 ns/iter (+/- 0)

test bench Int32 (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Int32 (value encoding deserialization) ... bench:           3 ns/iter (+/- 0)

test bench Int64 (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Int64 (value encoding deserialization) ... bench:           4 ns/iter (+/- 0)

test bench Float32 (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Float32 (value encoding deserialization) ... bench:           3 ns/iter (+/- 0)

test bench Float64 (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Float64 (value encoding deserialization) ... bench:           3 ns/iter (+/- 0)

test bench Bool (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Bool (value encoding deserialization) ... bench:           4 ns/iter (+/- 0)

test bench Decimal (key encoding deserialization) ... bench:          78 ns/iter (+/- 0)

test bench Decimal (value encoding deserialization) ... bench:          14 ns/iter (+/- 0)

test bench Interval (key encoding deserialization) ... bench:          15 ns/iter (+/- 0)

test bench Interval (value encoding deserialization) ... bench:           5 ns/iter (+/- 0)

test bench NaiveDate (key encoding deserialization) ... bench:          17 ns/iter (+/- 0)

test bench NaiveDate (value encoding deserialization) ... bench:           8 ns/iter (+/- 0)

test bench NaiveDateTime (key encoding deserialization) ... bench:          22 ns/iter (+/- 0)

test bench NaiveDateTime (value encoding deserialization) ... bench:          11 ns/iter (+/- 0)

test bench NaiveTime (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench NaiveTime (value encoding deserialization) ... bench:           4 ns/iter (+/- 0)

test bench Utf8 (len = 10) (key encoding deserialization) ... bench:          74 ns/iter (+/- 0)

test bench Utf8 (len = 10) (value encoding deserialization) ... bench:          53 ns/iter (+/- 13)

test bench Utf8 (len = 1000) (key encoding deserialization) ... bench:         752 ns/iter (+/- 240)

test bench Utf8 (len = 1000) (value encoding deserialization) ... bench:         132 ns/iter (+/- 0)

test bench Utf8 (len = 10000) (key encoding deserialization) ... bench:       33453 ns/iter (+/- 36)

test bench Utf8 (len = 10000) (value encoding deserialization) ... bench:        7662 ns/iter (+/- 7)

test bench Struct of Bool (len = 100) (key encoding deserialization) ... bench:        3258 ns/iter (+/- 2)

test bench Struct of Bool (len = 100) (value encoding deserialization) ... bench:       17933 ns/iter (+/- 27)

test bench List of Bool (len = 100) (key encoding deserialization) ... bench:        2572 ns/iter (+/- 2)

test bench List of Bool (len = 100) (value encoding deserialization) ... bench:       13067 ns/iter (+/- 8)

Checklist

  • All checks passed in ./risedev check (or alias, ./risedev c)

Documentation

If your pull request contains user-facing changes, please specify the types of the changes, and create a release note. Otherwise, please feel free to remove this section.

Types of user-facing changes

Please keep the types that apply to your changes, and remove those that do not apply.

  • Installation and deployment
  • Connector (sources & sinks)
  • SQL commands, functions, and operators
  • RisingWave cluster configuration changes
  • Other (please specify in the release note below)

Release note

Please create a release note for your changes. In the release note, focus on the impact on users, and mention the environment or conditions where the impact may occur.

Refer to a related PR or issue link (optional)

@Gun9niR Gun9niR requested a review from BugenZhao September 7, 2022 04:27
@Gun9niR Gun9niR self-assigned this Sep 7, 2022
@github-actions github-actions bot added the component/test Test related issue. label Sep 7, 2022
@codecov
Copy link

codecov bot commented Sep 7, 2022

Codecov Report

Merging #5165 (45fbfe7) into main (bd3bd59) will decrease coverage by 0.00%.
The diff coverage is 54.65%.

@@            Coverage Diff             @@
##             main    #5165      +/-   ##
==========================================
- Coverage   74.30%   74.29%   -0.01%     
==========================================
  Files         924      924              
  Lines      144308   144259      -49     
==========================================
- Hits       107225   107184      -41     
+ Misses      37083    37075       -8     
Flag Coverage Δ
rust 74.29% <54.65%> (-0.01%) ⬇️

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

Impacted Files Coverage Δ
src/common/src/catalog/column.rs 77.17% <0.00%> (-11.03%) ⬇️
src/common/src/error.rs 72.30% <ø> (ø)
src/common/src/hash/key.rs 84.54% <ø> (ø)
...c/compute/src/compute_observer/observer_manager.rs 64.70% <ø> (ø)
src/compute/src/server.rs 0.00% <0.00%> (ø)
src/connector/src/lib.rs 100.00% <ø> (ø)
src/connector/src/source/dummy_connector.rs 0.00% <0.00%> (ø)
.../src/source/filesystem/s3/source/s3_file_reader.rs 0.00% <0.00%> (ø)
...rc/connector/src/source/kafka/enumerator/client.rs 0.00% <0.00%> (ø)
src/connector/src/source/kafka/source/reader.rs 0.00% <0.00%> (ø)
... and 124 more

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@BugenZhao
Copy link
Member

while key encoding is better at encoding list or struct.

The memcomparable encoding should always do more things than value encoding, so I believe there's something wrong with value encoding for list/struct. Every scalar is first encoded to a protobuf message, then serialized to bytes. 😇 Note that @wzzzzd has fixed the memcomparable in #4599.

ScalarRefImpl::Struct(StructRef::ValueRef { val }) => {
serialize_struct_or_list(val.to_protobuf_owned(), buf);
}
ScalarRefImpl::List(ListRef::ValueRef { val }) => {
serialize_struct_or_list(val.to_protobuf_owned(), buf);
}

cc @neverchanje

@BugenZhao
Copy link
Member

Would you please also bench the ser/de for integer and decimals? Though there should be no much difference.

@Gun9niR
Copy link
Contributor Author

Gun9niR commented Sep 7, 2022

The memcomparable encoding should always do more things than value encodings

Maybe it's because of the protobuf?

image

@Gun9niR
Copy link
Contributor Author

Gun9niR commented Sep 7, 2022

Would you please also bench the ser/de for integer and decimals? Though there should be no much difference.

I have benched every type for Datum, it's just there's no big difference so I omitted them 🤣 .

@BugenZhao
Copy link
Member

The memcomparable encoding should always do more things than value encodings

Maybe it's because of the protobuf?

I think so.

@Gun9niR
Copy link
Contributor Author

Gun9niR commented Sep 7, 2022

I guess we used protobuf in the first place just for simplicity, right?

@Gun9niR
Copy link
Contributor Author

Gun9niR commented Sep 7, 2022

I think I will add some env variables to filter test cases and enable encode/decode bench.

@fuyufjh
Copy link
Member

fuyufjh commented Sep 7, 2022

cc. @neverchanje @nanderstabel

@Gun9niR
Copy link
Contributor Author

Gun9niR commented Sep 7, 2022

List/struct deser is also slower

@Gun9niR Gun9niR force-pushed the zhidong/bench-encoding branch from 8a6ea15 to 8d5c892 Compare September 7, 2022 09:37
@BugenZhao
Copy link
Member

test bench Int16 (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Int16 (value encoding deserialization) ... bench:           3 ns/iter (+/- 0)

This is kind of strange. 🤔

@Gun9niR
Copy link
Contributor Author

Gun9niR commented Sep 9, 2022

test bench Int16 (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Int16 (value encoding deserialization) ... bench:           3 ns/iter (+/- 0)

This is kind of strange. 🤔

The overhead seems to come from serde. And how come unwrap() is much slower in key_deserialization?

image

image

@BugenZhao
Copy link
Member

test bench Int16 (key encoding deserialization) ... bench:          13 ns/iter (+/- 0)

test bench Int16 (value encoding deserialization) ... bench:           3 ns/iter (+/- 0)

This is kind of strange. 🤔

The overhead seems to come from serde. And how come unwrap() is much slower in key_deserialization?

image image

Is the inner function correctly inlined/optimized? The stack backtrace looks too detailed. 🤣

@Gun9niR
Copy link
Contributor Author

Gun9niR commented Sep 16, 2022

Doesn't cargo bench compile the code with optimization?

Signed-off-by: Bugen Zhao <i@bugenzhao.com>
Signed-off-by: Bugen Zhao <i@bugenzhao.com>
@BugenZhao
Copy link
Member

BugenZhao commented Oct 8, 2022

I've also tested a lot and found that the bad performance of deserializing integer key is not from

  • Results defined by us
  • endian
  • null & flip branch prediction

So I guess that the overhead is indeed from serde 😅. Could you please open an issue for this, as well as the value-serde performance issue of List and Struct?

@BugenZhao
Copy link
Member

Bench results on my MacBook:

Int16 key encoded len: 3
bench Int16 (key encoding serialization)                                                                             
                        time:   [30.222 ns 30.255 ns 30.295 ns]
                        change: [+0.3432% +0.5726% +0.7994%] (p = 0.00 < 0.05)
                        Change within noise threshold.

Int16 value encoded len: 3
bench Int16 (value encoding serialization)                                                                             
                        time:   [29.872 ns 30.816 ns 32.191 ns]
                        change: [+1.0426% +4.0767% +9.2271%] (p = 0.01 < 0.05)
                        Performance has regressed.

Int32 key encoded len: 5
bench Int32 (key encoding serialization)                                                                             
                        time:   [30.494 ns 30.563 ns 30.636 ns]
                        change: [+1.2570% +1.5444% +1.8384%] (p = 0.00 < 0.05)
                        Performance has regressed.

Int32 value encoded len: 5
bench Int32 (value encoding serialization)                                                                             
                        time:   [29.648 ns 29.727 ns 29.807 ns]

Int64 key encoded len: 9
bench Int64 (key encoding serialization)                                                                             
                        time:   [49.199 ns 49.313 ns 49.439 ns]

Int64 value encoded len: 9
bench Int64 (value encoding serialization)                                                                             
                        time:   [48.708 ns 48.925 ns 49.248 ns]

Float32 key encoded len: 5
bench Float32 (key encoding serialization)                                                                             
                        time:   [30.391 ns 30.666 ns 31.081 ns]

Float32 value encoded len: 5
Benchmarking bench Float32 (value encoding serialization): Collecting 100 samples in estimated 5.0001 s (166M iteration                                                                                                                       bench Float32 (value encoding serialization)                        
                        time:   [29.579 ns 29.663 ns 29.761 ns]

Float64 key encoded len: 9
bench Float64 (key encoding serialization)                                                                             
                        time:   [49.831 ns 49.902 ns 49.975 ns]

Float64 value encoded len: 9
Benchmarking bench Float64 (value encoding serialization): Collecting 100 samples in estimated 5.0002 s (103M iteration                                                                                                                       bench Float64 (value encoding serialization)                        
                        time:   [48.656 ns 48.714 ns 48.779 ns]

Bool key encoded len: 2
bench Bool (key encoding serialization)                                                                             
                        time:   [30.083 ns 30.116 ns 30.149 ns]

Bool value encoded len: 2
bench Bool (value encoding serialization)                                                                             
                        time:   [29.292 ns 29.348 ns 29.416 ns]

Decimal key encoded len: 5
bench Decimal (key encoding serialization)                                                                            
                        time:   [159.48 ns 161.13 ns 162.91 ns]

Decimal value encoded len: 17
Benchmarking bench Decimal (value encoding serialization): Collecting 100 samples in estimated 5.0003 s (55M iterations                                                                                                                       bench Decimal (value encoding serialization)                        
                        time:   [90.816 ns 91.243 ns 91.693 ns]

Interval key encoded len: 17
bench Interval (key encoding serialization)                                                                            
                        time:   [113.35 ns 114.56 ns 115.83 ns]

Interval value encoded len: 17
Benchmarking bench Interval (value encoding serialization): Collecting 100 samples in estimated 5.0003 s (46M iteration                                                                                                                       bench Interval (value encoding serialization)                        
                        time:   [108.72 ns 109.48 ns 110.31 ns]

NaiveDate key encoded len: 5
Benchmarking bench NaiveDate (key encoding serialization): Collecting 100 samples in estimated 5.0001 s (166M iteration                                                                                                                       bench NaiveDate (key encoding serialization)                        
                        time:   [30.095 ns 30.127 ns 30.161 ns]

NaiveDate value encoded len: 5
Benchmarking bench NaiveDate (value encoding serialization): Collecting 100 samples in estimated 5.0000 s (168M iterati                                                                                                                       bench NaiveDate (value encoding serialization)                        
                        time:   [29.700 ns 30.005 ns 30.462 ns]

NaiveDateTime key encoded len: 13
Benchmarking bench NaiveDateTime (key encoding serialization): Collecting 100 samples in estimated 5.0000 s (98M iterat                                                                                                                       bench NaiveDateTime (key encoding serialization)                        
                        time:   [49.887 ns 49.982 ns 50.077 ns]

NaiveDateTime value encoded len: 13
Benchmarking bench NaiveDateTime (value encoding serialization): Collecting 100 samples in estimated 5.0002 s (103M ite                                                                                                                       bench NaiveDateTime (value encoding serialization)                        
                        time:   [48.609 ns 48.697 ns 48.798 ns]

NaiveTime key encoded len: 9
Benchmarking bench NaiveTime (key encoding serialization): Collecting 100 samples in estimated 5.0002 s (101M iteration                                                                                                                       bench NaiveTime (key encoding serialization)                        
                        time:   [50.459 ns 50.534 ns 50.600 ns]

NaiveTime value encoded len: 9
Benchmarking bench NaiveTime (value encoding serialization): Collecting 100 samples in estimated 5.0001 s (103M iterati                                                                                                                       bench NaiveTime (value encoding serialization)                        
                        time:   [48.217 ns 48.280 ns 48.343 ns]

Utf8 (len = 10) key encoded len: 20
Benchmarking bench Utf8 (len = 10) (key encoding serialization): Collecting 100 samples in estimated 5.0002 s (40M iter                                                                                                                       bench Utf8 (len = 10) (key encoding serialization)                        
                        time:   [124.76 ns 125.77 ns 126.79 ns]

Utf8 (len = 10) value encoded len: 15
Benchmarking bench Utf8 (len = 10) (value encoding serialization): Collecting 100 samples in estimated 5.0002 s (100M i                                                                                                                       bench Utf8 (len = 10) (value encoding serialization)                        
                        time:   [49.947 ns 50.034 ns 50.121 ns]

Utf8 (len = 1000) key encoded len: 1127
Benchmarking bench Utf8 (len = 1000) (key encoding serialization): Collecting 100 samples in estimated 5.0049 s (4.6M i                                                                                                                       bench Utf8 (len = 1000) (key encoding serialization)                        
                        time:   [1.0785 µs 1.0864 µs 1.0946 µs]

Utf8 (len = 1000) value encoded len: 1005
Benchmarking bench Utf8 (len = 1000) (value encoding serialization): Collecting 100 samples in estimated 5.0004 s (49M                                                                                                                        bench Utf8 (len = 1000) (value encoding serialization)                        
                        time:   [103.81 ns 104.48 ns 105.14 ns]

Utf8 (len = 10000) key encoded len: 112502
Benchmarking bench Utf8 (len = 10000) (key encoding serialization): Collecting 100 samples in estimated 5.2968 s (76k i                                                                                                                       bench Utf8 (len = 10000) (key encoding serialization)                        
                        time:   [69.301 µs 69.932 µs 70.545 µs]

Utf8 (len = 10000) value encoded len: 100005
Benchmarking bench Utf8 (len = 10000) (value encoding serialization): Collecting 100 samples in estimated 5.0048 s (1.8                                                                                                                       bench Utf8 (len = 10000) (value encoding serialization)                        
                        time:   [2.1693 µs 2.4586 µs 2.7319 µs]

Struct of Bool (len = 100) key encoded len: 201
Benchmarking bench Struct of Bool (len = 100) (key encoding serialization): Collecting 100 samples in estimated 5.0039                                                                                                                        bench Struct of Bool (len = 100) (key encoding serialization)                        
                        time:   [999.82 ns 1.0070 µs 1.0141 µs]

Struct of Bool (len = 100) value encoded len: 305
Benchmarking bench Struct of Bool (len = 100) (value encoding serialization): Collecting 100 samples in estimated 5.003                                                                                                                       bench Struct of Bool (len = 100) (value encoding serialization)                        
                        time:   [6.2179 µs 6.2550 µs 6.2899 µs]

List of Bool (len = 100) key encoded len: 227
Benchmarking bench List of Bool (len = 100) (key encoding serialization): Collecting 100 samples in estimated 5.0013 s                                                                                                                        bench List of Bool (len = 100) (key encoding serialization)                        
                        time:   [1.3692 µs 1.3811 µs 1.3939 µs]

List of Bool (len = 100) value encoded len: 305
Benchmarking bench List of Bool (len = 100) (value encoding serialization): Collecting 100 samples in estimated 5.0019                                                                                                                        bench List of Bool (len = 100) (value encoding serialization)                        
                        time:   [6.1879 µs 6.2228 µs 6.2565 µs]

bench Int16 (key encoding deserialization)                                                                             
                        time:   [3.8476 ns 3.8578 ns 3.8688 ns]
                        change: [-3.1764% -2.8462% -2.5001%] (p = 0.00 < 0.05)
                        Performance has improved.

Benchmarking bench Int16 (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (6.3B iteration                                                                                                                       bench Int16 (value encoding deserialization)                        
                        time:   [784.27 ps 786.12 ps 788.08 ps]
                        change: [-0.8732% -0.5796% -0.3082%] (p = 0.00 < 0.05)
                        Change within noise threshold.

bench Int32 (key encoding deserialization)                                                                             
                        time:   [3.7875 ns 3.7943 ns 3.8012 ns]
                        change: [-1.0181% -0.6057% -0.1392%] (p = 0.01 < 0.05)
                        Change within noise threshold.

Benchmarking bench Int32 (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (6.4B iteration                                                                                                                       bench Int32 (value encoding deserialization)                        
                        time:   [784.33 ps 786.30 ps 788.27 ps]
                        change: [-1.0217% -0.6403% -0.3121%] (p = 0.00 < 0.05)
                        Change within noise threshold.

bench Int64 (key encoding deserialization)                                                                             
                        time:   [3.7927 ns 3.7970 ns 3.8011 ns]

Benchmarking bench Int64 (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (6.3B iteration                                                                                                                       bench Int64 (value encoding deserialization)                        
                        time:   [786.90 ps 788.71 ps 790.48 ps]

Benchmarking bench Float32 (key encoding deserialization): Collecting 100 samples in estimated 5.0000 s (1.3B iteration                                                                                                                       bench Float32 (key encoding deserialization)                        
                        time:   [3.9094 ns 3.9171 ns 3.9253 ns]

Benchmarking bench Float32 (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (6.3B iterati                                                                                                                       bench Float32 (value encoding deserialization)                        
                        time:   [786.15 ps 788.28 ps 790.70 ps]

Benchmarking bench Float64 (key encoding deserialization): Collecting 100 samples in estimated 5.0000 s (1.3B iteration                                                                                                                       bench Float64 (key encoding deserialization)                        
                        time:   [3.8987 ns 3.9069 ns 3.9149 ns]

Benchmarking bench Float64 (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (6.2B iterati                                                                                                                       bench Float64 (value encoding deserialization)                        
                        time:   [805.92 ps 809.05 ps 812.15 ps]

bench Bool (key encoding deserialization)                                                                             
                        time:   [3.7904 ns 3.7995 ns 3.8104 ns]

Benchmarking bench Bool (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (5.3B iterations                                                                                                                       bench Bool (value encoding deserialization)                        
                        time:   [943.32 ps 945.35 ps 947.47 ps]

Benchmarking bench Decimal (key encoding deserialization): Collecting 100 samples in estimated 5.0001 s (89M iterations                                                                                                                       bench Decimal (key encoding deserialization)                        
                        time:   [55.891 ns 56.031 ns 56.178 ns]

Benchmarking bench Decimal (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (2.2B iterati                                                                                                                       bench Decimal (value encoding deserialization)                        
                        time:   [2.2314 ns 2.2390 ns 2.2472 ns]

Benchmarking bench Interval (key encoding deserialization): Collecting 100 samples in estimated 5.0000 s (1.1B iteratio                                                                                                                       bench Interval (key encoding deserialization)                        
                        time:   [4.6458 ns 4.6527 ns 4.6610 ns]

Benchmarking bench Interval (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (4.5B iterat                                                                                                                       bench Interval (value encoding deserialization)                        
                        time:   [1.1131 ns 1.1167 ns 1.1204 ns]

Benchmarking bench NaiveDate (key encoding deserialization): Collecting 100 samples in estimated 5.0000 s (807M iterati                                                                                                                       bench NaiveDate (key encoding deserialization)                        
                        time:   [6.1877 ns 6.1986 ns 6.2087 ns]

Benchmarking bench NaiveDate (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (1.4B itera                                                                                                                       bench NaiveDate (value encoding deserialization)                        
                        time:   [3.6816 ns 3.6949 ns 3.7080 ns]

Benchmarking bench NaiveDateTime (key encoding deserialization): Collecting 100 samples in estimated 5.0000 s (593M ite                                                                                                                       bench NaiveDateTime (key encoding deserialization)                        
                        time:   [8.3808 ns 8.4016 ns 8.4243 ns]

Benchmarking bench NaiveDateTime (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (966M i                                                                                                                       bench NaiveDateTime (value encoding deserialization)                        
                        time:   [5.1182 ns 5.1242 ns 5.1314 ns]

Benchmarking bench NaiveTime (key encoding deserialization): Collecting 100 samples in estimated 5.0000 s (1.2B iterati                                                                                                                       bench NaiveTime (key encoding deserialization)                        
                        time:   [4.2969 ns 4.3047 ns 4.3118 ns]

Benchmarking bench NaiveTime (value encoding deserialization): Collecting 100 samples in estimated 5.0000 s (4.0B itera                                                                                                                       bench NaiveTime (value encoding deserialization)                        
                        time:   [1.2626 ns 1.2664 ns 1.2701 ns]

Benchmarking bench Utf8 (len = 10) (key encoding deserialization): Collecting 100 samples in estimated 5.0002 s (86M it                                                                                                                       bench Utf8 (len = 10) (key encoding deserialization)                        
                        time:   [57.532 ns 57.663 ns 57.803 ns]

Benchmarking bench Utf8 (len = 10) (value encoding deserialization): Collecting 100 samples in estimated 5.0001 s (157M                                                                                                                       bench Utf8 (len = 10) (value encoding deserialization)                        
                        time:   [32.230 ns 32.285 ns 32.336 ns]

Benchmarking bench Utf8 (len = 1000) (key encoding deserialization): Collecting 100 samples in estimated 5.0013 s (8.6M                                                                                                                       bench Utf8 (len = 1000) (key encoding deserialization)                        
                        time:   [598.51 ns 606.04 ns 612.95 ns]

Benchmarking bench Utf8 (len = 1000) (value encoding deserialization): Collecting 100 samples in estimated 5.0005 s (49                                                                                                                       bench Utf8 (len = 1000) (value encoding deserialization)                        
                        time:   [102.42 ns 103.31 ns 104.15 ns]

Benchmarking bench Utf8 (len = 10000) (key encoding deserialization): Collecting 100 samples in estimated 5.0835 s (162                                                                                                                       bench Utf8 (len = 10000) (key encoding deserialization)                        
                        time:   [33.863 µs 34.294 µs 34.671 µs]

Benchmarking bench Utf8 (len = 10000) (value encoding deserialization): Collecting 100 samples in estimated 5.0134 s (7                                                                                                                       bench Utf8 (len = 10000) (value encoding deserialization)                        
                        time:   [6.5120 µs 6.5394 µs 6.5636 µs]

Benchmarking bench Struct of Bool (len = 100) (key encoding deserialization): Collecting 100 samples in estimated 5.001                                                                                                                       bench Struct of Bool (len = 100) (key encoding deserialization)                        
                        time:   [1.1677 µs 1.1710 µs 1.1747 µs]

Benchmarking bench Struct of Bool (len = 100) (value encoding deserialization): Collecting 100 samples in estimated 5.0                                                                                                                       bench Struct of Bool (len = 100) (value encoding deserialization)                        
                        time:   [13.860 µs 13.894 µs 13.927 µs]

Benchmarking bench List of Bool (len = 100) (key encoding deserialization): Collecting 100 samples in estimated 5.0040                                                                                                                        bench List of Bool (len = 100) (key encoding deserialization)                        
                        time:   [1.1931 µs 1.2010 µs 1.2081 µs]

Benchmarking bench List of Bool (len = 100) (value encoding deserialization): Collecting 100 samples in estimated 5.057                                                                                                                       bench List of Bool (len = 100) (value encoding deserialization)                        
                        time:   [11.613 µs 11.670 µs 11.724 µs]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/test Test related issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants