Что не должно куковать
Самая результативная оптимизация — не ускорять узлы, а убирать те, которые считаются зря.
Официальная документация обещает от оптимизации ускорение в 2–20 раз. Такие цифры дают не микроправки, а устранение лишней работы.
Порядок поиска
- Что кукается, хотя не должно.
- Что считается в слишком большом разрешении.
- Что считается несколько раз вместо одного.
- Что считается каждый кадр, хотя меняется раз в минуту.
- Только потом — оптимизация самих алгоритмов.
Лишний кук: где искать
| Источник | Как найти | Что делать |
|---|---|---|
| Открытые вьюеры узлов | Визуально в сети | Закрыть; замерять в перформ-режиме |
Cook Always |
Поиск по параметрам | Убрать, если не обосновано |
| Ветки без вывода | Performance Monitor | Отключить Cooking у контейнера |
| Неактивные сцены | Логика проекта | Switch вместо Blend |
| Тяжёлые выражения в параметрах | Не видно в мониторе | Вынести в CHOP или таблицу |
| Скрипты на каждом кадре | Execute DAT |
Перевести в колбэки — Скрипты |
Switch против Blend
Switch не кукает неиспользуемые входы (при соответствующей настройке),
Cross и Blend считают оба. Для выбора сцены из десяти — это разница в
десять раз.
Практика: между сценами — Switch, а плавный переход делается двумя
активными ветками только на время перехода.
Замок на статичном
Всё, что не меняется, должно быть заморожено:
- импортированная геометрия — SOP;
- сгенерированные один раз текстуры;
- таблицы, прочитанные при старте.
Lock превращает узел в данные — Флаги.
Разрешение по месту
Самый недооценённый приём. Список того, что почти никогда не требует полного разрешения:
- маски и матовые каналы;
- размытие и свечение;
- фидбэк;
- вход для TOP to CHOP;
- вход для нейросетевых моделей — Нейросети;
- фон, который всё равно размыт.
Разная частота для разных вещей
Не всё должно считаться 60 раз в секунду:
- анализ картинки — 15–20 раз;
- логика сцены — по событию;
- обновление таблиц — раз в секунду;
- тяжёлые модели — реже, с интерполяцией между результатами.
Реализуется Timer CHOP или счётчиком кадров, который разрешает кук по
условию.
Правило, дающее больше всего: любой результат, нужный в нескольких местах,
считается один раз и кладётся в Null. Дублирование цепочек — самая
частая причина того, что проект вдруг перестал успевать.
Каждая правка проверяется измерением. Половина «очевидных» оптимизаций не даёт ничего, а половина того, что казалось мелочью, даёт двукратный выигрыш — Монитор и Probe.