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 07eef11c1ca18d5af151ab28d7db538a1f1d3d7b —
view raw patch
Parent(s):
2656c977
| File | Status | + | − |
|---|---|---|---|
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 |