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

ARROW-11131: [Rust] Improve performance of bool_equal #9101

Closed
wants to merge 1 commit into from

Conversation

mqy
Copy link
Contributor

@mqy mqy commented Jan 5, 2021

This PR follows @jorgecarleitao 's great PR #8541, with the following changes:

  1. Implemented the logic when both lhs and rhs have zero null count.
  2. May fixed a possible condition testing bug in (0..len).all(|i| {...} .
    NOTE: there are other similar cases where test_struct() failed when updated in this way.
  3. Added benchmarks equal_bool_512 and equal_bool_nulls_512.

Benchmark comparing to arrow master:

equal_bool_512          time:   [52.946 ns 53.075 ns 53.188 ns]                           
                        change: [-96.295% -96.285% -96.277%] (p = 0.00 < 0.05)
                        Performance has improved.
Found 7 outliers among 100 measurements (7.00%)
  3 (3.00%) low severe
  2 (2.00%) high mild
  2 (2.00%) high severe

equal_bool_nulls_512    time:   [2.3502 us 2.3696 us 2.3893 us]                                  
                        change: [-62.285% -62.019% -61.714%] (p = 0.00 < 0.05)
                        Performance has improved.

@github-actions
Copy link

github-actions bot commented Jan 5, 2021

@codecov-io
Copy link

Codecov Report

Merging #9101 (4dd6bfb) into master (86cf246) will increase coverage by 0.05%.
The diff coverage is 67.24%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master    #9101      +/-   ##
==========================================
+ Coverage   82.60%   82.66%   +0.05%     
==========================================
  Files         204      204              
  Lines       50175    50327     +152     
==========================================
+ Hits        41447    41602     +155     
+ Misses       8728     8725       -3     
Impacted Files Coverage Δ
rust/arrow/src/array/equal/boolean.rs 69.84% <67.24%> (-30.16%) ⬇️
rust/arrow/src/array/array_string.rs 88.88% <0.00%> (-1.06%) ⬇️
rust/parquet/src/schema/types.rs 89.52% <0.00%> (-0.42%) ⬇️
rust/parquet/src/arrow/array_reader.rs 75.44% <0.00%> (+0.09%) ⬆️
rust/parquet/src/arrow/arrow_reader.rs 91.57% <0.00%> (+0.18%) ⬆️
rust/arrow/src/array/array_binary.rs 90.98% <0.00%> (+0.43%) ⬆️
rust/parquet/src/arrow/schema.rs 91.52% <0.00%> (+0.58%) ⬆️
rust/arrow/src/datatypes.rs 77.66% <0.00%> (+2.63%) ⬆️
rust/arrow/src/ffi.rs 75.67% <0.00%> (+3.45%) ⬆️
rust/arrow/src/record_batch.rs 83.96% <0.00%> (+10.13%) ⬆️

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 f49f293...4dd6bfb. Read the comment docs.

@mqy mqy marked this pull request as draft January 5, 2021 20:26
@mqy mqy closed this Jan 5, 2021
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.

2 participants