~juju-qa/ubuntu/xenial/juju/xenial-2.0-beta3

« back to all changes in this revision

Viewing changes to src/gopkg.in/inconshreveable/log15.v2/bench_test.go

  • Committer: Martin Packman
  • Date: 2016-03-30 19:31:08 UTC
  • mfrom: (1.1.41)
  • Revision ID: martin.packman@canonical.com-20160330193108-h9iz3ak334uk0z5r
Merge new upstream source 2.0~beta3

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
package log15
2
 
 
3
 
import (
4
 
        "bytes"
5
 
        "testing"
6
 
        "time"
7
 
)
8
 
 
9
 
func BenchmarkStreamNoCtx(b *testing.B) {
10
 
        lg := New()
11
 
 
12
 
        buf := bytes.Buffer{}
13
 
        lg.SetHandler(StreamHandler(&buf, LogfmtFormat()))
14
 
 
15
 
        for i := 0; i < b.N; i++ {
16
 
                lg.Info("test message")
17
 
                buf.Reset()
18
 
        }
19
 
}
20
 
 
21
 
func BenchmarkDiscard(b *testing.B) {
22
 
        lg := New()
23
 
        lg.SetHandler(DiscardHandler())
24
 
 
25
 
        for i := 0; i < b.N; i++ {
26
 
                lg.Info("test message")
27
 
        }
28
 
}
29
 
 
30
 
func BenchmarkCallerFileHandler(b *testing.B) {
31
 
        lg := New()
32
 
        lg.SetHandler(CallerFileHandler(DiscardHandler()))
33
 
 
34
 
        for i := 0; i < b.N; i++ {
35
 
                lg.Info("test message")
36
 
        }
37
 
}
38
 
 
39
 
func BenchmarkCallerFuncHandler(b *testing.B) {
40
 
        lg := New()
41
 
        lg.SetHandler(CallerFuncHandler(DiscardHandler()))
42
 
 
43
 
        for i := 0; i < b.N; i++ {
44
 
                lg.Info("test message")
45
 
        }
46
 
}
47
 
 
48
 
func BenchmarkLogfmtNoCtx(b *testing.B) {
49
 
        r := Record{
50
 
                Time: time.Now(),
51
 
                Lvl:  LvlInfo,
52
 
                Msg:  "test message",
53
 
                Ctx:  []interface{}{},
54
 
        }
55
 
 
56
 
        logfmt := LogfmtFormat()
57
 
        for i := 0; i < b.N; i++ {
58
 
                logfmt.Format(&r)
59
 
        }
60
 
}
61
 
 
62
 
func BenchmarkJsonNoCtx(b *testing.B) {
63
 
        r := Record{
64
 
                Time: time.Now(),
65
 
                Lvl:  LvlInfo,
66
 
                Msg:  "test message",
67
 
                Ctx:  []interface{}{},
68
 
        }
69
 
 
70
 
        jsonfmt := JsonFormat()
71
 
        for i := 0; i < b.N; i++ {
72
 
                jsonfmt.Format(&r)
73
 
        }
74
 
}
75
 
 
76
 
func BenchmarkMultiLevelFilter(b *testing.B) {
77
 
        handler := MultiHandler(
78
 
                LvlFilterHandler(LvlDebug, DiscardHandler()),
79
 
                LvlFilterHandler(LvlError, DiscardHandler()),
80
 
        )
81
 
 
82
 
        lg := New()
83
 
        lg.SetHandler(handler)
84
 
        for i := 0; i < b.N; i++ {
85
 
                lg.Info("test message")
86
 
        }
87
 
}
88
 
 
89
 
func BenchmarkDescendant1(b *testing.B) {
90
 
        lg := New()
91
 
        lg.SetHandler(DiscardHandler())
92
 
        lg = lg.New()
93
 
        for i := 0; i < b.N; i++ {
94
 
                lg.Info("test message")
95
 
        }
96
 
}
97
 
 
98
 
func BenchmarkDescendant2(b *testing.B) {
99
 
        lg := New()
100
 
        lg.SetHandler(DiscardHandler())
101
 
        for i := 0; i < 2; i++ {
102
 
                lg = lg.New()
103
 
        }
104
 
        for i := 0; i < b.N; i++ {
105
 
                lg.Info("test message")
106
 
        }
107
 
}
108
 
 
109
 
func BenchmarkDescendant4(b *testing.B) {
110
 
        lg := New()
111
 
        lg.SetHandler(DiscardHandler())
112
 
        for i := 0; i < 4; i++ {
113
 
                lg = lg.New()
114
 
        }
115
 
        for i := 0; i < b.N; i++ {
116
 
                lg.Info("test message")
117
 
        }
118
 
}
119
 
 
120
 
func BenchmarkDescendant8(b *testing.B) {
121
 
        lg := New()
122
 
        lg.SetHandler(DiscardHandler())
123
 
        for i := 0; i < 8; i++ {
124
 
                lg = lg.New()
125
 
        }
126
 
        for i := 0; i < b.N; i++ {
127
 
                lg.Info("test message")
128
 
        }
129
 
}