Trace.Step() performs an unnecessary ref

Allocates more objects than necessary.
This commit is contained in:
Clayton Coleman 2016-05-06 00:02:25 -04:00
parent c0b788bf49
commit 0e05f704f3
No known key found for this signature in database
GPG Key ID: 3D16906B4F1C5CB3

View File

@ -32,15 +32,19 @@ type traceStep struct {
type Trace struct {
name string
startTime time.Time
steps []*traceStep
steps []traceStep
}
func NewTrace(name string) *Trace {
return &Trace{name, time.Now(), make([]*traceStep, 0)}
return &Trace{name, time.Now(), nil}
}
func (t *Trace) Step(msg string) {
t.steps = append(t.steps, &traceStep{time.Now(), msg})
if t.steps == nil {
// traces almost always have less than 6 steps, do this to avoid more than a single allocation
t.steps = make([]traceStep, 0, 6)
}
t.steps = append(t.steps, traceStep{time.Now(), msg})
}
func (t *Trace) Log() {