Почему Flash так плохо обращается с ЦП?

Недавно я слышу, что Steve Jobs цитирует это в качестве главной причины не иметь Flash на IPAD

7
задан Srikar Doddi 5 April 2010 в 01:47
поделиться

3 ответа

В общем случае Flash не сильно нагружает ЦП, а содержимое Flash сильно нагружает ЦП. Люди обычно не используют Flash для отображения статического текста и растровых изображений, они используют его для векторной анимации и видео, а также для RIA с компонентами с настраиваемым оформлением, а на компоновку всех этих векторов, градиентов и альфа-каналов требуется центральный процессор - независимо от того, используете ли вы Flash или HTML5 или Silverlight или JavaFX или что-то еще. Не стесняйтесь проверить демонстрации на , это сравнение анимации , и посмотрите, как загрузка процессора версией HTML5 соотносится с версией Flash. Результаты сильно различаются в зависимости от ОС и браузера, но для меня (winXP / firefox) версия Flash использует примерно тот же процессор, что и версия Canvas (~ 50%), при этом дает чуть более чем удвоенный FPS.

Второй ответ касается конкретно видео, и ответ таков: независимо от того, какую технологию вы используете для отображения видео, только две вещи действительно влияют на использование ЦП: кодек и то, имеет ли он аппаратное ускорение или нет. Вы можете протестировать видео H264 в браузерах и ОС, а также в Flash / HTML5 (, и люди сделали это ), и вы обнаружите, что загрузка ЦП низка, когда видео ускоряется аппаратно, и высокая, когда нет, и то и другое. внутри Flash и снаружи. Таким образом, нет проблемы с загрузкой Flash-видео процессору, вопрос только в том, использует ли Flash-видео HWA или нет. Проверьте ссылку для получения полной информации, но в основном, если вы не используете OSX / Safari, Flash-видео использует тот же процессор или меньше, чем другие варианты.

Между прочим, если вам также интересно, почему Flash исторически использовал больше ЦП на компьютерах Mac, чем на ПК, даже для содержимого без видео, см. здесь для получения подробной информации - как о том, почему это было хуже в прошлом и почему это улучшилось с Flash 10.1. Быстрая версия заключается в том, что Apple добавила новые и лучшие способы для плагинов встраивать в браузер.

15
ответ дан 6 December 2019 в 08:42
поделиться

Я бы сказал, что основная причина - это выполнение анимации и других графических расчетов, таких как альфа-композитинг, графические фильтры и тому подобное, с использованием CPU вместо GPU. Flash-приложения, не использующие анимацию, не очень нагружают CPU.

То же самое можно увидеть во многих демонстрациях HTML5/canvas в последнее время, например http://9elements.com/io/projects/html5/canvas/ или в http://www.chromeexperiments.com/ с интенсивной анимацией, которые очень сильно нагружают CPU. Так что я бы сказал, что не Flash Player как таковой является тяжелым для CPU, а те вещи, для которых Flash часто используется.

Что касается причин, по которым Flash отсутствует на iPad, я, конечно, могу только предполагать, но люди склонны забывать, что на iPhone/iPad запрещены плагины для браузеров. Поэтому такие вещи, как Unity и Silverlight, также исключены, а не только Flash. Java там тоже нет.

3
ответ дан 6 December 2019 в 08:42
поделиться

Если вы посмотрите на использование процессора Flash, оно значительно выше на Mac, чем на ПК. В следующем выпуске флэш-плеера (10.1) он будет намного лучше, но не таким, как на ПК.

Я где-то читал, что отчасти причина в видео. В Windows у приложений есть доступ к аппаратному ускорению для ускорения работы, в OS X необходимые API-интерфейсы недоступны для использования во флэш-памяти. Кроме того, флэш-память не может легко использовать несколько процессоров, поэтому она тоже ограничена в этом смысле.

3
ответ дан 6 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: