Egon,
Obviously I ran the race detector. No races were detected. Therefore, since
it wasn't germane, I omitted it from the posted results.
Here's my results.
$ go test -run=! -bench=. -v -cpu=4 -race total_test.go
goos: linux
goarch: amd64
BenchmarkTotal/Count-4 50000000 24.4 ns/op
--- BENCH: BenchmarkTotal/Count-4
total_test.go:16: count 1
total_test.go:16: count 0
total_test.go:16: count 0
total_test.go:16: count 0
total_test.go:16: count 100
total_test.go:16: count 0
total_test.go:16: count 0
total_test.go:16: count 0
total_test.go:16: count 3060
total_test.go:16: count 3980
... [output truncated]
--- BENCH: BenchmarkTotal
total_test.go:20: total 51010101
PASS
ok command-line-arguments 2.258s
Please post you results that show a race.
Peter
On Thursday, August 10, 2017 at 3:01:45 AM UTC-4, Egon wrote:
>
> Note, you also have a race in your code.
>
> Use `-race` to detect.
>
> + Egon
>
> On Thursday, 10 August 2017 06:43:34 UTC+3, [email protected] wrote:
>>
>> 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 [email protected].
For more options, visit https://groups.google.com/d/optout.