func NewHistogram(name string, cutoffs []int64) *Histogram {
	labels := make([]string, len(cutoffs)+1)
	for i, v := range cutoffs {
		labels[i] = fmt.Sprintf("%d", v)
	}
	labels[len(labels)-1] = "inf"
	return NewGenericHistogram(name, cutoffs, labels, "Count", "Total")
}
NewHistogram creates a histogram with auto-generated labels
based on the cutoffs. The buckets are categorized using the
following criterion: cutoff[i-1] < value <= cutoff[i]. Anything
higher than the highest cutoff is labeled as "inf".
package stats
import (
	"bytes"
	"fmt"
	"xbase/sync2"
)
type Histogram struct {
	cutoffs    []int64
	labels     []string
	countLabel string
	totalLabel string
	hook       func(int64)
	buckets []sync2.AtomicInt64
	total   sync2.AtomicInt64
}