MCPcopy Create free account
hub / github.com/cairoeth/preconfirmations / BenchmarkQueue

Function BenchmarkQueue

preconf-share/simqueue/queue_test.go:533–569  ·  view source on GitHub ↗
(b *testing.B)

Source from the content-addressed store, hash-verified

531}
532
533func BenchmarkQueue(b *testing.B) {
534 ctx := context.Background()
535 log := zap.NewNop()
536 red := redis.NewClient(&redis.Options{
537 Addr: "localhost:6379",
538 })
539
540 processOk := func(ctx context.Context, data []byte, info QueueItemInfo) error {
541 return nil
542 }
543 queue := NewRedisQueue(log, red, "queue_test")
544 queue.Config.MaxQueuedProcessableItemsLowPrio = 1000000
545 queue.Config.MaxQueuedProcessableItemsHighPrio = 1000000
546 queue.Config.MaxQueuedUnprocessableItemsLowPrio = 1000000
547 queue.Config.MaxQueuedUnprocessableItemsHighPrio = 1000000
548 err := queue.CleanQueues(ctx)
549 require.NoError(b, err)
550
551 procCtx, procCancel := context.WithCancel(ctx)
552 wg := queue.StartProcessLoop(procCtx, []ProcessFunc{processOk})
553 require.NoError(b, err)
554
555 // 10kb of data
556 data := make([]byte, 1024*10)
557 b.SetBytes(int64(len(data)))
558
559 b.ResetTimer()
560 for i := 0; i < b.N; i++ {
561 err = queue.Push(ctx, []byte("test"), false, 1, 1)
562 require.NoError(b, err)
563 }
564 b.StopTimer()
565 procCancel()
566 wg.Wait()
567 err = queue.CleanQueues(ctx)
568 require.NoError(b, err)
569}

Callers

nothing calls this directly

Calls 4

CleanQueuesMethod · 0.95
StartProcessLoopMethod · 0.95
PushMethod · 0.95
NewRedisQueueFunction · 0.85

Tested by

no test coverage detected