~bigbes/tarantool-protobuf: 07eef11c

bench: Go cross-runtime comparison harness

Adds bench/go/ — single-threaded Go benchmarks against the same proto
schemas and payload sizes as bench/bench.lua, run against
google.golang.org/protobuf v1.36 (reflective apiv2) and
planetscale/vtprotobuf v0.6 (codegen marshalers). Wired through
`just gen-go` + `just bench-go`. *.pb.go is gitignored repo-wide so
the generated outputs are regenerated locally — not committed.

bench/COMPARISON.md documents the full table per fixture / size / op:
MB/s for Lua full + Lua runtime + apiv2 + vtproto, alloc bytes/op and
allocs/op side-by-side, and ratios. proto2 BenchPayload vtproto cases
are intentionally skipped — MarshalVT drops proto2 extensions and
would understate bytes vs apiv2 / Lua.

Eugene Blikh <bigbes@gmail.com> — 2026-05-17 15:10:40 UTC

Commit 07eef11c1ca18d5af151ab28d7db538a1f1d3d7bview raw patch

Parent(s): 2656c977

9 changed file(s)

FileStatus+
Justfile M +19
bench/COMPARISON.md A +115
bench/go/README.md A +77
bench/go/bench_test.go A +138
bench/go/fixtures.go A +109
bench/go/go.mod A +8
bench/go/go.sum A +6
bench/go/proto/hello.proto A +35
bench/go/proto/proto2_basic.proto A +32