tp: speed up JSON tokenization/parsing by ~9x #1641
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This CL moves away from using jsoncpp as much as possible in trace processor for performance reasons. Turns out jsoncpp really sucks very badly and with a few hundred lines of code, we can destroy it in benchmarks.
Before:
After:
There should be little-no functional change as a result of this CL. I've added a bunch of tests which pass both before and after to try and ensure there is no behavioural change. It's possible that there are some bugs of course but given the huge perf wins here, I think it's worth landing.