Unity Profiler на ноутбуке: почему Editor и Player нужно измерять отдельно
Если сцена тормозит в Play Mode, ещё рано делать вывод о скорости готовой игры. Unity Editor и запущенное внутри него приложение используют общие ресурсы, поэтому интерфейс редактора, Scene View и управление ассетами могут влиять на измерение.
Для Unity 6.0, ветка 6000.0, разумный порядок такой: быстрая проверка изменения в Play Mode, затем Development Build на целевой платформе и повтор той же сцены. Профилирование самого Editor — отдельный опыт, полезный для ускорения работы разработчика.
Сформулируйте вопрос до запуска Profiler
| Вопрос | Что измерять |
|---|---|
| Неудобно работать в редакторе | Процесс и операции Editor |
| Изменение скрипта ухудшило сцену | Одинаковую сцену до/после, сначала для поиска, потом в Player |
| Как поведёт себя игра у пользователя | Сборку на соответствующей целевой платформе |
| Почему долго начинается импорт | Импорт и его зависимости, а не только игровой кадр |
Руководство Unity прямо разделяет Player, Play Mode и Editor. Оно рекомендует целевую платформу для реалистичных временных измерений. Удобный FPS в пустом Editor не подтверждает пригодность ноутбука для вашей рабочей сцены.
Быстрый опыт в Play Mode
Откройте Window → Analysis → Profiler, выберите Play Mode в списке целей рядом с Record и запишите один определённый участок. Официальная инструкция Play Mode описывает именно такой выбор.
До записи зафиксируйте версию Unity, сцену, разрешение Game View, профиль питания ноутбука и открытые окна. В Unity есть рекомендация уменьшить число лишних окон редактора: они могут занимать время render thread и GPU. Для проверки нагрузки, связанной с разрешением, Game View должен соответствовать разумному приближению к целевому экрану, а не случайному маленькому окошку.
Сохраните базовую запись, измените одну вещь и повторите участок. Если сцена случайная, используйте фиксируемый сценарий или отметьте, что опыт не является точным сравнением. Не выбирайте только удачный кадр.
Unity отображает часть специфической работы Editor маркерами EditorLoop. Не объявляйте такую нагрузку доказательством медленного пользовательского скрипта. В Play Mode редактор всё равно остаётся частью среды измерения.
Подключите сборку на целевом устройстве
Для отдельного Player в документации Unity 6 приведён следующий путь:
- Откройте File → Build Profiles.
- Выберите нужную целевую платформу.
- Включите Development Build.
- При необходимости включите Autoconnect Profiler.
- Соберите и запустите приложение через Build and Run на целевом устройстве.
- Откройте Profiler и проверьте фактическую выбранную цель; без автоподключения выберите нужный Player вручную и начните запись.
Это документальная последовательность из Collect performance data on a target platform, не выполненный нами аппаратный тест.
Не считайте один ноутбук достаточной проверкой всех устройств, на которые планируется выпуск. Если игра предназначена для другой платформы, измерение Windows-Editor не заменяет её. У разных целевых платформ есть ограничения подключения; в частности, Unity отдельно оговаривает профилирование Web-сборок с Autoconnect.
Не включайте Deep Profile как исходный режим
Unity предупреждает, что Deep Profiling инструментирует вызовы методов скриптов, существенно замедляет выполнение и расходует память. В сложном приложении это может привести даже к нехватке памяти.
Поэтому сначала ищите проблемный участок обычной записью. Deep Profile используйте для ограниченного вопроса, когда дополнительная детализация действительно нужна. Не сравнивайте «до» с Deep Profile и «после» без него как доказательство оптимизации.
Если обычного набора маркеров недостаточно, следующий шаг — целевое инструментирование нужной области по документации Unity, а не обязательное подробное профилирование всего приложения. Назначение инструмента — найти причину, а не создать максимально тяжёлую запись.
Как интерпретировать запись осторожно
Запишите, какой модуль Profiler был включён: Unity собирает данные только для активных модулей. Отсутствие данных в отключённом модуле не означает отсутствия нагрузки.
Сравнивайте одинаковые этапы сцены и просматривайте соседние кадры. Пик во время заранее известной загрузки и постоянная работа игрового цикла — разные задачи оптимизации. Если вы хотите улучшить время итерации разработчика, измеряйте именно его, не подменяя игровым FPS.
Не складывайте произвольные времена потоков как независимые последовательные задержки. Сначала изучите описание конкретной метрики и её места на временной шкале. Большое значение счётчика — направление для расследования, а не автоматическая команда купить новый процессор.
После исправления вернитесь к исходному протоколу, затем повторите проверку в Player. Профилируемая Development Build и итоговый режим без диагностических опций тоже различаются: финальную пользовательскую плавность нужно подтвердить отдельно.
Что сохранить в отчёте
Полезный пакет включает сцену и шаги воспроизведения, версию Editor, платформу, выбранный Player, разрешение, активные модули, состояние Deep Profile и одинаковые записи до/после. Если тест на целевом устройстве не выполнялся, так и напишите.
Если проблема проявляется ещё до запуска сцены, перейдите к проверке долгого импорта и Library. Общие рекомендации по памяти, SSD и GPU для Unity/Unreal помогают сформировать бюджет, но не заменяют профиль конкретного проекта.
FAQ
Достаточно ли Play Mode для сравнения двух правок?
Он удобен для быстрого поиска, если условия одинаковы. Значимый вывод о целевой игре нужно подтвердить сборкой на целевой платформе.
Включить все модули и Deep Profile сразу надёжнее?
Не обязательно. Дополнительная диагностика имеет стоимость. Начните с нужного вопроса и минимально достаточного набора данных.