Решили: медленную перезагрузку домена лечим перезапуском редактора, а не оптимизацией проекта.
Диагностика — scripts/editor-health.ps1: читает лог, строит кривую по сессии и советует рестарт,
когда цена выросла вдвое и перевалила порог.
Почему: замер по логу показал, что перезагрузка дорожает внутри сессии, и разрыв огромный —
первая перезагрузка прошлой сессии заняла 1.0 секунды, 261-я 53.6, всего за сессию набежало 108 минут
ожидания. Раздувается выполнение статических конструкторов (ProcessInitializeOnLoadAttributes 135 мс
против 20 415 мс) при неизменном их числе, плюс AwakeInstancesAfterBackupRestoration с нуля до 11.8
секунды.
Ключевой вывод отсюда: на свежем редакторе наш домен грузится за секунду, значит ни состав пакетов,
ни 16 тысяч ассетов, ни антивирус к делу не относятся. Поэтому отменены как лекарство: чистка
неиспользуемых пакетов (VFX Graph без единого .vfx, ProBuilder без единого меша, Timeline без
.playable), Cache Server, дробление сборок. Гипотеза про Defender проверена и опровергнута отдельно:
пустой AssetDatabase.Refresh() отрабатывает за 28 мс, то есть asset pipeline и так быстрый, а девять
секунд «импорта» в его отчёте — это ожидание перезагрузки домена внутри него. Исключения Defender всё
же добавлены (гигиена), выигрыша от них не ждём.
У кривой есть порог около сотни перезагрузок: до него рост пологий (#21 — 8.3 с, #81 — 10.9 с), после разгоняется (#161 — 24.3 с, #241 — 44.4 с). Проверено на живой сессии: тридцать с лишним перезагрузок держатся в коридоре 9.7–14.9 секунды без роста.
Грабли: com.unity.editoriterationprofiler, который и должен был назвать виновника поимённо, на
Unity 6 мёртв — пакет ставится, окно открывается, EditorProfilingEnabled встаёт в true, и за три
перезагрузки он собирает ноль событий (последние правки пакета — 2020 год). Удалён, следов в
manifest.json и packages-lock.json не осталось; повторять этот заход не нужно.
Улика, оставшаяся следующему заходу: за ту сессию 860 срабатываний обвязки тест-раннера и 24 живых
TestRunnerApi в памяти редактора — по одному на прогон, никто их не убирает. Прогоны тестов в живом
редакторе — главный кандидат в источники накопления, и обходится это бесплатно: гонять их теневым
проектом (run-tests.ps1 -Where Shadow).
Владелец правды: scripts/editor-health.ps1 (кривая и порог — в шапке файла),
docs/iteration-speed-progress.md (замеры захода), CLAUDE.md §«Правку .cs проверяет скрипт».