Part of the main README.
Use make measure (wrapper around scripts/measure.sh):
make measure lang=goRun all languages + all 8 core benchmarks in one combined run:
make measureFilter language/benchmark and change profile/iterations:
make measure lang=go profile=measure
make measure lang=go profile=test
make measure lang=go,c bench=binary-trees,mandelbrot iterations=10
make measure lang=rust iterations=3profile=measure is the default.
iterations=1 is the default.
Direct script usage (future KWA-compatible shape):
scripts/measure.sh profile=measure lang=go,c,cpp bench=binary-trees,mandelbrot iterations=10Supported script args (key=value only):
profile=measure|testlang=<csv>bench=<csv>iterations=<int>gmt_dir=<path>(optional, default:./green-metrics-tool)uri=<path>(optional, default: repo root)
When lang is omitted, all supported languages are used:
ccppcsharpdarterlangfsharpgohaskelljavaluanodejsocamlperlphppythonrubyrustswift
When bench is omitted, these 8 core benchmarks are used:
binary-treesfannkuch-reduxk-nucleotiden-bodyregex-reduxspectral-normfastamandelbrot
Profile behavior:
measure: uses canonical filesbenchmarks/<lang>/<benchmark>.ymland does not pass--dev-no-sleepstest: uses generated filesbenchmarks/<lang>/<benchmark>_test.ymland passes--dev-no-sleeps
KWA is the Go CLI that exports GMT measurements to CSV. Internals are documented in
kwa/README.md.
Build KWA binary into kwa/build/kwa:
make kwa-buildRun KWA directly from source (kwa/cmd/main.go):
make kwa-run