diff options
| author | Rose Hogenson <rosehogenson@posteo.net> | 2025-09-24 17:25:46 -0700 |
|---|---|---|
| committer | Rose Hogenson <rosehogenson@posteo.net> | 2025-09-24 17:25:46 -0700 |
| commit | 35469f25cd53707b3e801caaff49121926bb7238 (patch) | |
| tree | 6eb1eef980a9f430410101fbf2de3d891ca99324 /tools/finditers | |
| parent | Tweak defaultIterations for tanjiro (diff) | |
| download | roseh.moe-35469f25cd53707b3e801caaff49121926bb7238.tar.zst | |
Rename cmd -> tools
Diffstat (limited to 'tools/finditers')
| -rw-r--r-- | tools/finditers/finditers.go | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tools/finditers/finditers.go b/tools/finditers/finditers.go new file mode 100644 index 0000000..2a256c8 --- /dev/null +++ b/tools/finditers/finditers.go @@ -0,0 +1,44 @@ +package main + +import ( + "encoding/hex" + "fmt" + "os" + "sort" + "testing" + "time" + + "gitlab.com/rhogenson/roseh.moe/internal/pwhash" +) + +var ( + iterations int + + salt, _ = hex.DecodeString("3fb84513fc3afcd6d3b230bf9ece91aaae2d2a99da17efbf7de83b21fafe3f08") +) + +func BenchmarkHashIter(b *testing.B) { + const password = "oboe shortness ether ideology undesired fresh freezable catching mashing glimpse" + for b.Loop() { + pwhash.HashIter(password, salt, iterations) + } +} + +func run() error { + for iterations = 8192; time.Duration(testing.Benchmark(BenchmarkHashIter).NsPerOp()) < 500*time.Millisecond; iterations *= 2 { + } + lo := iterations / 2 + hi := iterations + fmt.Println(lo + sort.Search(hi-lo, func(i int) bool { + iterations = lo + i + return time.Duration(testing.Benchmark(BenchmarkHashIter).NsPerOp()) > 500*time.Millisecond + })) + return nil +} + +func main() { + if err := run(); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } +} |
