Skip to content

Releases: mr-tron/base58

x10 speedup

04 Apr 18:17

Choose a tag to compare

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

Speed improvment and code simplify

29 May 14:17

Choose a tag to compare