| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- package metrics
- import (
- "io/ioutil"
- "testing"
- )
- var _ = ioutil.Discard // Stop the compiler from complaining during debugging.
- func BenchmarkMetrics(b *testing.B) {
- c := NewCounter()
- g := NewGauge()
- h := NewHistogram(NewUniformSample(100))
- m := NewMeter()
- t := NewTimer()
- r := NewRegistry()
- r.Register("counter", c)
- r.Register("gauge", g)
- r.Register("histogram", h)
- r.Register("meter", m)
- r.Register("timer", t)
- RegisterRuntimeMemStats(r)
- ch := make(chan bool)
- /*
- go func() {
- for {
- select {
- case <-ch:
- return
- default:
- CaptureRuntimeMemStatsOnce(r)
- }
- }
- }()
- //*/
- //*
- go func() {
- for {
- select {
- case <-ch:
- return
- default:
- WriteOnce(r, ioutil.Discard)
- }
- }
- }()
- //*/
- b.ResetTimer()
- for i := 0; i < b.N; i++ {
- c.Inc(1)
- g.Update(int64(i))
- h.Update(int64(i))
- m.Mark(1)
- t.Update(1)
- }
- b.StopTimer()
- close(ch)
- }
|