feat(storage): Add ParseTagsWithTags API
This API is a benefit when the caller is only interested in parsing tags and reusing an existing Tags buffer. It will be used by the storage schema APIs.pull/13527/head
parent
35e137e1f6
commit
87bfa06a1e
|
@ -334,6 +334,10 @@ func ParseTags(buf []byte) Tags {
|
||||||
return parseTags(buf, nil)
|
return parseTags(buf, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ParseTagsWithTags(buf []byte, tags Tags) Tags {
|
||||||
|
return parseTags(buf, tags)
|
||||||
|
}
|
||||||
|
|
||||||
func ParseName(buf []byte) []byte {
|
func ParseName(buf []byte) []byte {
|
||||||
// Ignore the error because scanMeasurement returns "missing fields" which we ignore
|
// Ignore the error because scanMeasurement returns "missing fields" which we ignore
|
||||||
// when just parsing a key
|
// when just parsing a key
|
||||||
|
|
|
@ -2648,10 +2648,33 @@ func BenchmarkEscapeString_QuotesAndBackslashes(b *testing.B) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkParseTags(b *testing.B) {
|
func BenchmarkParseKeyBytes(b *testing.B) {
|
||||||
tags := []byte("cpu,tag0=value0,tag1=value1,tag2=value2,tag3=value3,tag4=value4,tag5=value5")
|
buf := []byte("cpu,tag0=value0,tag1=value1,tag2=value2,tag3=value3,tag4=value4,tag5=value5")
|
||||||
for i := 0; i < b.N; i++ {
|
for i := 0; i < b.N; i++ {
|
||||||
models.ParseTags(tags)
|
models.ParseKeyBytes(buf)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkParseKeyBytesWithTags(b *testing.B) {
|
||||||
|
var tags models.Tags
|
||||||
|
buf := []byte("cpu,tag0=value0,tag1=value1,tag2=value2,tag3=value3,tag4=value4,tag5=value5")
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
_, tags = models.ParseKeyBytesWithTags(buf, tags[:0])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkParseTags(b *testing.B) {
|
||||||
|
buf := []byte("cpu,tag0=value0,tag1=value1,tag2=value2,tag3=value3,tag4=value4,tag5=value5")
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
models.ParseTags(buf)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkParseTagsWithTags(b *testing.B) {
|
||||||
|
var tags models.Tags
|
||||||
|
buf := []byte("cpu,tag0=value0,tag1=value1,tag2=value2,tag3=value3,tag4=value4,tag5=value5")
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
tags = models.ParseTagsWithTags(buf, tags[:0])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue