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  }