base-x icon indicating copy to clipboard operation
base-x copied to clipboard

Improve decoding performance

Open steveluscher opened this issue 3 years ago • 0 comments

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)
==================================================

steveluscher avatar Apr 13 '23 05:04 steveluscher