Merge pull request #162 from prometheus/fabxc/runtime-test
Turn allocation test into a benchmark.
This commit is contained in:
commit
bbd006bc5e
|
@ -14,6 +14,7 @@
|
||||||
package model
|
package model
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"runtime"
|
||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
@ -246,6 +247,26 @@ func BenchmarkMetricToFastFingerprintTriple(b *testing.B) {
|
||||||
benchmarkMetricToFastFingerprint(b, Metric{"first-label": "first-label-value", "second-label": "second-label-value", "third-label": "third-label-value"}, 15738406913934009676)
|
benchmarkMetricToFastFingerprint(b, Metric{"first-label": "first-label-value", "second-label": "second-label-value", "third-label": "third-label-value"}, 15738406913934009676)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkEmptyLabelSignature(b *testing.B) {
|
||||||
|
b.StopTimer()
|
||||||
|
input := []map[string]string{nil, {}}
|
||||||
|
|
||||||
|
var ms runtime.MemStats
|
||||||
|
runtime.ReadMemStats(&ms)
|
||||||
|
|
||||||
|
alloc := ms.Alloc
|
||||||
|
|
||||||
|
for _, labels := range input {
|
||||||
|
LabelsToSignature(labels)
|
||||||
|
}
|
||||||
|
|
||||||
|
runtime.ReadMemStats(&ms)
|
||||||
|
|
||||||
|
if got := ms.Alloc; alloc != got {
|
||||||
|
b.Error("expected LabelsToSignature with empty labels not to perform allocations")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func benchmarkMetricToFastFingerprintConc(b *testing.B, m Metric, e Fingerprint, concLevel int) {
|
func benchmarkMetricToFastFingerprintConc(b *testing.B, m Metric, e Fingerprint, concLevel int) {
|
||||||
var start, end sync.WaitGroup
|
var start, end sync.WaitGroup
|
||||||
start.Add(1)
|
start.Add(1)
|
||||||
|
|
Loading…
Reference in New Issue