github.com/geniusesgroup/libgo@v0.0.0-20220713101832-828057a9d3d4/pool/bench_realloc-vs-empty_test.go (about) 1 /* For license and copyright information please see LEGAL file in repository */ 2 3 package pool 4 5 import ( 6 "testing" 7 ) 8 9 /* 10 goos: windows 11 goarch: amd64 12 cpu: Intel(R) Core(TM) i7-2670QM CPU @ 2.20GHz 13 14 poolLen:10000 15 BenchmarkRealloc-8 55225 23272 ns/op 81922 B/op 1 allocs/op 16 BenchmarkEmpty-8 31210 51066 ns/op 10 B/op 0 allocs/op 17 18 poolLen:100000 19 BenchmarkRealloc-8 5335 212914 ns/op 802969 B/op 1 allocs/op 20 BenchmarkEmpty-8 2919 412944 ns/op 1100 B/op 0 allocs/op 21 22 poolLen:300000 23 BenchmarkRealloc-8 2193 590969 ns/op 2401359 B/op 1 allocs/op 24 BenchmarkEmpty-8 508 2448291 ns/op 18899 B/op 0 allocs/op 25 */ 26 27 const poolLen = 300000 28 29 func BenchmarkRealloc(b *testing.B) { 30 var pool1 = make([]interface{}, poolLen/2) 31 for n := 0; n < b.N; n++ { 32 var pool2 = pool1 33 pool1 = make([]interface{}, poolLen/2) 34 _ = pool1[0] 35 _ = pool2[0] 36 } 37 } 38 39 func BenchmarkEmpty(b *testing.B) { 40 var pool1 = make([]interface{}, poolLen) 41 var pool2 = make([]interface{}, poolLen) 42 for n := 0; n < b.N; n++ { 43 copy(pool2, pool1) 44 for i := 0; i < poolLen/2; i++ { 45 pool2[i] = nil 46 } 47 _ = pool1[0] 48 _ = pool2[0] 49 for i := 0; i < poolLen/2; i++ { 50 pool1[i] = nil 51 } 52 } 53 }