andygrove opened a new pull request, #23537:
URL: https://github.com/apache/datafusion/pull/23537

   > This PR was created by an LLM as a draft PR. I will mark it as ready for 
review after human review.
   
   
   ## Which issue does this PR close?
   
   N/A — autonomous exploratory PR.
   
   ## Rationale for this change
   
   Removed the per-row `BooleanArray::slice` allocation in map key lookup by 
scanning the key-comparison bitmap in place over each row's offset range.
   
   ## What changes are included in this PR?
   
   Removed the per-row `BooleanArray::slice` allocation in map key lookup by 
scanning the key-comparison bitmap in place over each row's offset range.
   
   ## Are these changes tested?
   
   Correctness: unit tests + seeded differential fuzz (bit-identical Arrow 
output vs `main`).
   
   Benchmark (criterion):
   
   - get_field_map_1024_entries_16_last: 6.23% faster (base 42011ns -> cand 
39394ns)
   - get_field_map_1024_entries_4_missing: 12.267% faster (base 19070ns -> cand 
16730ns)
   - get_field_map_8192_entries_4_last: 8.122% faster (base 168450ns -> cand 
154769ns)
   - get_field_map_1024_entries_4_last: 11.166% faster (base 23229ns -> cand 
20635ns)
   - get_field_map_1024_entries_4_first: 15.396% faster (base 20877ns -> cand 
17663ns)
   
   Full criterion output:
   
   ```text
   get_field_map_1024_entries_4_first
                           time:   [17.664 µs 17.701 µs 17.756 µs]
                           change: [−15.807% −15.396% −14.964%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     4 (4.00%) high mild
     2 (2.00%) high severe
   
   get_field_map_1024_entries_4_last
                           time:   [20.450 µs 20.499 µs 20.546 µs]
                           change: [−11.535% −11.166% −10.793%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     2 (2.00%) low mild
     4 (4.00%) high mild
   
   get_field_map_1024_entries_16_last
                           time:   [39.406 µs 39.460 µs 39.516 µs]
                           change: [−6.9089% −6.2297% −5.5570%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 11 outliers among 100 measurements (11.00%)
     6 (6.00%) low severe
     2 (2.00%) high mild
     3 (3.00%) high severe
   
   get_field_map_1024_entries_4_missing
                           time:   [16.755 µs 16.775 µs 16.796 µs]
                           change: [−12.675% −12.267% −11.888%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     4 (4.00%) high mild
     2 (2.00%) high severe
   
   get_field_map_8192_entries_4_last
                           time:   [154.23 µs 154.92 µs 155.72 µs]
                           change: [−8.5962% −8.1217% −7.6240%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 12 outliers among 100 measurements (12.00%)
     11 (11.00%) high mild
     1 (1.00%) high severe
   ```
   
   
   ## Are there any user-facing changes?
   
   <!--
   If there are user-facing changes then we may require documentation to be 
updated before approving the PR.
   -->
   
   <!--
   If there are any breaking changes to public APIs, please add the `api 
change` label.
   -->
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to