Add runtime benchmark baseline before Msg redesign#1023
Add runtime benchmark baseline before Msg redesign#1023
Conversation
emil14
left a comment
There was a problem hiding this comment.
One new finding from a fresh pass on the current branch: benchmarks/message_passing/bench_test.go:35 uses ReportAllocs() even though this suite measures an external compiled binary. In this setup the reported allocations are only from the Go benchmark harness, not from the spawned Neva program, and the current results already show a nearly flat ~11 KB/op across many very different benchmark cases. That makes allocs/op here actively misleading as a runtime signal. I would drop ReportAllocs() from the e2e suite and keep allocation tracking in the lower-level runtime benchmarks instead.
|
Fresh pass is now in What changed:
Validation:
Note: the full suite is still heavy ( |
Summary
This PR adds runtime benchmark baselines that should land in
mainbefore merging #1004 (Redesign runtime Msg).It addresses review comment: #1004 (comment)
What is included
cmd/nevaonceoutputbinary1000to100000to reduce startup/process noise in measurementsinternal/runtimemicrobenchmarks for stable runtime hotspots:Why this shape
Msg#1004 and future runtime changesValidation
golangci-lint run ./...go test ./internal/runtime/...go test ./benchmarks/message_passing -run=^$ -bench=BenchmarkMessagePassingE2E -benchtime=1x