github.com/angenalZZZ/gofunc@v0.0.0-20210507121333-48ff1be3917b/data/queue/benchmark_queue_test.go (about) 1 package queue_test 2 3 import ( 4 "github.com/angenalZZZ/gofunc/data/random" 5 "io/ioutil" 6 "os" 7 "testing" 8 9 "github.com/angenalZZZ/gofunc/data/queue" 10 ) 11 12 // go test -v -cpu=4 -benchtime=15s -benchmem -bench=^BenchmarkQueueEnqueue$ -run ^none$ github.com/angenalZZZ/gofunc/data/queue 13 func BenchmarkQueueEnqueue(b *testing.B) { 14 b.StopTimer() 15 // Open/create a queue. 16 dataDir, _ := ioutil.TempDir("", "") 17 q, err := queue.OpenQueue(dataDir) 18 if err != nil { 19 b.Error(err) 20 return 21 } 22 defer func() { 23 _ = q.Drop() 24 _ = q.Close() 25 _ = os.RemoveAll(dataDir) 26 }() 27 //l := 1024 // every time 1kB data request: cpu=4 70k/qps 8ms/op 28 l := 128 // every time 128B data request: cpu=4 75k/qps 8ms/op 29 p := []byte(random.AlphaNumberLower(l)) 30 b.StartTimer() 31 for i := 0; i < b.N; i++ { 32 // Enqueue an item. 33 _, err := q.Enqueue(p) 34 if err != nil { 35 b.Error(err) 36 return 37 } 38 } 39 }