Replace unshift where possible for performance improvement #107
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.
Found this when debugging an application I wrote that needs to query some 50-60MB XML files. Using the Chrome Dev tools CPU profiler I identified one of the longest calls was on
.unshift(), following some of the suggestions in this post I replaced the unshift calls that I could with .push() and .reverse(). Seemed to make a marked improvement in the CPU profiler report in that area.Tests are still passing.
CPU Profile Before (17630ms on
res.unshift(tokenValue.pop())) :CPU Profile After (
push()andreverse()calls are around ~6200ms, down from 17630ms call tounshift()) :