-
Notifications
You must be signed in to change notification settings - Fork 596
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
chore(bench): add bench for json parser #9195
Conversation
Signed-off-by: tabVersion <[email protected]>
Signed-off-by: tabVersion <[email protected]>
Codecov Report
@@ Coverage Diff @@
## main #9195 +/- ##
=======================================
Coverage 70.81% 70.82%
=======================================
Files 1200 1200
Lines 200245 200245
=======================================
+ Hits 141813 141822 +9
+ Misses 58432 58423 -9
Flags with carried forward coverage won't be shown. Click here to find out more. see 3 files with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM as a starting point for benchmarking json parser. Thanks for this!
I'm curious about source::benches::json_parser.rs
though. Is that benchmark still relevant then?
Signed-off-by: tabVersion <[email protected]>
Yes, it is still ok to benchmark json parser perf for general purposes. In this pr, because I suspect the regression is introduced in #9086, it focuses on comparing cases that column names that do not match json keys. |
run on local machine: Apple M1 silicon, 32G RAM
seems there gonna be an extra 40ms+(5%) if column names do not match json keys. maybe it can explain the observation in #9113 |
Hmm not entirely, but can be a contributing factor. E2e was 6% but just json parser alone regression is like 60% (11%/18%=0.6), so 5% doesnt seem to explain it fully. Flamegraph percentages probably not too reliable though, only rough indicators. We can probably can checkout the old main branch where 11% is observed and run the json parser micro benchmarks, get a more precise figure. |
I hereby agree to the terms of the RisingWave Labs, Inc. Contributor License Agreement.
What's changed and what's your intention?
Checklist For Contributors
as title, the pr focuses on comparing cases that column names that do not match json keys
- [ ] I have written necessary rustdoc comments- [ ] I have added necessary unit tests and integration tests- [ ] I have added fuzzing tests or opened an issue to track them. (Optional, recommended for new SQL features #7934).- [ ] I have demonstrated that backward compatibility is not broken by breaking changes and created issues to track deprecated features to be removed in the future. (Please refer to the issue)./risedev check
(or alias,./risedev c
)Checklist For Reviewers
Documentation
Click here for Documentation
Types of user-facing changes
Please keep the types that apply to your changes, and remove the others.
Release note