Hi I am trying to benchmark a key-value store written in Go. I have the code as shown below. There are a few lines that are specific to the store itself, other than that it is all related to benchmarking. I am trying to find the no. of keys that have valid values versus the no. of keys that dont have values.
Running the code below as go test -v --bench BenchmarkReadRandomBadger --timeout 10m --benchtime 3m results in this output === BenchmarkReadRandomBadger/read-random-badger-128 20000000 11842 ns/op --- BENCH: BenchmarkReadRandomBadger bench_test.go:101: badger 13277801 keys had valid values. bench_test.go:102: badger 7732300 keys had no values bench_test.go:103: badger 0 keys had errors PASS ok github.com/dgraph-io/badger-bench 256.448s === Now, based on my understanding, the values above should add up to the number of iterations (20000000), but instead add up to 13277801+7732300 = 21010101 Can somebody help me understand this discrepancy. Code: === func BenchmarkReadRandomBadger(b *testing.B) { // store setup bdb, err := getBadger() y.Check(err) defer bdb.Close() var totalFound uint64 var totalErr uint64 var totalNotFound uint64 b.Run("read-random-badger", func(b *testing.B) { b.RunParallel(func(pb *testing.PB) { var found, errored, notFound uint64 for pb.Next() { key := newKey() var val badger.KVItem // get value from store if err := bdb.Get(key, &val); err == nil && val.Value() != nil { found++ } else if err != nil { errored++ } else { notFound++ } } atomic.AddUint64(&totalFound, found) atomic.AddUint64(&totalErr, errored) atomic.AddUint64(&totalNotFound, notFound) }) }) b.Logf("badger %d keys had valid values.", totalFound) b.Logf("badger %d keys had no values", totalNotFound) b.Logf("badger %d keys had errors", totalErr) } === -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.