github.com/rikaaa0928/awsl@v1.0.2/tools/mem_test.go (about) 1 package tools 2 3 import ( 4 "sync" 5 "testing" 6 ) 7 8 func BenchmarkMem(b *testing.B) { 9 a := []byte{'a', 'b'} 10 m := sync.WaitGroup{} 11 for i := 0; i < 1000*1000; i++ { 12 m.Add(1) 13 go func() { 14 c := make([]byte, 65536) 15 copy(c, a) 16 m.Done() 17 }() 18 } 19 m.Wait() 20 } 21 22 func BenchmarkMemPool(b *testing.B) { 23 a := []byte{'a', 'b'} 24 p := NewMPool() 25 m := sync.WaitGroup{} 26 for i := 0; i < 1000*1000; i++ { 27 m.Add(1) 28 go func() { 29 c := p.Get(655336) 30 copy(c, a) 31 p.Put(c) 32 m.Done() 33 }() 34 } 35 m.Wait() 36 }