What's Changed
- More tests and nits by @ribasushi in #17
- Big refactoring with speed up to x10.
Previous version:
cpu: Apple M4
BenchmarkTrivialBase58Encoding
BenchmarkTrivialBase58Encoding-10 704328 1554 ns/op
BenchmarkFastBase58Encoding
BenchmarkFastBase58Encoding-10 1000000 1065 ns/op
BenchmarkTrivialBase58Decoding
BenchmarkTrivialBase58Decoding-10 1541754 767.0 ns/op
BenchmarkFastBase58Decoding
BenchmarkFastBase58Decoding-10 4358894 278.3 ns/op
BenchmarkTrivialBase58Encoding32
BenchmarkTrivialBase58Encoding32-10 729949 1627 ns/op
BenchmarkFastBase58Encoding32
BenchmarkFastBase58Encoding32-10 1000000 1118 ns/op
BenchmarkTrivialBase58Encoding36
BenchmarkTrivialBase58Encoding36-10 608595 1813 ns/op
BenchmarkFastBase58Encoding36
BenchmarkFastBase58Encoding36-10 893626 1275 ns/op
BenchmarkTrivialBase58Encoding64
BenchmarkTrivialBase58Encoding64-10 284566 4028 ns/op
BenchmarkFastBase58Encoding64
BenchmarkFastBase58Encoding64-10 279295 3955 ns/op
BenchmarkTrivialBase58Encoding256
BenchmarkTrivialBase58Encoding256-10 33140 35533 ns/op
BenchmarkFastBase58Encoding256
BenchmarkFastBase58Encoding256-10 17833 67081 ns/op
BenchmarkTrivialBase58Decoding32
BenchmarkTrivialBase58Decoding32-10 1512828 875.7 ns/op
BenchmarkFastBase58Decoding32
BenchmarkFastBase58Decoding32-10 4247128 341.9 ns/op
BenchmarkTrivialBase58Decoding36
BenchmarkTrivialBase58Decoding36-10 1319317 880.9 ns/op
BenchmarkFastBase58Decoding36
BenchmarkFastBase58Decoding36-10 3449229 366.6 ns/op
BenchmarkTrivialBase58Decoding64
BenchmarkTrivialBase58Decoding64-10 663181 1636 ns/op
BenchmarkFastBase58Decoding64
BenchmarkFastBase58Decoding64-10 1327443 903.0 ns/op
BenchmarkTrivialBase58Decoding256
BenchmarkTrivialBase58Decoding256-10 153183 7469 ns/op
BenchmarkFastBase58Decoding256
BenchmarkFastBase58Decoding256-10 93289 12428 ns/op
New version:
cpu: Apple M4
BenchmarkTrivialBase58Encoding
BenchmarkTrivialBase58Encoding-10 712528 1539 ns/op
BenchmarkFastBase58Encoding
BenchmarkFastBase58Encoding-10 6090552 193.7 ns/op
BenchmarkTrivialBase58Decoding
BenchmarkTrivialBase58Decoding-10 1539550 767.5 ns/op
BenchmarkFastBase58Decoding
BenchmarkFastBase58Decoding-10 18001034 64.68 ns/op
BenchmarkTrivialBase58Encoding32
BenchmarkTrivialBase58Encoding32-10 632319 1664 ns/op
BenchmarkFastBase58Encoding32
BenchmarkFastBase58Encoding32-10 6023108 195.3 ns/op
BenchmarkTrivialBase58Encoding36
BenchmarkTrivialBase58Encoding36-10 575576 1799 ns/op
BenchmarkFastBase58Encoding36
BenchmarkFastBase58Encoding36-10 4596517 242.7 ns/op
BenchmarkTrivialBase58Encoding64
BenchmarkTrivialBase58Encoding64-10 308518 3802 ns/op
BenchmarkFastBase58Encoding64
BenchmarkFastBase58Encoding64-10 1829064 662.5 ns/op
BenchmarkTrivialBase58Encoding256
BenchmarkTrivialBase58Encoding256-10 33804 35967 ns/op
BenchmarkFastBase58Encoding256
BenchmarkFastBase58Encoding256-10 125356 9546 ns/op
BenchmarkTrivialBase58Decoding32
BenchmarkTrivialBase58Decoding32-10 1489977 780.0 ns/op
BenchmarkFastBase58Decoding32
BenchmarkFastBase58Decoding32-10 18067844 66.52 ns/op
BenchmarkTrivialBase58Decoding36
BenchmarkTrivialBase58Decoding36-10 1245730 867.8 ns/op
BenchmarkFastBase58Decoding36
BenchmarkFastBase58Decoding36-10 15569721 77.47 ns/op
BenchmarkTrivialBase58Decoding64
BenchmarkTrivialBase58Decoding64-10 609102 1654 ns/op
BenchmarkFastBase58Decoding64
BenchmarkFastBase58Decoding64-10 9637953 130.8 ns/op
BenchmarkTrivialBase58Decoding256
BenchmarkTrivialBase58Decoding256-10 163030 7345 ns/op
BenchmarkFastBase58Decoding256
BenchmarkFastBase58Decoding256-10 1918304 629.3 ns/op
PASS