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

   > 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
   
   Replaced the full serde_json::Value materialization of each row with a 
streaming DeserializeSeed path walk that skips non-matching subtrees via 
IgnoredAny and allocates only the matched subtree, eliminating per-key and 
per-value heap allocations for the whole document.
   
   ## What changes are included in this PR?
   
   Replaced the full serde_json::Value materialization of each row with a 
streaming DeserializeSeed path walk that skips non-matching subtrees via 
IgnoredAny and allocates only the matched subtree, eliminating per-key and 
per-value heap allocations for the whole document.
   
   ## How are these changes tested?
   
   Correctness: unit tests + seeded differential fuzz (bit-identical Arrow 
output vs `main`).
   
   Benchmark (criterion):
   
   - nested_field: 75.342% faster (base 7961939ns -> cand 1963265ns)
   - top_level_field: 76.842% faster (base 7968457ns -> cand 1845346ns)
   - array_index: 75.091% faster (base 7562066ns -> cand 1883639ns)
   
   Full criterion output:
   
   ```text
   get_json_object/top_level_field
                           time:   [1.8425 ms 1.8451 ms 1.8481 ms]
                           change: [−76.936% −76.842% −76.753%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 10 outliers among 100 measurements (10.00%)
     3 (3.00%) low mild
     3 (3.00%) high mild
     4 (4.00%) high severe
   get_json_object/nested_field
                           time:   [1.9589 ms 1.9639 ms 1.9682 ms]
                           change: [−75.504% −75.342% −75.196%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 6 outliers among 100 measurements (6.00%)
     5 (5.00%) low mild
     1 (1.00%) high mild
   get_json_object/array_index
                           time:   [1.8813 ms 1.8854 ms 1.8907 ms]
                           change: [−75.236% −75.091% −74.962%] (p = 0.00 < 
0.05)
                           Performance has improved.
   Found 4 outliers among 100 measurements (4.00%)
     1 (1.00%) high mild
     3 (3.00%) high severe
   ```
   
   
   


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