Разделить частоту обновления часов и расчёта симуляции

Счётчик времени UI обновляется до 10 Гц по запрошенному времени, а тяжёлые циклы по-прежнему запускаются с адаптивным интервалом и обрабатывают весь накопленный промежуток. Обновить тесты и описание модели.
This commit is contained in:
Kirill
2026-10-17 23:41:18 +03:00
parent 00b6192d19
commit 273093bd9e
14 changed files with 853 additions and 10 deletions
+12 -1
View File
@@ -253,7 +253,18 @@ godot --headless --path Owniverse.GI --script res://tests/test_flow_commit.gd
Stage вызывает `evolute_frame`: транзакция получает бюджет 40 мс и уступает
следующему кадру внутри создания партий и обработки стадий. Расчёт остаётся
на главном потоке, состояние публикуется только после полного завершения.
Расчёт запускается после накопления 0,2 реальной секунды и обрабатывает весь ожидающий интервал. Время, поступившее во время расчёта, обрабатывается следующим циклом. При перегрузке шаг растёт; пять завершений в секунду остаются целевой частотой, а не гарантией.
Запрошенные игровые часы и счётчик UI обновляются независимо от тяжёлого расчёта;
Stage показывает запрошенное время раз в 0,1 секунды (10 Гц), а опубликованное
состояние мира остаётся на последнем завершённом цикле. Расчёт запускается после
накопления выбранного интервала и обрабатывает весь ожидающий интервал. Время,
поступившее во время расчёта, обрабатывается следующим циклом. Контроллер нагрузки
меняет целевой шаг между 0,2, 0,25, 0,333 и 0,5 секунды (5/4/3/2 цикла в секунду):
вниз при EMA расчёта выше 90% текущего шага, вверх после 30 циклов ниже 65%.
Временное разрешение укрупнения партий масштабируется с шагом, исходная точность
сохраняется на 5 Гц. Контроллер не пропускает накопленное игровое время, но 2/с —
нижняя целевая частота, не гарантия при перегрузке.
`benchmark_dynamic_cadence.gd` сравнивает пропускную способность полного цикла на двух диагностических сохранениях. `benchmark_dynamic_cadence_ui.gd` сравнивает 10 секунд работы полной сцены на сохранении со всеми объектами; результаты сохранены в `artifacts/dynamic_cadence_results.json` и `artifacts/dynamic_cadence_ui_results.json`.
Производство во время транзакции выполняется после её завершения. Запрошенное
время, активный интервал, скорость и очередь производства входят в сохранение;