From 09e527a6c7ba76e3d07be36c5b4e90bbe5ad9d3c Mon Sep 17 00:00:00 2001 From: Jeroen Demeyer Date: Mon, 22 Apr 2024 11:29:12 +0200 Subject: [PATCH] [Go] add BenchmarkBuildAllocations --- tests/go_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/go_test.go b/tests/go_test.go index f230060a66f..e072705a222 100644 --- a/tests/go_test.go +++ b/tests/go_test.go @@ -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)) + } + } +}