为什么Flash在CPU上这么难?

时间:2010-04-05 01:47:10

标签: flash

最近我听到史蒂夫·乔布斯认为这是在IPADS上没有Flash的主要原因

4 个答案:

答案 0 :(得分:15)

在一般情况下,CPU在CPU上并不难,CPU上的Flash内容很难。人们通常不使用Flash来显示静态文本和位图,它们将它用于矢量动画和带有自定义皮肤组件的视频和RIA,并且合成所有这些矢量和渐变以及alpha通道需要CPU - 无论您使用Flash还是HTML5或Silverlight或JavaFX或其他。请随时查看this animation comparison上的演示,并查看HTML5版本的CPU使用情况与Flash版本的对比情况。操作系统和浏览器的结果差异很大,但对我来说(winXP / firefox),Flash版本使用与画布版本大致相同的CPU(~50%),同时提供的功率略高于FPS的两倍。

第二个答案专门针对视频,答案是这样的:无论您使用什么技术来显示视频,只有两件事真正影响CPU使用率:编解码器,以及它的硬件是否加速。你可以在浏览器和操作系统以及Flash / HTML5(and people have done so)上测试H264视频,你发现当视频是硬件加速时CPU很低,而当它没有时,它在Flash内外都很高。因此,没有关于Flash视频是否在CPU上很难的问题,唯一的问题是Flash视频是否使用HWA。查看链接以获取完整的详细信息,但基本上除非您使用OSX / Safari,否则Flash视频使用相同的CPU或少于其他选项。

顺便提一下,如果你还想知道为什么Flash历史上在Mac上使用的CPU数量多于PC上的CPU数量,即使对于非视频内容,请参阅here了解更多细节 - 两者都说明为什么它在过去以及为何使用Flash 10.1进行改进。快速版本是Apple为插件添加了更新更好的方式来吸引浏览器。

答案 1 :(得分:3)

如果你看看Flash的处理器利用率,它在Mac上的显着高于PC。 Flash播放器(10.1)的下一个版本将会更好,但与PC不同。

我在某处读到部分原因是视频。在Windows上,应用程序可以访问硬件加速以加快速度,在OS X上,必要的API不能供Flash使用。此外,闪存不能轻易使用多个处理器,所以它在这个意义上也是有限的。

答案 2 :(得分:3)

我想说的主要原因是做动画和其他图形计算,比如alpha合成,图形滤镜等,使用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 :(得分:0)

主要原因是Flash产品的基本要求是尽可能多地使用PC。因此,开发团队采用的方法是设计一种可以在PC硬件的最低公分母上工作的产品。在大多数情况下,这意味着没有高级视频卡的PC。

鉴于这种方法,以及缺乏严肃的竞争,Adobe没有太大的动力改变他们的战略。在新版本10中最终发生的变化是Silverlight和HTML的新竞争以及添加3d功能的愿望。

当然史蒂夫乔布斯对Flash的反对意见与其中的任何内容无关,而且实际上归结为他希望控制(和收费)视频发布到他的设备。