Главный поток почти весь кадр в ожидании кадра отрисовки, а команда оптимизирует C#
На тестовом Android игра идёт на 30 кадрах при кадре в 33 мс. Профайлер, подключённый к билду, показывает: вся скриптовая логика занимает около 2 мс, а основное время главного потока приходится на ожидание готовности кадра отрисовки. Команда неделю ускоряет геймплейный код, но средние кадры не меняются. Как правильно прочитать эту картину?
- Ожидание в главном потоке означает, что скрипты блокируют рендер: логику надо распараллелить по потокам, чтобы отрисовка не ждала геймплейный код
- Кадр упирается не в скрипты, а в видеокарту или в ограничение частоты: смотреть надо на перерисовку пикселей, разрешение и шейдеры
- Такое ожидание всегда означает нехватку памяти под текстуры: помогает только уменьшение их разрешения
- Ожидание кадра отрисовки нормально и означает, что узкое место в процессорной части рендера: надо сокращать число объектов на сцене и вызовов отрисовки
