Skip to content

Latest commit

History

History
78 lines (69 loc) 路 3.18 KB

benchmarks.md

File metadata and controls

78 lines (69 loc) 路 3.18 KB

Benchmarks

The current library benchmarks for signing and verification are located below. For ring signatures, the signing and verification time are linearly proportional to the number of members of the ring (or "anonymity set"), which is what's observed.

Note: the number directly after BenchmarkSign or BenchmarkVerify in the test name is the ring size being benchmarked.

Note: the ns/op value on the right is the time it took for signing or verification (depending on the test). The middle value is the number of times the operation was executed by the Go benchmarker.

Summary:

  • secp256k1 signing and verification is around 0.92ms per ring member
  • ed25519 signing and verification is around is around 0.42ms per ring member
goos: linux
goarch: amd64
pkg: github.com/noot/ring-go
cpu: Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz

BenchmarkSign2_Secp256k1
BenchmarkSign2_Secp256k1-8       	     439	   2720747 ns/op
BenchmarkSign4_Secp256k1
BenchmarkSign4_Secp256k1-8       	     265	   4592636 ns/op
BenchmarkSign8_Secp256k1
BenchmarkSign8_Secp256k1-8       	     144	   8119283 ns/op
BenchmarkSign16_Secp256k1
BenchmarkSign16_Secp256k1-8      	      70	  15489045 ns/op
BenchmarkSign32_Secp256k1
BenchmarkSign32_Secp256k1-8      	     442	   2655179 ns/op
BenchmarkSign64_Secp256k1
BenchmarkSign64_Secp256k1-8      	      18	  58920929 ns/op
BenchmarkSign128_Secp256k1
BenchmarkSign128_Secp256k1-8     	       9	 118205504 ns/op

BenchmarkSign2_Ed25519
BenchmarkSign2_Ed25519-8         	     984	   1164415 ns/op
BenchmarkSign4_Ed25519
BenchmarkSign4_Ed25519-8         	     600	   1979553 ns/op
BenchmarkSign8_Ed25519
BenchmarkSign8_Ed25519-8         	     321	   3646679 ns/op
BenchmarkSign16_Ed25519
BenchmarkSign16_Ed25519-8        	     165	   7196753 ns/op
BenchmarkSign32_Ed25519
BenchmarkSign32_Ed25519-8        	      78	  13598390 ns/op
BenchmarkSign64_Ed25519
BenchmarkSign64_Ed25519-8        	      38	  26774796 ns/op
BenchmarkSign128_Ed25519
BenchmarkSign128_Ed25519-8       	      19	  53311008 ns/op

BenchmarkVerify2_Secp256k1
BenchmarkVerify2_Secp256k1-8     	     615	   1839778 ns/op
BenchmarkVerify4_Secp256k1
BenchmarkVerify4_Secp256k1-8     	     322	   3585093 ns/op
BenchmarkVerify8_Secp256k1
BenchmarkVerify8_Secp256k1-8     	     158	   7380894 ns/op
BenchmarkVerify16_Secp256k1
BenchmarkVerify16_Secp256k1-8    	      80	  14837867 ns/op
BenchmarkVerify32_Secp256k1
BenchmarkVerify32_Secp256k1-8    	      38	  29946344 ns/op
BenchmarkVerify64_Secp256k1
BenchmarkVerify64_Secp256k1-8    	      18	  62373088 ns/op
BenchmarkVerify128_Secp256k1
BenchmarkVerify128_Secp256k1-8   	       8	 131062030 ns/op

BenchmarkVerify2_Ed25519
BenchmarkVerify2_Ed25519-8       	    1414	    813219 ns/op
BenchmarkVerify4_Ed25519
BenchmarkVerify4_Ed25519-8       	     688	   1655943 ns/op
BenchmarkVerify8_Ed25519
BenchmarkVerify8_Ed25519-8       	     328	   3284147 ns/op
BenchmarkVerify16_Ed25519
BenchmarkVerify16_Ed25519-8      	     180	   6590478 ns/op
BenchmarkVerify32_Ed25519
BenchmarkVerify32_Ed25519-8      	      87	  13433058 ns/op
BenchmarkVerify64_Ed25519
BenchmarkVerify64_Ed25519-8      	      40	  27083394 ns/op
BenchmarkVerify128_Ed25519
BenchmarkVerify128_Ed25519-8     	      19	  55970502 ns/op