Commit 481e619c authored by Eric Eisner's avatar Eric Eisner Committed by Robert Griesemer

suffixarray: add benchmarks for construction

R=gri, jeff
CC=golang-dev
https://golang.org/cl/5040048
parent 17410d75
...@@ -257,6 +257,30 @@ func TestIndex(t *testing.T) { ...@@ -257,6 +257,30 @@ func TestIndex(t *testing.T) {
} }
} }
// Of all possible inputs, the random bytes have the least amount of substring
// repetition, and the repeated bytes have the most. For most algorithms,
// the running time of every input will be between these two.
func benchmarkNew(b *testing.B, random bool) {
b.StopTimer()
data := make([]byte, 1e6)
if random {
for i := range data {
data[i] = byte(rand.Intn(256))
}
}
b.StartTimer()
for i := 0; i < b.N; i++ {
New(data)
}
}
func BenchmarkNewIndexRandom(b *testing.B) {
benchmarkNew(b, true)
}
func BenchmarkNewIndexRepeat(b *testing.B) {
benchmarkNew(b, false)
}
func BenchmarkSaveRestore(b *testing.B) { func BenchmarkSaveRestore(b *testing.B) {
b.StopTimer() b.StopTimer()
r := rand.New(rand.NewSource(0x5a77a1)) // guarantee always same sequence r := rand.New(rand.NewSource(0x5a77a1)) // guarantee always same sequence
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment