Skip to content

Commit 3a4300b

Browse files
committed
Add a benchmark
1 parent 89f7bac commit 3a4300b

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

pkg/firedb/create_test.go

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,13 @@ func TestRoundTrip(t *testing.T) {
7878

7979
require.NoError(t, pw.Close())
8080
})
81+
t.Logf("size of parquet file %d bytes", buffer.Len())
8182

8283
t.Run("read-verify", func(t *testing.T) {
8384
rows, err := parquet.Read[*profilev1.Profile](bytes.NewReader(buffer.Bytes()), int64(buffer.Len()))
84-
require.Error(t, io.EOF, err)
85+
if err != io.EOF {
86+
require.NoError(t, err)
87+
}
8588
require.Equal(t, len(profiles), len(rows))
8689

8790
for pos := range rows {
@@ -106,3 +109,35 @@ func TestRoundTrip(t *testing.T) {
106109
})
107110

108111
}
112+
113+
func BenchmarkWriteProfiles(t *testing.B) {
114+
var (
115+
profilePaths = []string{
116+
"testdata/heap",
117+
"testdata/profile",
118+
}
119+
profiles = make([]*profilev1.Profile, len(profilePaths))
120+
)
121+
122+
buffer := new(bytes.Buffer)
123+
sch := parquet.SchemaOf(&profilev1.Profile{})
124+
pw := parquet.NewWriter(buffer, sch)
125+
126+
require.NoError(t, pw.Close())
127+
for pos := range profilePaths {
128+
profiles[pos] = parseProfile(t, profilePaths[pos])
129+
}
130+
131+
t.ReportAllocs()
132+
133+
for n := 0; n < t.N; n++ {
134+
for pos := range profiles {
135+
require.NoError(t, pw.Write(profiles[pos]), "error writing profile ", profilePaths[pos])
136+
}
137+
}
138+
139+
require.NoError(t, pw.Close())
140+
141+
t.Logf("% 6d profiles % 12d bytes %12f bytes/per-profile", t.N, buffer.Len(), float64(buffer.Len())/float64(t.N))
142+
143+
}

0 commit comments

Comments
 (0)