On Sunday, April 23, 2017 at 12:20:52 AM UTC+8, Jan Mercl wrote:
>
> You need to define what do _you_ consider 'reliable' to get a useful 
> answer.
>

calculate the sum of a number array elements.
 

>
> On Sat, Apr 22, 2017, 17:26 T L <tapi...@gmail.com <javascript:>> wrote:
>
>> I write a benchmark, but the results of the following 3 cases are much 
>> different.
>> Which one is reliable?
>>
>> package main
>>
>> import (
>>     "testing"
>>     "runtime"
>> )
>>
>> const N = 200 * 1000
>> type Element int64
>> var sum int
>>
>> func Benchmark_MaybeOptimizedOut(b *testing.B) {
>>     var a [N]Element
>>     b.ResetTimer()
>>     var g int
>>     for i := 0; i < b.N; i++ {
>>         for j := 0; j < len(a); j++ {
>>             g += int(a[j])
>>         }
>>     }
>> }
>>
>> func Benchmark_AssignToGlobal(b *testing.B) {
>>     var a [N]Element
>>     b.ResetTimer()
>>     var g int
>>     for i := 0; i < b.N; i++ {
>>         for j := 0; j < len(a); j++ {
>>             g += int(a[j])
>>         }
>>     }
>>     sum = g
>> }
>>
>> func Benchmark_KeepAlive(b *testing.B) {
>>     var a [N]Element
>>     b.ResetTimer()
>>     var g int
>>     for i := 0; i < b.N; i++ {
>>         for j := 0; j < len(a); j++ {
>>             g += int(a[j])
>>         }
>>     }
>>     runtime.KeepAlive(&g)
>> }
>>
>> /* output:
>> $ go test -bench=. -benchtime=3s
>> Benchmark_MaybeOptimizedOut-4          50000         87318 ns/op
>> Benchmark_AssignToGlobal-4             20000        205934 ns/op
>> Benchmark_KeepAlive-4                  10000        620351 ns/op
>> */
>>
>> -- 
>> 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...@googlegroups.com <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
> -- 
>
> -j
>

-- 
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