github.com/illua1/go-helpful@v0.0.0-20220621193642-cdc195fe0958/Slise/Slise_bench_test.go (about) 1 package helpful_slise 2 3 import ( 4 "runtime" 5 "testing" 6 ) 7 8 const ( 9 count = 100 10 lengths = 10000 11 ) 12 13 func BenchmarkJoin(b *testing.B) { 14 b.StopTimer() 15 list := make([][]int, count) 16 Fill(list, func(index int) []int { return make([]int, lengths) }) 17 b.StartTimer() 18 19 Join(list...) 20 21 list = nil 22 runtime.GC() 23 } 24 25 func BenchmarkJoinSimpleAppend(b *testing.B) { 26 b.StopTimer() 27 list := make([][]int, count) 28 Fill(list, func(index int) []int { return make([]int, lengths) }) 29 b.StartTimer() 30 31 var unioned []int 32 for i := range list { 33 unioned = append(unioned, list[i]...) 34 } 35 36 unioned = nil 37 runtime.GC() 38 } 39 40 func BenchmarkCopyToFast(b *testing.B) { 41 b.StopTimer() 42 list := make([]int, 1000000) 43 b.StartTimer() 44 CopyTo(list, 54) 45 } 46 47 func BenchmarkCopyToSimple(b *testing.B) { 48 b.StopTimer() 49 list := make([]int, 1000000) 50 b.StartTimer() 51 for i := 0; i < len(list); i++ { 52 list[i] = 54 53 } 54 }