fix: perf improvement for rfc4648 base decoding #323
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.
Making a performance improvement here to rfc4648 base decoding (e.g. base64, base32, base16). On each decoding call we were building-up a dictionary mapping alphabet characters to their index—now this dictionary is built ahead of time.
Benching
CID.parse()
against 100,000 base32 CIDs sees an improvement of about 33-35% with this change (node v22.15.1 / macOS / ARM).