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]
