From 276e166c1880e0c60a6ac828903a9132266579af Mon Sep 17 00:00:00 2001 From: Phil Date: Wed, 15 Feb 2017 11:21:06 +0800 Subject: [PATCH] update benchmark --- adapter/fake/adapter.go | 2 +- adapter/fakeSync/adapter.go | 2 +- gol_test.go | 27 ++++----------------------- gollog.go | 6 +++--- 4 files changed, 9 insertions(+), 28 deletions(-) diff --git a/adapter/fake/adapter.go b/adapter/fake/adapter.go index 9998db5..911c7c7 100644 --- a/adapter/fake/adapter.go +++ b/adapter/fake/adapter.go @@ -22,7 +22,7 @@ func (w *Writer) Write(b []byte) (int, error) { if w.withErr != nil { return 0, w.withErr } - time.Sleep(time.Nanosecond * 20) + time.Sleep(time.Nanosecond * 200) w.b = append(w.b, b...) return len(b), nil } diff --git a/adapter/fakeSync/adapter.go b/adapter/fakeSync/adapter.go index 3ae5589..5dd49e3 100644 --- a/adapter/fakeSync/adapter.go +++ b/adapter/fakeSync/adapter.go @@ -43,7 +43,7 @@ func (w *ReadWriter) Read() []byte { // NewAdapter create a fake adapter with sync read method func NewAdapter(l ...level.LogLevel) *ReadWriter { w := &ReadWriter{ - done: make(chan struct{}, 100), + done: make(chan struct{}, 1), } if len(l) > 0 { w.logLevel = l[0] diff --git a/gol_test.go b/gol_test.go index 17fb171..bd6f02e 100644 --- a/gol_test.go +++ b/gol_test.go @@ -476,7 +476,9 @@ func BenchmarkLog(b *testing.B) { b.ResetTimer() for i := 0; i < b.N; i++ { - l.Println("Hello") + for j := 0; j < 100; j++ { + l.Println("Hello") + } } } @@ -486,30 +488,9 @@ func BenchmarkGol(b *testing.B) { // g.SetOption(0) g.AddLogAdapter("fake", fake.NewAdapter(level.DEBUG)) b.ResetTimer() - for i := 0; i < b.N; i++ { - g.Debug("Hello") - } -} - -func BenchmarkMultiThreadLog(b *testing.B) { - l := log.New(fakeSync.NewAdapter(), "\033[32m[DEBUG]\033[0m ", log.LstdFlags) - b.ResetTimer() - - for i := 0; i < b.N; i++ { - for j := 0; j < 100; j++ { - go l.Println("Hello") - } - } -} - -func BenchmarkMultiThreadGol(b *testing.B) { - g := NewLogger(level.DEBUG) - g.RemoveAdapter(CONSOLELOGGER) - g.AddLogAdapter("fake", fakeSync.NewAdapter(level.DEBUG)) - b.ResetTimer() for i := 0; i < b.N; i++ { for j := 0; j < 100; j++ { - go g.Debug("Hello") + g.Debug("Hello") } } } diff --git a/gollog.go b/gollog.go index b865189..c1f4627 100644 --- a/gollog.go +++ b/gollog.go @@ -22,15 +22,15 @@ type gollog struct { } func (l *gollog) msgPump() { - - for msg := range l.logChan { + var msg *logMSG + for msg = range l.logChan { for _, v := range l.adapters { if v.Level() <= msg.logLevel { io.Copy(v, &msg.bf) } } - msgPoolPut(msg) + msg.bf.Reset() } close(l.doneChan)