From a8d95b7c573dedad26395372dd0d4ff8882f6cb6 Mon Sep 17 00:00:00 2001 From: LK4D4 Date: Wed, 2 Jul 2014 19:15:56 +0400 Subject: [PATCH] Benchmark for BroadcastWriter Docker-DCO-1.1-Signed-off-by: Alexandr Morozov (github: LK4D4) --- utils/broadcastwriter/broadcastwriter_test.go | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/utils/broadcastwriter/broadcastwriter_test.go b/utils/broadcastwriter/broadcastwriter_test.go index 8d946e2f45..d5c9152467 100644 --- a/utils/broadcastwriter/broadcastwriter_test.go +++ b/utils/broadcastwriter/broadcastwriter_test.go @@ -106,3 +106,39 @@ func TestRaceBroadcastWriter(t *testing.T) { writer.Write([]byte("hello")) <-c } + +func BenchmarkBroadcastWriter(b *testing.B) { + writer := New() + setUpWriter := func() { + for i := 0; i < 100; i++ { + writer.AddWriter(devNullCloser(0), "stdout") + writer.AddWriter(devNullCloser(0), "stderr") + writer.AddWriter(devNullCloser(0), "") + } + } + testLine := "Line that thinks that it is log line from docker" + var buf bytes.Buffer + for i := 0; i < 100; i++ { + buf.Write([]byte(testLine + "\n")) + } + // line without eol + buf.Write([]byte(testLine)) + testText := buf.Bytes() + b.SetBytes(int64(5 * len(testText))) + b.ResetTimer() + for i := 0; i < b.N; i++ { + b.StopTimer() + setUpWriter() + b.StartTimer() + + for j := 0; j < 5; j++ { + if _, err := writer.Write(testText); err != nil { + b.Fatal(err) + } + } + + b.StopTimer() + writer.Close() + b.StartTimer() + } +}