In fact, CSE works here. package main
import ( "testing" ) var v1a int func Benchmark_CSE_Case_1a(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { var x, y, z = 123, 456, 789 v1a = (y+z) / x + (y+z) / x + (y+z) / x } } func Benchmark_CSE_Case_1b(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { var x, y, z = 123, 456, 789 t := (y+z) / x v1a = t + t + t } } On Saturday, March 10, 2018 at 1:31:58 PM UTC-5, di...@veryhaha.com wrote: > > sorry, my mistake. > I run another benchmark. > This benchmark fails to compile. > > On Saturday, March 10, 2018 at 1:27:17 PM UTC-5, di...@veryhaha.com wrote: >> >> It looks CSE doesn't work for the following case. >> >> package main >> >> import ( >> "testing" >> ) >> >> var v1a int >> func Benchmark_CSE_Case_1a(b *testing.B) { >> s := make([]Element, N) >> b.ResetTimer() >> for i := 0; i < b.N; i++ { >> var x, y, z = 123, 456, 789 >> v1a = (y+z) / x + (y+z) / x + (y+z) / x >> } >> } >> >> func Benchmark_CSE_Case_1b(b *testing.B) { >> s := make([]Element, N) >> b.ResetTimer() >> for i := 0; i < b.N; i++ { >> var x, y, z = 123, 456, 789 >> t := y+z) / x >> v1a = t + t + t >> } >> } >> >> The result: >> >> $ go test -bench=. >> goos: linux >> goarch: amd64 >> Benchmark_SumArrayElements_GlobalVar-4 5000 201535 ns/op >> Benchmark_SumArrayElements_LocalVar-4 30000 39922 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+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.