base-x
base-x copied to clipboard
Improve decoding performance
This yields a performance improvement over indexing into source over and over. source is asserted to be a string, psz is monotonically increasing, and psz >= source.length is a good indication that you've run out of characters.
Originally proposed by @oscxc in #74.
Benchmarks
(cd ../ && npm run build) && SEED=8854dc2a353e143702ef1b29874b63a4 npm start
Before
> [email protected] start
> node index.js
Seed: 8854dc2a353e143702ef1b29874b63a4
--------------------------------------------------
encode x 389,286 ops/sec ±0.21% (8 runs sampled)
decode x 415,231 ops/sec ±0.91% (9 runs sampled)
==================================================
After
> [email protected] start
> node index.js
Seed: 8854dc2a353e143702ef1b29874b63a4
--------------------------------------------------
encode x 389,695 ops/sec ±0.12% (9 runs sampled)
decode x 449,877 ops/sec ±0.13% (9 runs sampled)
==================================================