1package match 2 3import ( 4 "sync" 5 "testing" 6) 7 8func benchPool(i int, b *testing.B) { 9 pool := sync.Pool{New: func() interface{} { 10 return make([]int, 0, i) 11 }} 12 13 b.RunParallel(func(pb *testing.PB) { 14 for pb.Next() { 15 s := pool.Get().([]int)[:0] 16 pool.Put(s) 17 } 18 }) 19} 20 21func benchMake(i int, b *testing.B) { 22 b.RunParallel(func(pb *testing.PB) { 23 for pb.Next() { 24 _ = make([]int, 0, i) 25 } 26 }) 27} 28 29func BenchmarkSegmentsPool_1(b *testing.B) { 30 benchPool(1, b) 31} 32func BenchmarkSegmentsPool_2(b *testing.B) { 33 benchPool(2, b) 34} 35func BenchmarkSegmentsPool_4(b *testing.B) { 36 benchPool(4, b) 37} 38func BenchmarkSegmentsPool_8(b *testing.B) { 39 benchPool(8, b) 40} 41func BenchmarkSegmentsPool_16(b *testing.B) { 42 benchPool(16, b) 43} 44func BenchmarkSegmentsPool_32(b *testing.B) { 45 benchPool(32, b) 46} 47func BenchmarkSegmentsPool_64(b *testing.B) { 48 benchPool(64, b) 49} 50func BenchmarkSegmentsPool_128(b *testing.B) { 51 benchPool(128, b) 52} 53func BenchmarkSegmentsPool_256(b *testing.B) { 54 benchPool(256, b) 55} 56 57func BenchmarkSegmentsMake_1(b *testing.B) { 58 benchMake(1, b) 59} 60func BenchmarkSegmentsMake_2(b *testing.B) { 61 benchMake(2, b) 62} 63func BenchmarkSegmentsMake_4(b *testing.B) { 64 benchMake(4, b) 65} 66func BenchmarkSegmentsMake_8(b *testing.B) { 67 benchMake(8, b) 68} 69func BenchmarkSegmentsMake_16(b *testing.B) { 70 benchMake(16, b) 71} 72func BenchmarkSegmentsMake_32(b *testing.B) { 73 benchMake(32, b) 74} 75func BenchmarkSegmentsMake_64(b *testing.B) { 76 benchMake(64, b) 77} 78func BenchmarkSegmentsMake_128(b *testing.B) { 79 benchMake(128, b) 80} 81func BenchmarkSegmentsMake_256(b *testing.B) { 82 benchMake(256, b) 83} 84