Hi Folks,

I'm getting weird results from Benchmark.  Maybe someone can help me 
understand this.  I'm running on amd-64 (Threadripper 16 core 32 thread) 
Windows 10.  Go 1.14.3

I have the benchmark below (main_test.go) on a minimum "hello world" 
main.go (just like playground).

When I run the benchmark as it is below, I get the results included just 
below here.  Notice it reports 0.135 ns/op but the time is actually 135 *ms* so 
it is off by a factor of 1 billion.  It is like it trying to report in 
seconds but did not change the label from ns to s.

Further, if I increase the loop 10x from 10_000_000 to 100_000_000, then it 
prints Duration 1.349 seconds (good) and now the Benchmark time has 
increased by a factor of 10 *billion *and is now correctly reported as 
1349224200 ns/op

What am I missing here?

BenchmarkMarshalSample-32       1000000000           0.135 ns/op           0 
B/op          0 allocs/op
--- BENCH: BenchmarkMarshalSample-32
    main_test.go:14: Duration 136.1221ms
    main_test.go:14: Duration 135.1214ms
    main_test.go:14: Duration 134.1763ms
    main_test.go:14: Duration 135.1217ms
    main_test.go:14: Duration 135.1298ms
    main_test.go:14: Duration 135.1217ms
    main_test.go:14: Duration 135.1218ms
    main_test.go:14: Duration 135.1213ms
    main_test.go:14: Duration 135.1298ms
    main_test.go:14: Duration 135.1216ms
    ... [output truncated]
PASS



package main

import (
    "math/rand"
    "testing"
    "time"
)

func BenchmarkMarshalSample(b *testing.B) {
    start := time.Now()
    for i := 0; i < 10_000_000; i++ {
        rand.Int63()
    }
    b.Log("Duration", time.Now().Sub(start))
}

-- 
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.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/33c4ab46-18ae-46c2-99e9-e467d6f3e184%40googlegroups.com.

Reply via email to