aezeed: add a set of benchmarks
In this commit we add a set of benchmarks to be able to measure the enciphering and deciphering speed of the current scheme with the current scrypt parameters. On my laptop I get about 100ms per attempt: ⛰ go test -run=XXX -bench=. goos: darwin goarch: amd64 pkg: github.com/lightningnetwork/lnd/aezeed BenchmarkToMnenonic-4 10 102287840 ns/op BenchmarkFromMnenonic-4 10 105874973 ns/op PASS ok github.com/lightningnetwork/lnd/aezeed 3.036s
This commit is contained in:
parent
eb3b5196e1
commit
120cebef77
69
aezeed/bench_test.go
Normal file
69
aezeed/bench_test.go
Normal file
@ -0,0 +1,69 @@
|
||||
package aezeed
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
var (
|
||||
mnemonic Mnemonic
|
||||
|
||||
seed *CipherSeed
|
||||
)
|
||||
|
||||
// BenchmarkFrommnemonic benchmarks the process of converting a cipher seed
|
||||
// (given the salt), to an enciphered mnemonic.
|
||||
func BenchmarkTomnemonic(b *testing.B) {
|
||||
scryptN = 32768
|
||||
scryptR = 8
|
||||
scryptP = 1
|
||||
|
||||
pass := []byte("1234567890abcedfgh")
|
||||
cipherSeed, err := New(0, nil, time.Now())
|
||||
if err != nil {
|
||||
b.Fatalf("unable to create seed: %v", err)
|
||||
}
|
||||
|
||||
var r Mnemonic
|
||||
for i := 0; i < b.N; i++ {
|
||||
r, err = cipherSeed.ToMnemonic(pass)
|
||||
if err != nil {
|
||||
b.Fatalf("unable to encipher: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
b.ReportAllocs()
|
||||
|
||||
mnemonic = r
|
||||
}
|
||||
|
||||
// BenchmarkToCipherSeed benchmarks the process of deciphering an existing
|
||||
// enciphered mnemonic.
|
||||
func BenchmarkToCipherSeed(b *testing.B) {
|
||||
scryptN = 32768
|
||||
scryptR = 8
|
||||
scryptP = 1
|
||||
|
||||
pass := []byte("1234567890abcedfgh")
|
||||
cipherSeed, err := New(0, nil, time.Now())
|
||||
if err != nil {
|
||||
b.Fatalf("unable to create seed: %v", err)
|
||||
}
|
||||
|
||||
mnemonic, err := cipherSeed.ToMnemonic(pass)
|
||||
if err != nil {
|
||||
b.Fatalf("unable to create mnemonic: %v", err)
|
||||
}
|
||||
|
||||
var s *CipherSeed
|
||||
for i := 0; i < b.N; i++ {
|
||||
s, err = mnemonic.ToCipherSeed(pass)
|
||||
if err != nil {
|
||||
b.Fatalf("unable to decipher: %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
b.ReportAllocs()
|
||||
|
||||
seed = s
|
||||
}
|
Loading…
Reference in New Issue
Block a user