34 lines
530 B
Go
34 lines
530 B
Go
|
|
package main
|
||
|
|
|
||
|
|
import "testing"
|
||
|
|
|
||
|
|
// go test -bench=. -benchmem
|
||
|
|
|
||
|
|
type Data struct {
|
||
|
|
iValue int
|
||
|
|
sValue string
|
||
|
|
bValue bool
|
||
|
|
}
|
||
|
|
|
||
|
|
//go:noinline
|
||
|
|
func NewDataByValue() Data {
|
||
|
|
return Data{iValue: 100, sValue: "100", bValue: true}
|
||
|
|
}
|
||
|
|
|
||
|
|
//go:noinline
|
||
|
|
func NewDataByPointer() *Data {
|
||
|
|
return &Data{iValue: 100, sValue: "100", bValue: true}
|
||
|
|
}
|
||
|
|
|
||
|
|
func BenchmarkNewByValue(b *testing.B) {
|
||
|
|
for i := 0; i < b.N; i++ {
|
||
|
|
_ = NewDataByValue()
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
func BenchmarkNewByPointer(b *testing.B) {
|
||
|
|
for i := 0; i < b.N; i++ {
|
||
|
|
_ = NewDataByPointer()
|
||
|
|
}
|
||
|
|
}
|