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, d...@dgraph.io 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 golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to