Use lookup table for faster hex encoding#245
Merged
feross merged 2 commits intofeross:masterfrom Sep 12, 2019
Merged
Conversation
Lookup table faster ~9-12 times than toString('hex') for each byte.
See feross#219
feross
approved these changes
Sep 11, 2019
feross
approved these changes
Sep 12, 2019
Owner
feross
left a comment
There was a problem hiding this comment.
Thanks for the PR, merged!
I asked on Twitter and someone suggested a tip that might further improve performance: https://twitter.com/WebReflection/status/1171871844141621249 if you're interested to try to improve it further :)
Owner
|
5.4.3 |
Contributor
Author
|
Oh, forget about |
Owner
|
@fanatid Of course, no problem. Thanks for your PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Lookup table faster ~9-12 times than toString('hex') for each byte. See #219
Benchmarks for generating lookup table:
code here
If we not allow V8 optimize function (because functions hot, they will be JIT-ed) fastest way:
Also this should be packed
smiarray what should give additional performance (not sure).Benchmarks for `toString('hex')` new-vs-old:
Code here
Current way slowly ~12 times. Tested 10k buffer with 1024 bytes: 995ms vs 79ms.