Skip to content

Commit

Permalink
refac: move parse-ct test outside of inner loop
Browse files Browse the repository at this point in the history
Signed-off-by: Manik Rana <[email protected]>
  • Loading branch information
Maniktherana committed Sep 20, 2024
1 parent 5172472 commit f64b276
Showing 1 changed file with 35 additions and 31 deletions.
66 changes: 35 additions & 31 deletions model/textparse/promparse_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -498,16 +498,11 @@ func BenchmarkParse(b *testing.B) {
"openmetrics": func(b []byte, st *labels.SymbolTable) Parser {
return NewOpenMetricsParser(b, st)
},
"openmetrics/skip-ct": func(b []byte, st *labels.SymbolTable) Parser {
"openmetrics-skip-ct": func(b []byte, st *labels.SymbolTable) Parser {
return NewOpenMetricsParser(b, st, WithOMParserCTSeriesSkipped())
},
} {
for _, fn := range []string{"promtestdata.txt", "promtestdata.nometa.txt", "omtestdata.txt"} {
// we only want to benchmark om parsers with omtestdata
if fn == "omtestdata.txt" && !strings.HasPrefix(fn, "openmetrics") {
continue
}

for _, fn := range []string{"promtestdata.txt", "promtestdata.nometa.txt"} {
f, err := os.Open(fn)
require.NoError(b, err)
defer f.Close()
Expand Down Expand Up @@ -639,36 +634,45 @@ func BenchmarkParse(b *testing.B) {
}
_ = total
})
b.Run(parserName+"/created-lines/"+fn, func(b *testing.B) {
b.SetBytes(int64(len(buf) / promtestdataSampleCount))
b.ReportAllocs()
b.ResetTimer()
}

total := 0
f, err := os.Open("omtestdata.txt")
require.NoError(b, err)
defer f.Close()

st := labels.NewSymbolTable()
for i := 0; i < b.N; i += promtestdataSampleCount {
p := parser(buf, st)
buf, err := io.ReadAll(f)
require.NoError(b, err)

Outer:
for i < b.N {
t, err := p.Next()
switch t {
case EntryInvalid:
if errors.Is(err, io.EOF) {
break Outer
}
b.Fatal(err)
case EntrySeries:
if parserName == "openmetrics/skip-ct" {
p.CreatedTimestamp()
}
b.Run(parserName+"/parse-ct/"+"omtestdata.txt", func(b *testing.B) {
if !strings.HasPrefix(parserName, "openmetrics") {
b.Skip()
}
b.SetBytes(int64(len(buf) / promtestdataSampleCount))
b.ReportAllocs()
b.ResetTimer()

total := 0

st := labels.NewSymbolTable()
for i := 0; i < b.N; i += promtestdataSampleCount {
p := parser(buf, st)

Outer:
for i < b.N {
t, err := p.Next()
switch t {
case EntryInvalid:
if errors.Is(err, io.EOF) {
break Outer
}
b.Fatal(err)
case EntrySeries:
p.CreatedTimestamp()
}
}
_ = total
})
}
}
_ = total
})
}
}

Expand Down

0 comments on commit f64b276

Please sign in to comment.