blob: f0a7473b6d6003a9416fe219d17b097448ac605a [file] [edit]
// Code generated by mkmalloc.go; DO NOT EDIT.
// See overview in malloc_stubs.go.
package runtime_test
import (
"internal/abi"
"runtime"
"testing"
)
func benchmarkMallocgcNoscan8(b *testing.B) {
const size = 8
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan8(b *testing.B) {
const size = 8
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice8(b *testing.B) {
const size = 8
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan16(b *testing.B) {
const size = 16
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan16(b *testing.B) {
const size = 16
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice16(b *testing.B) {
const size = 16
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan24(b *testing.B) {
const size = 24
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan24(b *testing.B) {
const size = 24
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice24(b *testing.B) {
const size = 24
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan32(b *testing.B) {
const size = 32
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan32(b *testing.B) {
const size = 32
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice32(b *testing.B) {
const size = 32
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan48(b *testing.B) {
const size = 48
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan48(b *testing.B) {
const size = 48
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice48(b *testing.B) {
const size = 48
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan64(b *testing.B) {
const size = 64
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan64(b *testing.B) {
const size = 64
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice64(b *testing.B) {
const size = 64
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan80(b *testing.B) {
const size = 80
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan80(b *testing.B) {
const size = 80
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice80(b *testing.B) {
const size = 80
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan96(b *testing.B) {
const size = 96
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan96(b *testing.B) {
const size = 96
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice96(b *testing.B) {
const size = 96
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan112(b *testing.B) {
const size = 112
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan112(b *testing.B) {
const size = 112
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice112(b *testing.B) {
const size = 112
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan128(b *testing.B) {
const size = 128
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan128(b *testing.B) {
const size = 128
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice128(b *testing.B) {
const size = 128
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan144(b *testing.B) {
const size = 144
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan144(b *testing.B) {
const size = 144
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice144(b *testing.B) {
const size = 144
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan160(b *testing.B) {
const size = 160
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan160(b *testing.B) {
const size = 160
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice160(b *testing.B) {
const size = 160
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan176(b *testing.B) {
const size = 176
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan176(b *testing.B) {
const size = 176
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice176(b *testing.B) {
const size = 176
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan192(b *testing.B) {
const size = 192
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan192(b *testing.B) {
const size = 192
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice192(b *testing.B) {
const size = 192
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan208(b *testing.B) {
const size = 208
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan208(b *testing.B) {
const size = 208
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice208(b *testing.B) {
const size = 208
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan224(b *testing.B) {
const size = 224
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan224(b *testing.B) {
const size = 224
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice224(b *testing.B) {
const size = 224
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan240(b *testing.B) {
const size = 240
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan240(b *testing.B) {
const size = 240
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice240(b *testing.B) {
const size = 240
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan256(b *testing.B) {
const size = 256
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan256(b *testing.B) {
const size = 256
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice256(b *testing.B) {
const size = 256
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan288(b *testing.B) {
const size = 288
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan288(b *testing.B) {
const size = 288
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice288(b *testing.B) {
const size = 288
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan320(b *testing.B) {
const size = 320
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan320(b *testing.B) {
const size = 320
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice320(b *testing.B) {
const size = 320
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan352(b *testing.B) {
const size = 352
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan352(b *testing.B) {
const size = 352
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice352(b *testing.B) {
const size = 352
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan384(b *testing.B) {
const size = 384
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan384(b *testing.B) {
const size = 384
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice384(b *testing.B) {
const size = 384
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan416(b *testing.B) {
const size = 416
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan416(b *testing.B) {
const size = 416
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice416(b *testing.B) {
const size = 416
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan448(b *testing.B) {
const size = 448
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan448(b *testing.B) {
const size = 448
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice448(b *testing.B) {
const size = 448
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan480(b *testing.B) {
const size = 480
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan480(b *testing.B) {
const size = 480
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice480(b *testing.B) {
const size = 480
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcNoscan512(b *testing.B) {
const size = 512
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScan512(b *testing.B) {
const size = 512
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(struct{ v [size / 8]*uint64 }))
}
})
var typ *abi.Type
typ = abi.TypeOf(struct{ v [size / 8]*uint64 }{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, true))
}
})
}
func benchmarkMallocgcScanSlice512(b *testing.B) {
const size = 512
for b.Loop() {
runtime.Escape(make([]*uint64, size/8))
}
}
func benchmarkMallocgcTiny1(b *testing.B) {
const size = 1
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny2(b *testing.B) {
const size = 2
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny3(b *testing.B) {
const size = 3
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny4(b *testing.B) {
const size = 4
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny5(b *testing.B) {
const size = 5
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny6(b *testing.B) {
const size = 6
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny7(b *testing.B) {
const size = 7
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny8(b *testing.B) {
const size = 8
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny9(b *testing.B) {
const size = 9
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny10(b *testing.B) {
const size = 10
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny11(b *testing.B) {
const size = 11
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny12(b *testing.B) {
const size = 12
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny13(b *testing.B) {
const size = 13
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny14(b *testing.B) {
const size = 14
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func benchmarkMallocgcTiny15(b *testing.B) {
const size = 15
type s struct {
v [size]byte
}
b.Run("kind=new", func(b *testing.B) {
for b.Loop() {
runtime.Escape(new(s))
}
})
typ := abi.TypeOf(s{})
b.Run("kind=mallocgc", func(b *testing.B) {
for b.Loop() {
runtime.Escape(runtime.MallocGC(size, typ, false))
}
})
}
func BenchmarkMallocgc(b *testing.B) {
b.Run("scan=noscan", func(b *testing.B) {
b.Run("size=1", benchmarkMallocgcTiny1)
b.Run("size=2", benchmarkMallocgcTiny2)
b.Run("size=3", benchmarkMallocgcTiny3)
b.Run("size=4", benchmarkMallocgcTiny4)
b.Run("size=5", benchmarkMallocgcTiny5)
b.Run("size=6", benchmarkMallocgcTiny6)
b.Run("size=7", benchmarkMallocgcTiny7)
b.Run("size=8", benchmarkMallocgcTiny8)
b.Run("size=9", benchmarkMallocgcTiny9)
b.Run("size=10", benchmarkMallocgcTiny10)
b.Run("size=11", benchmarkMallocgcTiny11)
b.Run("size=12", benchmarkMallocgcTiny12)
b.Run("size=13", benchmarkMallocgcTiny13)
b.Run("size=14", benchmarkMallocgcTiny14)
b.Run("size=15", benchmarkMallocgcTiny15)
b.Run("size=16", benchmarkMallocgcNoscan16)
b.Run("size=24", benchmarkMallocgcNoscan24)
b.Run("size=32", benchmarkMallocgcNoscan32)
b.Run("size=48", benchmarkMallocgcNoscan48)
b.Run("size=64", benchmarkMallocgcNoscan64)
b.Run("size=80", benchmarkMallocgcNoscan80)
b.Run("size=96", benchmarkMallocgcNoscan96)
b.Run("size=112", benchmarkMallocgcNoscan112)
b.Run("size=128", benchmarkMallocgcNoscan128)
b.Run("size=144", benchmarkMallocgcNoscan144)
b.Run("size=160", benchmarkMallocgcNoscan160)
b.Run("size=176", benchmarkMallocgcNoscan176)
b.Run("size=192", benchmarkMallocgcNoscan192)
b.Run("size=208", benchmarkMallocgcNoscan208)
b.Run("size=224", benchmarkMallocgcNoscan224)
b.Run("size=240", benchmarkMallocgcNoscan240)
b.Run("size=256", benchmarkMallocgcNoscan256)
b.Run("size=288", benchmarkMallocgcNoscan288)
b.Run("size=320", benchmarkMallocgcNoscan320)
b.Run("size=352", benchmarkMallocgcNoscan352)
b.Run("size=384", benchmarkMallocgcNoscan384)
b.Run("size=416", benchmarkMallocgcNoscan416)
b.Run("size=448", benchmarkMallocgcNoscan448)
b.Run("size=480", benchmarkMallocgcNoscan480)
b.Run("size=512", benchmarkMallocgcNoscan512)
})
b.Run("scan=scan", func(b *testing.B) {
b.Run("size=8", benchmarkMallocgcScan8)
b.Run("size=16", benchmarkMallocgcScan16)
b.Run("size=24", benchmarkMallocgcScan24)
b.Run("size=32", benchmarkMallocgcScan32)
b.Run("size=48", benchmarkMallocgcScan48)
b.Run("size=64", benchmarkMallocgcScan64)
b.Run("size=80", benchmarkMallocgcScan80)
b.Run("size=96", benchmarkMallocgcScan96)
b.Run("size=112", benchmarkMallocgcScan112)
b.Run("size=128", benchmarkMallocgcScan128)
b.Run("size=144", benchmarkMallocgcScan144)
b.Run("size=160", benchmarkMallocgcScan160)
b.Run("size=176", benchmarkMallocgcScan176)
b.Run("size=192", benchmarkMallocgcScan192)
b.Run("size=208", benchmarkMallocgcScan208)
b.Run("size=224", benchmarkMallocgcScan224)
b.Run("size=240", benchmarkMallocgcScan240)
b.Run("size=256", benchmarkMallocgcScan256)
b.Run("size=288", benchmarkMallocgcScan288)
b.Run("size=320", benchmarkMallocgcScan320)
b.Run("size=352", benchmarkMallocgcScan352)
b.Run("size=384", benchmarkMallocgcScan384)
b.Run("size=416", benchmarkMallocgcScan416)
b.Run("size=448", benchmarkMallocgcScan448)
b.Run("size=480", benchmarkMallocgcScan480)
b.Run("size=512", benchmarkMallocgcScan512)
})
b.Run("scan=scanslice", func(b *testing.B) {
b.Run("size=8", benchmarkMallocgcScanSlice8)
b.Run("size=16", benchmarkMallocgcScanSlice16)
b.Run("size=24", benchmarkMallocgcScanSlice24)
b.Run("size=32", benchmarkMallocgcScanSlice32)
b.Run("size=48", benchmarkMallocgcScanSlice48)
b.Run("size=64", benchmarkMallocgcScanSlice64)
b.Run("size=80", benchmarkMallocgcScanSlice80)
b.Run("size=96", benchmarkMallocgcScanSlice96)
b.Run("size=112", benchmarkMallocgcScanSlice112)
b.Run("size=128", benchmarkMallocgcScanSlice128)
b.Run("size=144", benchmarkMallocgcScanSlice144)
b.Run("size=160", benchmarkMallocgcScanSlice160)
b.Run("size=176", benchmarkMallocgcScanSlice176)
b.Run("size=192", benchmarkMallocgcScanSlice192)
b.Run("size=208", benchmarkMallocgcScanSlice208)
b.Run("size=224", benchmarkMallocgcScanSlice224)
b.Run("size=240", benchmarkMallocgcScanSlice240)
b.Run("size=256", benchmarkMallocgcScanSlice256)
b.Run("size=288", benchmarkMallocgcScanSlice288)
b.Run("size=320", benchmarkMallocgcScanSlice320)
b.Run("size=352", benchmarkMallocgcScanSlice352)
b.Run("size=384", benchmarkMallocgcScanSlice384)
b.Run("size=416", benchmarkMallocgcScanSlice416)
b.Run("size=448", benchmarkMallocgcScanSlice448)
b.Run("size=480", benchmarkMallocgcScanSlice480)
b.Run("size=512", benchmarkMallocgcScanSlice512)
})
}