chloro-pn opened a new pull request, #6178:
URL: https://github.com/apache/arrow-rs/pull/6178

   # Which issue does this PR close?
   
   <!--
   We generally require a GitHub issue to be filed for all bug fixes and 
enhancements and this helps us generate change logs for our releases. You can 
link an issue to this PR using the GitHub syntax. For example `Closes #123` 
indicates that this PR will close issue #123.
   -->
   
   Closes #6153 
   
   This PR uses [Comparing 
Functions](https://bheisler.github.io/criterion.rs/book/user_guide/comparing_functions.html)
 to complete the benchmark,and the benchmark results are as follows:
   
   The testing conditions are as follows:
   * The length of the array being tested is 1024
   * and the size of each binary slice is 5, 10, 50, 100, and 200 bytes.
   * In the boolean array used for filtering, the boolean values `true` and 
`false` alternate, indicating a filtering rate of 50%.
   
   According to the test results, the performance improvement for its specific 
implementation is around 100%.
   
   ```
   fixed_size_binary_array_filter/default/5
                           time:   [5.3130 µs 5.3224 µs 5.3326 µs]
                           change: [-1.0302% -0.5917% +0.0439%] (p = 0.02 < 
0.05)
                           Change within noise threshold.
   Found 11 outliers among 100 measurements (11.00%)
     2 (2.00%) high mild
     9 (9.00%) high severe
   fixed_size_binary_array_filter/special/5
                           time:   [2.0309 µs 2.0373 µs 2.0443 µs]
                           change: [+0.2296% +2.2049% +4.1548%] (p = 0.03 < 
0.05)
                           Change within noise threshold.
   Found 20 outliers among 100 measurements (20.00%)
     3 (3.00%) high mild
     17 (17.00%) high severe
   fixed_size_binary_array_filter/default/10
                           time:   [5.2103 µs 5.2127 µs 5.2154 µs]
                           change: [-0.6266% -0.1797% +0.1696%] (p = 0.46 > 
0.05)
                           No change in performance detected.
   Found 8 outliers among 100 measurements (8.00%)
     4 (4.00%) high mild
     4 (4.00%) high severe
   fixed_size_binary_array_filter/special/10
                           time:   [1.9228 µs 1.9274 µs 1.9335 µs]
                           change: [+5.4468% +7.9768% +10.470%] (p = 0.00 < 
0.05)
                           Performance has regressed.
   Found 1 outliers among 100 measurements (1.00%)
     1 (1.00%) high mild
   fixed_size_binary_array_filter/default/50
                           time:   [6.0991 µs 6.1095 µs 6.1245 µs]
                           change: [-1.0712% -0.7263% -0.2411%] (p = 0.00 < 
0.05)
                           Change within noise threshold.
   Found 10 outliers among 100 measurements (10.00%)
     2 (2.00%) high mild
     8 (8.00%) high severe
   fixed_size_binary_array_filter/special/50
                           time:   [3.1281 µs 3.1549 µs 3.1764 µs]
                           change: [+0.9267% +2.0661% +3.2136%] (p = 0.00 < 
0.05)
                           Change within noise threshold.
   Found 27 outliers among 100 measurements (27.00%)
     24 (24.00%) low severe
     2 (2.00%) high mild
     1 (1.00%) high severe
   fixed_size_binary_array_filter/default/100
                           time:   [6.4213 µs 6.4247 µs 6.4281 µs]
                           change: [-1.9863% -1.7724% -1.6178%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 7 outliers among 100 measurements (7.00%)
     5 (5.00%) high mild
     2 (2.00%) high severe
   fixed_size_binary_array_filter/special/100
                           time:   [3.2304 µs 3.2392 µs 3.2446 µs]
                           change: [+0.9337% +1.1880% +1.4823%] (p = 0.00 < 
0.05)
                           Change within noise threshold.
   Found 20 outliers among 100 measurements (20.00%)
     1 (1.00%) low severe
     4 (4.00%) low mild
     9 (9.00%) high mild
     6 (6.00%) high severe
   fixed_size_binary_array_filter/default/200
                           time:   [10.528 µs 10.573 µs 10.619 µs]
                           change: [-3.6229% -2.9915% -2.3201%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 4 outliers among 100 measurements (4.00%)
     1 (1.00%) low mild
     1 (1.00%) high mild
     2 (2.00%) high severe
   fixed_size_binary_array_filter/special/200
                           time:   [7.0767 µs 7.1226 µs 7.1705 µs]
                           change: [-6.5728% -4.8409% -3.4225%] (p = 0.00 < 
0.05)
                           Performance has improved.
   ```
   The current issue is that `criterion` [cannot test private members in the 
module](https://bheisler.github.io/criterion.rs/book/user_guide/known_limitations.html),
 so I have to set some members in `filter.rs` to public or provide access 
interfaces, which may not be the best practice.
   Is there a solution? I need help.
   
   
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to