Рассмотрим работу функции Disk Cache в программе композитинга: Adobe After Effects CC. Про работу функции Disk Cache в предыдущих версиях программы, читаем здесь.
Как и в случае кэша ОЗУ, приложение After Effects использует кэш диска для хранения кадра, только если быстрее восстановить кадр из кэша, чем выполнить повторный рендеринг кадра.
Для размещения папки кэша диска рекомендуется использовать быстрый SSD диск или PCIe-диск.
Идем в настройки программы Edit > Preferences > Media & Disk Cache (Правка > Установки > Носитель и кэш диска) и ставим галку перед пунктом: Enable Disk Cache (Включить кэш диска).
После сохранения проекта кадры в кэше диска сохраняются даже после закрытия проекта или выхода из программы After Effects. Такой протокол называется постоянным кэшем диска. Кэш диска больше не очищается в конце сеанса. Благодаря функции постоянного кэша диска кадры, сохраненные в кэше диска, сохраняются между сеансами. Это позволяет экономить время на рендеринг при работе с проектом или другими проектами, использующими одни и те же кэшированные кадры.
При открытии проекта выполняется просмотр кэша диска для поиска кадров, соответствующих кадрам проекта, и они делаются доступными для использования. Кэш диска содержит кадры из всех проектов, открытых в этом же сеансе или в предыдущих сеансах, поэтому кэшированные на диске кадры из одного проекта будут извлечены для повторного использования в других проектах, которым требуются эти же кадры. По мере просмотра кэша синие метки постепенно заполняют таймлайн.
Для лучшей производительности кэширования на диск выберите папку на физическом SSD (жестком диске), отличающемся от диска исходного видеоряда. По возможности папка должна находиться на SSD (жестком диске), использующем другой контроллер, чем диск, на котором находится исходный видеоряд. Для размещения папки кэша диска рекомендуется использовать быстрый жесткий диск или SSD-диск. Папка кэша диска не может быть корневой папкой жесткого диска.
Параметр «Максимальный размер кэша диска» определяет используемый размер пространства на жестком диске в гигабайтах. Размер кэша диска по умолчанию составляет 10% от общего размера тома.
Edit > Preferences > Memory (Правка > Установки > Память).
RAM reserved for other applications (ОЗУ, зарезервированное для других приложений) - увеличиваем это значение, чтобы предоставить больший объем ОЗУ для операционной системы и для приложений, отличных от After Effects и приложения, с которым After Effects использует общий пул памяти (After Effects, Premiere Pro и Adobe Media Encoder).
Средство балансировки памяти предотвращает обмен ОЗУ с диском (свопинг) с помощью динамического управления памятью, выделяемой каждому из приложений. Каждое приложение регистрируется в средстве балансировки памяти, указывая определенные базовые данные: минимальные требования к памяти, максимальный объем памяти, который может использовать приложение, текущий объем используемой памяти и приоритет. У приоритета есть три значения: низкий, обычный и максимальный. Максимальный приоритет в настоящее время зарезервирован для приложений After Effects и Premiere Pro, когда они являются активными. Нормальный приоритет предназначен для приложения After Effects в фоновом режиме или для приложения Adobe Media Encoder в режиме переднего плана. Низкий приоритет для фоновых серверов приложений Premiere Pro или Adobe Media Encoder в фоновом режиме.
Примером практического результата использования общего пула памяти может служить тот факт, что при запуске Premiere Pro уменьшается объем ОЗУ, доступный приложению After Effects для предпросмотра. Завершение Premiere Pro немедленно освобождает ОЗУ для After Effects и увеличивает возможную длительность предпросмотров.
В окне проекта нажимаем правую кнопку мыши на композиции и выбираем: Composition Settings. И изменяем значение параметра Resolution с Quarter (выполняется рендеринг 1/16 пикселей, содержащихся в изображении с полным разрешением) на Full (Полное). Нажимаем на кнопку: ОК.
Выставляем разрешение: Full (Полное).
Ставим галки перед параметрами: Cache Before Playback (Кэшировать перед воспроизведением), что обеспечивает предпросмотр кадров в процессе рендеринга. After Effects позволяет просматривать только кадры, рендеринг которых выполняется сейчас, пропуская кадры, обработанные ранее. If caching, play cached frames (Если выполняется кэширование, воспроизводить кэшированные кадры) - при включении этого параметра используется предпросмотр во время кэширования.
В окне композиции:
Предварительный просмотр может теперь запускаться клавишей пробела, что оптимизирует кеширование кадров для воспроизведения в реальном времени.
Загрузка процессора при превью композиции: 74%, и занято 6Гб памяти из 8Гб.
Fps: 00,666/25 (NOT realtime).
Размер кадра и требования к объему оперативной памяти, в мегабайтах (МБ) на кадр:
- Кадр HDTV (1920 x 1080) в проекте 16 бит/канал: 16Мбайт.
- Кадр цифрового кино 4K (4096x2304) в проекте 32 бит/канал: 144Мбайта.
Поэтому оперативной памяти (при ограниченном ее ресурсе), хватает на секунды/минуты:
Очищаем память: Edit > Purge > All Memory (Ctrl+Alt+Numpad/).
Освобождаем память, используя команду меню: Edit > Purge > All Memory (Правка > Очистить > Вся память) и получим полностью синию полосу в рабочей области:
Смотрим свойства папки Disk_Cache... на минуту 1080p24 видео ушло 30Гбайт.
Открываем папку:
Смотрим содержимое папок:
Чтобы очистить кэш диска, нажимаем на кнопку Empty Disk Cache (Очистить кэш диска) в настройках программы в разделе: Media & Disk Cache (Носитель и кэш диска). Или выполняем команду: Edit > Purge > All Memory (Правка > Очистить > Вся память и кэш диска). Очистка кэша диска для одной версии After Effects не очищает кэш для других версий.
Удерживая клавишу Shift выполняем команду: (After Effects > Preferences > General), далее идем в закладку Secret и ставим галку перед пунктом: Disable Layer Cache, тем самым отключаем информацию об отдельных слоях, что снизит нагрузку на оперативную память (может пригодиться при использовании компьютеров с небольшим объемом памяти).
Когда мы делаем RAM превью, мы также получаем информацию о каждом отдельном слое в оперативной памяти, так что можно потом просто изменить один слой, а не пересчитывать все заново. After Effects CC 2016 может кэшировать больше элементов, что снижает частоту повторного рендеринга кадров и компонентов кадров.
При запуске After Effects, одна из вещей, которые он делает, это быстрая проверку скорости чтения и записи в папку, где у нас находится кэш. Он использует эти измерения, чтобы определить, сколько времени потребуется, чтобы записать и прочитать кешированный кадр на диск на нашей системе. Затем он использует эту информацию, чтобы решить, стоит ли кэшировать определенные кадры или нет. Например, если кадр занимает 40 миллисекунд, но занимает 50 миллисекунд, чтобы прочитать его с диска, то нет никакого смысла в кэшировании этого кадра. Управляется это поведение с помощью параметров: Proclivity Multiplier, доступных в документе: Adobe After Effects 13.8 Prefs.txt.
И выставленные пользовательские настройки в этом документе:
["Disk Cache Controls"]
"Enabled 2" = "1"
"Folder 7" = "I:\Disk_Cache"
"Max Size 3" = "200"
["Unified Preview Options Spacebar"]
"Cache Before Playback" = "1"
В документе Debug Database.txt также есть пункты связанные с Disk Cache: ML.EnableDiskCache (false), RAMPreview_Player_SkipCachedFramesCheck (true), SpecialColorForDiskMemCachedFrames3 (false).