RunSequence and AudioIdleWatcher::Execute run per sequence per frame, so the BT_ATTRBIND_LOG probes added while chasing #99 were calling getenv ~2700x/sec on a 15-sequence mech. Small, but this is the same path the source-pooling fix (#32) just bought 10% of frame time in, and an unset diagnostic should cost nothing. Cached in function-static flags. Pre-ship smoke (combat, 2 kills, a respawn, clean teardown): frame time 7.18 / 8.27 / 8.71 ms -- matches the post-pooling 7.79ms baseline 0 asserts, 0 access violations, 0 audio acquireFails Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
15 lines
494 B
Bash
15 lines
494 B
Bash
#!/usr/bin/env bash
|
|
# Pre-ship smoke: combat, no diagnostics, measure frame time + confirm no crash.
|
|
set -x
|
|
. /c/git/bt411/scratchpad/night6/bench_common.sh
|
|
cd /c/git/bt411/content || exit 1
|
|
taskkill //F //IM btl4.exe > /dev/null 2>&1
|
|
sleep 2
|
|
sed "s/^map=.*/map=grass/; s/^time=.*/time=day/" MP.EGG > SHIP.EGG
|
|
rm -f preship.log
|
|
export BT_SPAWN_ENEMY=2 BT_AUTOFIRE=1 BT_GOTO=enemy BT_GOTO_STOP=40
|
|
bt_launch preship.log SHIP.EGG 0x03
|
|
sleep 120
|
|
taskkill //F //IM btl4.exe > /dev/null 2>&1
|
|
sleep 2
|