Files

44 lines
780 B
Go

package main
import "testing"
// go test -bench=. -benchmem
const bufferSize = 10
type ReaderWithSliceArgument struct{}
func (r ReaderWithSliceArgument) Read(p []byte) (int, error) {
for i := 0; i < bufferSize; i++ {
p[i] = byte(i)
}
return bufferSize, nil
}
type ReaderWithSliceReturn struct{}
func (r ReaderWithSliceReturn) Read(n int) ([]byte, error) {
p := make([]byte, n)
for i := 0; i < n; i++ {
p[i] = byte(i)
}
return p, nil
}
func BenchmarkSliceWithArgument(b *testing.B) {
for i := 0; i < b.N; i++ {
p := make([]byte, bufferSize)
reader := ReaderWithSliceArgument{}
_, _ = reader.Read(p)
}
}
func BenchmarkSliceWithReturn(b *testing.B) {
for i := 0; i < b.N; i++ {
reader := ReaderWithSliceReturn{}
_, _ = reader.Read(bufferSize)
}
}