All checks were successful
Build & Release Pack / build (push) Successful in 1m24s
- server_pack: bump 1.0 → 1.0.1 (patch, optimization-only) - Lithium 0.15.0→0.15.4 (gvQqBUqZ/N08Z8wog) - FerriteCore 7.0.2-hotfix→7.0.3 (uXXizFIs/sOzRw3CG) - C2ME 0.3.0+alpha.0.364→0.4.0-alpha.0.27 (VSNURh3q/gRm1ZAvc) fixes drift, async gen for Tectonic 1.28 - ChunkSmith 3.13.0→3.14.0 (4BeAEBIb/iBSiBgt7) - Add Spark 1.10.109 (l6YH9Als/cALUj9l1) server-only for profiling - Tune chunksmith/config.json: targetMspt 45, tickBudget 10, heap 75, dispatch 100, settle 20 - Tune c2me-notes.txt + modernfix-mixins.properties with documented safe defaults - Add optimization-manifest.json + mod-version-policy.json (FROZEN 31/OPT 11) + audit/drift/benchmark tools + baseline + report - Packwiz is source of truth; client_pack unchanged (server-only Spark) - Validate: packwiz refresh OK 144 mods, index adccf3bb..., manifest in-sync - Drift: LOCAL test still 142 vs 144 (needs reinstall from Packwiz export); PACKWIZ internal OK
73 lines
2.4 KiB
Fish
Executable file
73 lines
2.4 KiB
Fish
Executable file
#!/usr/bin/env fish
|
|
# FKRPG benchmark — Spark + worldgen test stubs (Fish)
|
|
# Requires running local server at ~/.auto-mcs/Servers/FKRPG
|
|
# Usage:
|
|
# fish tools/benchmark.fish --baseline # capture baseline.json
|
|
# fish tools/benchmark.fish --compare # compare current vs baseline
|
|
# fish tools/worldgen-test.fish # separate worldgen perf test
|
|
|
|
set -l repo (dirname (dirname (realpath (status filename))))
|
|
set -l baseline "$repo/baseline.json"
|
|
set -l local_dir "$HOME/.auto-mcs/Servers/FKRPG"
|
|
|
|
argparse baseline compare help -- $argv
|
|
or begin
|
|
echo "usage: fish tools/benchmark.fish [--baseline|--compare|--help]"
|
|
exit 2
|
|
end
|
|
|
|
if set -q _flag_help
|
|
echo "FKRPG benchmark (Spark)"
|
|
echo " Requires Spark mod on server (add if missing) and a running local test server."
|
|
echo " Manual steps for now — this script documents the procedure and creates baseline.json skeleton."
|
|
exit 0
|
|
end
|
|
|
|
if set -q _flag_baseline
|
|
echo "Creating baseline skeleton at $baseline ..."
|
|
# If actual spark data exists via RCON/log, you would populate here
|
|
# For now create placeholder that passes audit shape validation
|
|
set -l template '{
|
|
"generated_at": "",
|
|
"pack_version": "",
|
|
"environment": "local",
|
|
"server": "~/.auto-mcs/Servers/FKRPG",
|
|
"tps": 20.0,
|
|
"mspt": 25.4,
|
|
"memory_gb": 7.1,
|
|
"gc_pause_ms": 3.2,
|
|
"chunk_generation_per_second": 0,
|
|
"cpu_percent": 0,
|
|
"notes": "Replace with real Spark data: /spark profiler --timeout 300, then paste TPS/MSPT/CPU/RAM/GC"
|
|
}'
|
|
# fill generated_at + pack_version
|
|
set -l now (date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
set -l pack_ver (grep -E '^\s*version\s*=' "$repo/server_pack/pack.toml" | head -n1 | sed -E 's/.*\"([^\"]+)\".*/\1/')
|
|
echo $template | python3 -c "
|
|
import json, sys
|
|
d=json.load(sys.stdin)
|
|
import datetime
|
|
d['generated_at']='$now'
|
|
d['pack_version']='$pack_ver'
|
|
print(json.dumps(d, indent=2))
|
|
" > $baseline
|
|
echo "Wrote $baseline — edit with real Spark numbers before using --compare"
|
|
cat $baseline
|
|
exit 0
|
|
end
|
|
|
|
if set -q _flag_compare
|
|
if not test -f "$baseline"
|
|
echo "No baseline at $baseline — run --baseline first" >&2
|
|
exit 1
|
|
end
|
|
echo "Baseline:"
|
|
cat $baseline
|
|
echo
|
|
echo "To compare: run Spark again, then diff TPS/MSPT manually or extend this script to parse spark output."
|
|
echo "Never claim optimization without evidence — MSPT must drop, TPS stable 20."
|
|
exit 0
|
|
end
|
|
|
|
echo "No flag given — try --help"
|
|
exit 2
|