Hi,
In the below code example, setting a function variable to a simple function
makes no memory allocation and is very fast (<1ns). The case of setting
the same function variable to a method value is much slower (~30ns) and it
turns out to be because memory is allocated there. (16 B/op)
I found this surprising. Can anyone explain why memory is allocated and is
there a way to avoid this?
Thanks.
--
Martin.
package main
import "testing"
func BenchmarkStandAlone(b *testing.B) {
b.ReportAllocs()
for i := 0; i < b.N; i++ {
f1 = standalone
}
}
func BenchmarkMethod(b *testing.B) {
b.ReportAllocs()
for i := 0; i < b.N; i++ {
f1 = myObj.myMethod
}
}
var (
f1 func()
myObj = &myType{}
)
func standalone() {}
type myType struct{}
func (m *myType) myMethod() {}
--
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 [email protected].
For more options, visit https://groups.google.com/d/optout.