github.com/jmigpin/editor@v1.6.0/util/syncutil/syncedq_test.go (about) 1 package syncutil 2 3 import ( 4 "testing" 5 6 "github.com/jmigpin/editor/util/chanutil" 7 ) 8 9 func BenchmarkSyncedQ(b *testing.B) { 10 for i := 0; i < b.N; i++ { 11 bSyncedQ() 12 } 13 } 14 func bSyncedQ() { 15 sq := NewSyncedQ() 16 for i := 0; i < 1000; i++ { 17 sq.PushBack(i) 18 } 19 for i := 0; i < 1000; i++ { 20 sq.PopFront() 21 } 22 } 23 24 //---------- 25 26 func BenchmarkChanQ(b *testing.B) { 27 for i := 0; i < b.N; i++ { 28 bChanQ() 29 } 30 } 31 func bChanQ() { 32 q := chanutil.NewChanQ(16, 16) 33 in, out := q.In(), q.Out() 34 for i := 0; i < 1000; i++ { 35 in <- i 36 } 37 for i := 0; i < 1000; i++ { 38 <-out 39 } 40 }