[Go] add BenchmarkBuildAllocations

This commit is contained in:
Jeroen Demeyer 2024-04-22 11:29:12 +02:00
parent 2436bd8175
commit 09e527a6c7
1 changed files with 18 additions and 0 deletions

View File

@ -2573,3 +2573,21 @@ func BenchmarkBuildGold(b *testing.B) {
bldr.Finish(mon)
}
}
// Benchmark adding 130 bytes, one by one.
// Unlike BenchmarkBuildGold, we create a new builder every time,
// to test the performance of growing the buffer.
func BenchmarkBuildAllocations(b *testing.B) {
b.SetBytes(130)
b.ReportAllocs()
b.ResetTimer()
for i := 0; i < b.N; i++ {
bldr := flatbuffers.NewBuilder(0)
for j := 0; j < 130; j++ {
bldr.PrependByte(byte(j))
}
if len(bldr.Bytes) != 256 {
b.Fatalf("expected buffer size=256, got %d", len(bldr.Bytes))
}
}
}