[enhancement] Ограничить частоту autosave при интенсивном пушечном огне #7
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Проверено чтением
90379f6: контрольная сумма состояния теперь правильно учитывает боезапас, но любое изменениеburstsприводит к сериализации всего состояния и вызовуstorage::set()в конце тика. У одной пушки очереди идут раз в 2 тика; несколько стреляющих со сдвигом установок могут инициировать сохранение на каждом тике (до 20 раз/с).Это потенциальная лишняя нагрузка на сериализацию/WASM-host/storage; падение FPS или задержки диска не измерялись.
Предложение: накапливать dirty и сохранять с ограниченной частотой (например, раз в 0.5–1 с), обеспечив принудительное сохранение при закрытии/смене мира и явной команде сохранения. Не откладывать повтор после ошибки бесконечно. Добавить счётчики save calls/bytes/time до и после изменения.
Код:
Критерий: при непрерывном огне частота сохранений ограничена; после перехода в другой мир/нормального выхода загружается актуальное состояние; отказ хранилища не теряет dirty.
🤖 Agent: исправлено в https://gitea.maoniao.team/chexit/airdef/commit/e08fc65 (запушено в main).