From fe9ac9f9c07b065855d3aeadcaa1ed1a3138c4fa Mon Sep 17 00:00:00 2001 From: Andy Lindeman Date: Thu, 27 Apr 2017 23:26:05 -0400 Subject: [PATCH] Adds benchmark test Kubernetes-commit: 21ca6c498aec2879fd7b9796f55743e5f14d5a80 --- util/workqueue/delaying_queue_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/util/workqueue/delaying_queue_test.go b/util/workqueue/delaying_queue_test.go index 78c92ad4..4c61939f 100644 --- a/util/workqueue/delaying_queue_test.go +++ b/util/workqueue/delaying_queue_test.go @@ -18,6 +18,7 @@ package workqueue import ( "fmt" + "math/rand" "reflect" "testing" "time" @@ -214,6 +215,25 @@ func TestCopyShifting(t *testing.T) { } } +func BenchmarkDelayingQueue_AddAfter(b *testing.B) { + r := rand.New(rand.NewSource(time.Now().Unix())) + + fakeClock := clock.NewFakeClock(time.Now()) + q := newDelayingQueue(fakeClock, "") + + // Add items + for n := 0; n < b.N; n++ { + data := fmt.Sprintf("%d", n) + q.AddAfter(data, time.Duration(r.Int63n(int64(10*time.Minute)))) + } + + // Exercise item removal as well + fakeClock.Step(11 * time.Minute) + for n := 0; n < b.N; n++ { + _, _ = q.Get() + } +} + func waitForAdded(q DelayingInterface, depth int) error { return wait.Poll(1*time.Millisecond, 10*time.Second, func() (done bool, err error) { if q.Len() == depth {