- hite
- 等级: 初级会员
- 性别:
- 文章: 94
- 积分: 90
- 来自: 杭州
|
一则关于flash的耗能(散热的关系的实测
-
引子
事实上,我既不是flash开发人员也不是乔帮主的fans,所以在html5和flash之争时,我是没有立场的。这次对flash耗能的测试完全是个倒叙的结构——现有结果,后有这个耗能的研究。起因来自我的09年5月买来的Lenovo 300G530这款鸡肋笔记本电脑。在室温30度的时候开机温度就到达五六十度,更牛逼的是我好几次玩wow副本的时候自动关机(后面知道是100℃过热保护),使用pifiform speccy测试cpu100°,经过我肉手测试,很温暖,就像冬天里的一把火。这让我对这个夏天电脑温度的特别关注,不管是浏览网页,还是运作wow,我都会开着speccy监视,而且使用机身悬空,手动风扇等多种措施,测试发现情况并没有好转。
今日,使用迅雷看看看,在非全屏的情况下,被两侧不停闪烁的“防滑文胸”的广告(两侧轮播广告的视频网站模式不知道谁先做的)惹急了,有了干掉广告的冲动,灵感于greaseMonkey,使用IE developer tools 的display:none;(delete不如firebug容易)干掉了,然后看了看speccy,大吃一惊,结果就有了这篇文章。
-
测试目的
谁在燃烧我的cpu,graphic card,这是个问题
?
鉴于我干掉两侧flash广告产生的结果,让我有理由相信flash是个值得注意的家伙,所以我的目的就是找出谁是发热的真凶,是flash?总结计算机耗能
(使用温度标度)
的影响
因素
,然后能总结出一个形式化的表达
。
-
测试环境
软件环境
|
Operating System
MS Windows 7 Ultimate 32-bit
运行程序
在ie8中迅雷看看DVD版电影《刚果惊魂》
|
|
硬件环境
|
CPU
Intel
Mobile Core 2 Duo T6400 @ 2.00GHz
Penryn 45nm Technology
RAM
2.0GB Dual-Channel DDR2 @ 332MHz 5-5-5-15
Motherboard
LENOVO
JIWA1 (U2E1)
Graphics
Generic PnP Monitor @ 1280x800
256MB GeForce 9300M GS (Lenovo)
Hard Drives
250GB Hitachi
Hitachi HTS543225L9A300 ATA Device (IDE)
Optical Drives
HL-DT-ST DVDRAM GSA-T50N ATA Device
ELBY CLONEDRIVE SCSI CdRom
Device
Audio
High Definition Audio Device
|
|
测试环境常量
|
1m网速不变
运行程序数量不变
运行程序种类不变
|
|
测试环境变量
|
flash数量
迅雷看看播放器和广告播放器
player是否全屏
下载上传活动
(option)其他程序
一般的浏览器
一些程序
|
|
测试指标项
|
温度
使用piriform speccy 测试直接映射耗能
上传下载
使用networx测试,以比特数映射cpu活动
全屏
是或者否
其他程序
简单的使用是否打开来映射cpu活动
|
|
-
约定
H(x) 表示耗能(heat)
f(x)
表示是否全屏(fullscreen)
t(x)
表示上传下载(transfer)
o(x)
表示其他程序(others)
c(x)
表示播放器数量(count)
-
测试步骤
按照一般测试的规则(具体我不知道,瞎猜的)
,固定变量,只容许单变量。
-
没有变量
常量
|
f(x)=t(x)=o(x)=c(x)=0
|
变量
|
条件
#无 截图
结果#基本温度65°
|
结论
|
win7下桌面环境里温度为65°,高出室温35°+
|
-
改变播放器数量
常量
|
非全屏,有上传下载,有若干其他程序,
|
变
量
|
条件#2个flash对象,c(x)=2;f(x)=M,t(x)=N,o(x)=P;
解释#电影播放器和广告都在 截图
#
结果#基本温度87°~
条件#1个flash对象,c(x)=2;f(x)=M,t(x)=N,o(x)=P;
解释#电影播放器存在,广告flash设置为display:none 截图
#
结果#基本温度79°
条件#0个flash对象,c(x)=2;f(x)=M,t(x)=N,o(x)=P;
解释#迅雷看看页面,没有flash 截图
#
结果#基本温度64°~
|
结论
|
忽略2个flash的区别,认为一个活动flash相当于耗能增加6~13°。
|
-
改变全屏状态
常量
|
1个flash对象,有上传下载,有若干其他程序,
|
变
量
|
条件#全屏,1个flash对象f(x)=是,c(x)=1,t(x)=N,o(x)=P;
解释#全屏播放
截
图
#
结果#基本温度79°
条件#非全屏,1个flash对象f(x)=否,c(x)=1;t(x)=N,o(x)=P;
解释#全屏播放
截
图
#
结果#基本温度79°
条件#全屏,2个flash对象f(x)=否,c(x)=2;t(x)=N,o(x)=P;
解释#全屏播放
截
图
#
结果#基本温度87°
条件#非全屏,2个flash对象f(x)=否,c(x)=2;t(x)=N,o(x)=P;
解释#全屏播放
截
图
#
结果#基本温度87°
|
结论
|
flash是否全屏不影响耗能
|
-
下载上传活动
常量
|
非全屏,有若干其他程序,
|
变
量
|
条件#有下载上传,1个flash对象;c(x)=1,f(x)=N,o(x)=P;
解释#只有下载,上传活动很小忽略 截图
#
结果#基本温度76°
条件#没有下载,1个flash对象;c(x)=1,f(x)=N,o(x)=P;
解释#没有下载,上传活动忽略 截图
#
结果#基本温度74°
条件#有下载上传,2个flash对象;c(x)=2,f(x)=N,o(x)=P;
解释#只有下载,上传活动很小忽略 截图
#
结果#基本温度87°
条件#很小下载,2个flash对象;c(x)=2,f(x)=N,o(x)=P;
解释#很小下载,上传活动忽略 截图
#
结果#基本温度79°
|
结论
|
下载影响耗能但是影响不大,100KB下载大概增温2°
在flash变动时,温度变化很明显,加上下载的影响温差达到8°。
|
下面这图说明下载和上传与耗能的曲线走势
截图
#
-
其他程序的影响
常量
|
非全屏,没有flash对象,没有全屏,没有上传下载
|
变
量
|
条件#包含speccy,mspaint,普通的浏览器(没有浏览含flash的页面)
解释# 截图
#
结果#基本温度66°
条件#包含speccy,没有mspaint,普通的浏览器(没有浏览含flash的页面)
解释#
截
图
#
结果#基本温度64°
|
结论
|
普通程序对耗能影响可以忽略,(虽然有2°的差距,我认为这个是噪音)
|
-
结论
通过测试我们发现让我的电脑燃烧的主凶是flash,从结果里可以排除了其他程序、全屏、上传下载的噪音干扰。
-
flash确实是个耗能的大户
-
是否全屏没有影响
-
上传下载影响有限
-
其他些小程序影响可以忽略不计
-
从另外一个角度说明内存消耗不贡献耗能
形式化的公式
: H(x)=98%*c(x)+2%*t(x)+0*f(x)+0*o(x);
-
后记
看来我得支持乔帮主了。
申明:所有涉及的程序截图都是original,保证真实有效,兼历史意义,没有宣传,枪手的意图,勿反向工程我!
不过这里有几个疑问,希望高手解答
。
-
display:none就是停止flash的占用了?
-
在我理解里不显示只是显卡不工作,为什么对cpu影响如此大?
-
在页面里script删除的意义——会刷新页面reflow,repaint吗?
被
删除的
script里
正在执行的程序会停止吗(这些代码应该在内存里了吧)?
-
使用js来切换不同flash和flash自身替换自己的不同,也就是flash能自己操作自己本身不——就像汇编可以修改正在运行的自己那样(程序的自举)?
而这测试的意义并不在于得出了什么重要的结论,而是让我认识一个测试的构成要素都有哪些?为以后积累模板
。
-
附录
附件
- 大小: 991.4 KB
- 大小: 466.1 KB
- 大小: 381.5 KB
- 大小: 376 KB
- 大小: 384.3 KB
- 大小: 383.6 KB
- 大小: 479.7 KB
- 大小: 493.9 KB
- 大小: 540.6 KB
- 大小: 254.7 KB
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
返回顶楼 |
|
|
- 幻无极
- 等级: 初级会员
- 性别:
- 文章: 45
- 积分: 30
- 来自: 安徽
|
我也有同感,我的机子配置比较低,所以我经常把任务管理器经常开着,防止cpu占用过高死机,所以可以经常看到在打开带有flash的地方CPU利用率猛的飙升。在玩一些flash游戏也是的,开心农场什么的。 我对flash不怎么了解,只是N年前看过到说flash的图片基本都是矢量的,所以有放大无损的效果,但是由于是矢量,所以要经过大量的计算,才能交它转化成图片显示,所以造成这种原因。
|
返回顶楼 |
|
|
- hite
- 等级: 初级会员
- 性别:
- 文章: 94
- 积分: 90
- 来自: 杭州
|
幻无极 写道 只是N年前看过到说flash的图片基本都是矢量的,所以有放大无损的效果,但是由于是矢量,所以要经过大量的计算,才能交它转化成图片显示,所以造成这种原因。
哦,这个就能解释全屏对温度没有影响的原因了。
|
返回顶楼 |
|
|
- block
- 等级: 初级会员
- 性别:
- 文章: 76
- 积分: 30
- 来自: 上海
|
说一个我了解的事实: ie9之前的版本渲染都是用的cpu,和gpu没关系,ie9开始才用了gpu开始渲染网页。
|
返回顶楼 |
|
|
- mycybyb
- 等级: 初级会员
- 性别:
- 文章: 138
- 积分: 30
- 来自: 沈阳
|
应该是flash的刷新导致的吧,就算是个静态的图片,flash每秒都要刷新几十次的
|
返回顶楼 |
|
|
- linkerlin
- 等级: 初级会员
- 性别:
- 文章: 74
- 积分: 10
- 来自: 杭州
|
升级Flash至10.1就好了
|
返回顶楼 |
|
|
- diferent
- 等级: 初级会员
- 性别:
- 文章: 107
- 积分: 30
- 来自: 喀什
|
mycybyb 写道 应该是flash的刷新导致的吧,就算是个静态的图片,flash每秒都要刷新几十次的
我敢保证 你这话说的不对
要是Flash本身的程序不在有动作 你也停止掉鼠标动作的时候(并不是指不移动鼠标,而是Flash程序里没有对MouseMove Mouseout,Mouseover 等等事件有需要重绘界面的动作话),Flash也会保持不动,不会进行重绘.
|
返回顶楼 |
|
|
- mycybyb
- 等级: 初级会员
- 性别:
- 文章: 138
- 积分: 30
- 来自: 沈阳
|
diferent 写道 mycybyb 写道 应该是flash的刷新导致的吧,就算是个静态的图片,flash每秒都要刷新几十次的
我敢保证 你这话说的不对
要是Flash本身的程序不在有动作 你也停止掉鼠标动作的时候(并不是指不移动鼠标,而是Flash程序里没有对MouseMove Mouseout,Mouseover 等等事件有需要重绘界面的动作话),Flash也会保持不动,不会进行重绘.
是的,它肯定会保持不动,不进行重绘。但不代表它没有刷新屏幕,就像游戏一样,你不动,难道FPS就是0吗
|
返回顶楼 |
|
|
- xlongbuilder
- 等级:
- 性别:
- 文章: 148
- 积分: 110
- 来自: 上海->杭州
|
mycybyb 写道 diferent 写道 mycybyb 写道 应该是flash的刷新导致的吧,就算是个静态的图片,flash每秒都要刷新几十次的
我敢保证 你这话说的不对
要是Flash本身的程序不在有动作 你也停止掉鼠标动作的时候(并不是指不移动鼠标,而是Flash程序里没有对MouseMove Mouseout,Mouseover 等等事件有需要重绘界面的动作话),Flash也会保持不动,不会进行重绘.
是的,它肯定会保持不动,不进行重绘。但不代表它没有刷新屏幕,就像游戏一样,你不动,难道FPS就是0吗
刷新屏幕不一定需要大量计算,可以从缓冲区里读
|
返回顶楼 |
|
|
- i2534
- 等级:
- 性别:
- 文章: 271
- 积分: 140
- 来自: 北京
|
这个我可以顶楼主了.我的电脑最近散热出问题,过高温度也会死机. 一般用FF浏览网页,看小说(图片式的),温度保持在70°左右.然后上youku看视频,或者玩网页版的三国杀,温度会直线上升,直到自动重启.并且我的显卡温度比较稳定,一直在75°左右徘徊.
|
返回顶楼 |
|
|