You are supposed to run the loop b.N times, not some fixed constant. Also make sure the compiler doesn't optimize away the whole function.
V. On Tuesday, 19 May 2020 18:20:43 UTC+2, Warren Bare wrote: > > 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/5a4f710b-4d47-4f2f-9886-ed9cfc897de1%40googlegroups.com.