诸位板友好。
继上回《[-Fx-] 比较 youtube HTML5及Flash的 CPU 使用率》
https://www.ptt.cc/bbs/Browsers/M.1425685059.A.708.html
得到许多版友的回应,所以这次再做一个类似的测试。
这次要测试的是 OS X 10.10.3 之下,
三种主流浏览器观看 YouTube H.264 (+Dash) 的 CPU 使用量。
测试的浏览器有:
- Firefox 37.0.2 + 'media.mediasource.enabled;true' [注一]
- Google Chrome 42.0.2311.90 (64-bit) + h264ify 1.0.2 [注二]
- Safari 8.0.5 (10600.5.17)
不想再看细节的板友请直接看结果:
[补充]
补上720p60和1080p60的结果。
其中 Firefox 1080p60 在测试中严重卡顿,不值观看。
主要的结果有:
1. 无论是哪种播放分辨率,Safari 都有最小的 CPU 使用率,
尤其是在全萤幕时特别明显。
这大概是 Apple 让 Safari 支援这台机器硬解的关系。
相对地,Google Chrome 和 Firefox 似乎没让硬解有太多作用。
2. Firefox 在非全萤幕的 CPU 使用率都明显高于另二种浏览器。
个人平常使用时就有这种感觉(风扇声最大声)。
3. Google Chrome 表现很线性:开大CPU大,开小CPU小。
在非全萤幕时,和 Safari 的表现接近。
虽然和上述测试无关,但使用上的心得还是值得说一些。
当我使用鼠标拉动时间轴时,Google Chrome 几乎每次都能马上从新时间点开始播放。
Safari 就没办法这么顺畅,常常要等几秒(而且头几秒还是只有音没有影)。
Firefox 也一样没办法很顺畅,而且卡顿的情况有时让我无法忍受。
长时间使用的经验告诉我,这个现象应该不是网络速度不一关系。
不过,如果不需要常拉动时间轴,那这三个浏览器都可以正常播放。
虽然没有数据,但 Safari 应该是 OS X 平台的省电一哥没错。
OS X 10.10 发表会中就介绍了几项 Safari 省电的新特色。
综合这些,出门在外想省电时,Safari 开 YouTube 应该是好选择。
以下是方法,有点细。==============================
测试前,浏览器的 profile 都已先清空,
并在 https://www.youtube.com/html5 确认过是否已开启 H.264 +Dash。
测试的影片:
https://www.youtube.com/watch?v=eP6l_woHuXE
测试的情境:
- 480P + default mode(1:1显示)
- 720P + theater mode(1:1显示)
- 1080P + full screen [注三]
电脑:
MacBook Pro (15-inch, Mid 2010);
2.4 GHz Intel Core i5;
8 GB ram;
1680×1050 screen;
OS X 10.10.3 (14D136);
已强制开启显示芯片 NVIDIA GeForce GT 330M 256 MB
CPU 使用率计算方法:
开启影片网址后,设定好所需模式。
在暂停播放的情况下把指标拉到影片开始时间。
同时,在 terminal 中下达
sleep 5 ;\
tput bel ;\
top -o cpu -l 60 -ncols 1 > test.log ;\
tput bel ;\
cat test.log | grep 'CPU usage:'
上述指令的作用是在 5 秒后开始记录 CPU 使用量到 test.log 中,
每秒记录一次并持续 60 秒。
记录的数值是瞬时测量值。
在按下 enter 后,快速地切换到 youtube 网页并按下播放。
在 1 分钟后,会发出 beep 一声,并显示 60 个测量结果。
我取出这 60 个 CPU 闲置百分率,以 100 减之即为 CPU 使用率。
我以此作为分析数据(CPU total usage)。 [注四]
在同一个播放模式进行上述测量一次。
换句话说,我相同网址之影片测量了 9 次
(3 种模式 × 3 种浏览器)。
每一次可得 60 个测值。
在测量期间,尽可能排除开启其它软件。
测量的顺序并不一定,但并没有完全随机。
在这 9 次测试中,影片拨放过程都很正常流畅,没有卡没有顿。
但我发现,每次测试后得到的 60 个测值,
会有某几个测值特别大(例如第一个总是特别大)。
这应该是 top 启动造成的。
所以我一律将 60 个测值中最大的 3 个排除。
[注一] about:config 中 media.mediasource.enabled;true 是为了看 H.264 +Dash。
[注二] 安装 h264ify 是为了看 H.264 +Dash。
[注三] 测试的电脑之萤幕分辨率仅 1680*1050,未达 Full HD。
[注四] 在测试的电脑中,如果某程序完全占用一个核,则 CPU total usage = 25%。