Частота кадров приложения

Общий совет: для увеличения производительности используйте минимально возможную частоту кадров.

Частота кадров приложения определяет время каждого цикла для выполнения кода приложения и визуализации, как описано в разделе « Основные сведения по выполнению кода в среде выполнения ». При более высокой частоте кадров создается более плавная анимация. Но, если анимация или другие визуальные изменения не происходят, часто отсутствует причина использовать высокую частоту кадров. При более высокой частоте кадров затрачивается больше циклов ЦП и заряда батареи, чем при низкой частоте.

Ниже приведены общие рекомендации по использованию подходящей частоты кадров по умолчанию для различных приложений.

  • При использовании инфраструктуры Flex оставьте значение начальной частоты кадров по умолчанию без изменений.

  • Если приложение включает анимацию, приемлемая частота кадров составляет не менее 20 кадров в секунду. Устанавливать частоту кадров, превышающую 30 кадров в секунду, зачастую нет необходимости.

  • Если в приложении нет анимации, то, возможно, частоты 12 кадров в секунду будет вполне достаточно.

«Минимально возможная частота кадров» сильно зависит от выполняемых приложением действий. Дополнительные сведения см. в следующем совете «Динамическое изменение частоты кадров приложения».

Используйте низкую частоту кадров, если единственным динамическим содержимым в приложении является видео.

Среда выполнения воспроизводит загруженное видео с его собственной частотой кадров, не принимая во внимание частоту кадров приложения. Если в приложении нет анимации или динамического визуального содержимого, уменьшение частоты кадров не приводит к снижению производительности пользовательского интерфейса.

Динамическое изменение частоты кадров приложения.

Задать начальную частоту кадров приложения в проекте можно в параметрах компилятора, однако это значение можно сделать динамически изменяемым. Для этого необходимо настроить во Flex свойство Stage.frameRate (или свойство WindowedApplication.frameRate ).

Изменяйте частоту кадров в соответствии с текущими потребностями приложения. Например, когда приложению не требуется выполнять рендеринг анимации, понизьте частоту кадров. И наоборот, в начале анимации поднимите частоту кадров. Аналогично, если приложение выполняется в фоновом режиме (после потери фокуса), обычно можно еще больше уменьшить частоту кадров. Вероятно, пользователь будет уделять основное внимание другому приложению или другой задаче.

Ниже приведены общие рекомендации, которые можно использовать в качестве отправной точки при определении подходящей частоты кадров для различных типов действий.

  • При использовании инфраструктуры Flex оставьте значение начальной частоты кадров по умолчанию без изменений.

  • При воспроизведении анимации частота кадров должна составлять не менее 20 кадров в секунду. Устанавливать частоту кадров, превышающую 30 кадров в секунду, зачастую нет необходимости.

  • Если приложение не воспроизводит анимацию, то, возможно, частоты 12 кадров в секунду будет вполне достаточно.

  • Загруженное видео воспроизводится с собственной частотой кадров, не принимая во внимание частоту кадров приложения. Если из динамического содержимого в приложении присутствует только видео, возможно, частоты 12 кадров в секунду будет вполне достаточно.

  • Если приложение не находится в фокусе, возможно, частоты 5 кадров в секунду будет вполне достаточно.

  • Когда приложение AIR не отображается, подходящая частота кадров составляет 2 кадра в секунду или менее. Например, данные рекомендации применяются, когда приложение свернуто. Они также применяются на настольных устройствах, если для свойства окна visible установлено значение false .

Приложения, созданные во Flex; компоненты spark. В класс WindowedApplication встроена поддержка динамически изменяющейся частоты кадров приложения. Частоту кадров неактивного приложения определяет свойство backgroundFrameRate . Значением по умолчанию является 1, при этом частота кадров приложения, созданного с использованием среды Spark, изменяется до 1 кадра в секунду. Изменить фоновую частоту кадров можно, задав свойство backgroundFrameRate . Можно задать для свойства другое значение или значение -1, чтобы отключить автоматическое регулирование частоты кадров.

Дополнительные сведения о динамическом изменении частоты кадров приложения см. в следующих статьях.

Грант Скиннер (Grant Skinner) создал класс регулировки частоты кадров. Этот класс можно использовать в приложениях для автоматического уменьшения частоты кадров во время работы приложения в фоновом режиме. Получить дополнительные сведения и загрузить исходный код для класса FramerateThrottler можно в статье Гранта «Использование бездействующего ЦП в Adobe AIR и Flash Player» на http://gskinner.com/blog/archives/2009/05/idle_cpu_usage.html .