※ [本文转录自 Browsers 看板 #1K-Zf3S8 ]
作者: andrew43 (讨厌有好心推文后删文者) 看板: Browsers
标题: [-Fx-] 比较 youtube HTML5及Flash的 CPU 使用率
时间: Sat Mar 7 07:37:35 2015
== 摘要 ==
Firefox @ OS X 10.10 看 Youtube 影片时,
到底要用 Flash 还是 HTML5(vp9)?
在考虑不同影片、不同播放模式及不同分辨率之下,
我比较了 Flash 和 HTML5 的 CPU 使用量。
结果指出,播放尺寸越大时,Flash 播放器的 CPU 使用明显变小。
另外,HTML5 播放的影片之分辨率越高,CPU 使用越大,但 Flash 变化不大。
懒得看下文的朋友请直接看这张图:
http://i.imgur.com/qfbHr9Z.png
和我相同使用环境的朋友参考看看。
== 前言 ==
我一直有一个疑问:
在我的电脑上看 youtube 影片时,
我应该用哪种播放器?是 HTML5(vp9)还是 Flash(H.264)?
我只使用 Firefox,感觉是 HTML5 依然比 Flash 迟顿。
为了验证我的感觉是正确的,我比较了 CPU 使用率在二种播放器的差别。
由于不同播放尺寸及不同影片分辨率可能会是二个重要的混淆因子,
所以在分析中也纳入此二项因素。
== 方法 ==
电脑:
MacBook Pro (15-inch, Mid 2010);
2.4 GHz Intel Core i5;
8 GB ram;
1680×1050 screen;
已开启自动转换显示芯片 NVIDIA GeForce GT 330M 256 MB
作业系统:
OS X 10.10.2 (14C109)
浏览器:
Firefox 36.0.1 全新 profile 并有以下额外设定(否则不能看 vp9):
media.mediasource.youtubeonly;true
media.mediasource.webm.enabled;true
media.mediasource.mp4.enabled;true
media.mediasource.enabled;true
Flash:16.0.0.305
选用三个影片(皆有 480p、720p、1080p 的 Flash 及 vp9):
https://www.youtube.com/watch?v=yeaztQK9If0
https://www.youtube.com/watch?v=M4jqk2LFWvA
https://www.youtube.com/watch?v=qw6MP5nXUJc
CPU 使用率计算方法:
开启单一影片网址后,设定好以下三个因子:
播放模式(默认、剧院及全萤幕)、
分辨率(480p、720p 及 1080p)、
播放器(开分页 https://www.youtube.com/html5 设定)。
在暂停播放的情况下把指标拉到影片开始时间。
同时,在 terminal 中下达
sleep 5 ;\
top -a -o cpu -l 60 -ncols 3 > test.log ;\
cat test.log | grep CPU\ usage ; \
tput bel
上述指令的作用是在 5 秒后开始记录 CPU 使用量到 test.log 中,
每秒记录一次并持续 60 秒。
记录的数值不是当下测量值,而是累积之平均值。
在按下 enter 后,快速地切换到 youtube 网页并按下播放。
在 1 分钟后,会发出 beep 一声,并显示测量结果。
因为是累积平均测量,所以我会记录最后一笔结果,
得到这 1 分钟的 CPU 平均使用量。
在同一个分辨率、同一个播放模式及同一个播放器的情况下,
每一个影片测进行上述测量一次。
换句话说,相同网址之影片皆测量了 9 次
(3 种播放模式 × 3 种影片分辨率)。
在测量期间,尽可能排除开启其它软件。
测量的顺序并不一定,但并没有完全随机。
== 结果 ==
请直接看这张图:
http://i.imgur.com/qfbHr9Z.png
总体比较之下,Flash player 比 HTML5 player 使用更少的 CPU。
当播放尺寸增大,或是影片的分辨率增大时,
这种趋势越来越明显。
有趣的是,Flash player 在全萤幕模式所使用的 CPU 是最少的。
这应该是 Flash player 利用显示芯片解码的关系。
我也做了一个 general mixed model,但结果就不细说了。
大概的结论如下:
1. 播放器与播放尺寸存在交互作用。
尺寸越大时,Flash 播放器的 CPU 使用明显变小。
HTML5 也有相似现象,但并不明显。
2. 播放器与影片分辨率存在交互作用。
HTML5 播放的影片之分辨率越高,使用越多的 CPU,但 Flash 变化不大。
3. 即使存在上述二个交互作用,但能解释最多变异的因子就是
“播放器”这个主效应,也就是 Flash 还是 HTML5。
== 结论 ==
以 CPU 使用率低为目标来看,
我应该继续用 Flash 看 Youtube 影片,没有疑问。