Use single value append to avoid the overhead of variable arguments #1936
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.
Mailing List thread:
https://groups.google.com/forum/#!topic/liftweb/jD3OG9jD_hs
The newValue method in JsonParser was using a variable argument method when adding a single item to a ListBuffer which triggered extra array allocations. This change uses a single item method bypassing the extra array allocation and optimizing performance.
before change
3.2.0-RC1
[info] LiftJsonBenchmark.readCaseClass thrpt 10 443843.164 ± 5996.863 ops/s
After patch
[info] LiftJsonBenchmark.readCaseClass thrpt 10 551319.586 ± 6361.040 ops/s