论坛首页 Web前端技术论坛

一则关于flash与耗能(散热)的关系的实测

浏览 9573 次
精华帖 (2) :: 良好帖 (12) :: 新手帖 (0) :: 隐藏帖 (1)
作者 正文
   发表时间:2010-07-25  

一则关于flash的耗能(散热的关系的实测

  1. 引子
    事实上,我既不是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,大吃一惊,结果就有了这篇文章。

  2. 测试目的
    谁在燃烧我的cpu,graphic card,这是个问题
        鉴于我干掉两侧flash广告产生的结果,让我有理由相信flash是个值得注意的家伙,所以我的目的就是找出谁是发热的真凶,是flash?总结计算机耗能
    (使用温度标度) 的影响 因素  ,然后能总结出一个形式化的表达
  3. 测试环境
    软件环境 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活动
  4. 约定
    H(x) 表示耗能(heat)
    f(x)
    表示是否全屏(fullscreen)
    t(x)
    表示上传下载(transfer)
    o(x)
    表示其他程序(others)
    c(x)
    表示播放器数量(count)
  5. 测试步骤
    按照一般测试的规则(具体我不知道,瞎猜的) ,固定变量,只容许单变量。
    1. 没有变量
      常量 f(x)=t(x)=o(x)=c(x)=0
      变量 条件 #无
      截图
      结果#基本温度65°
      结论 win7下桌面环境里温度为65°,高出室温35°+

    2. 改变播放器数量

      常量 非全屏,有上传下载,有若干其他程序,
      变 量 条件#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°。
    3. 改变全屏状态

      常量 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是否全屏不影响耗能
    4. 下载上传活动

      常量 非全屏,有若干其他程序,
      变 量 条件#有下载上传,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°。
      下面这图说明下载和上传与耗能的曲线走势
       
      截图 #
    5. 其他程序的影响
      常量 非全屏,没有flash对象,没有全屏,没有上传下载
      变 量 条件#包含speccy,mspaint,普通的浏览器(没有浏览含flash的页面)
      解释#
      截图 #
      结果#基本温度66°

      条件#包含speccy,没有mspaint,普通的浏览器(没有浏览含flash的页面)
      解释#
      截 图 #
      结果#基本温度64°
      结论 普通程序对耗能影响可以忽略,(虽然有2°的差距,我认为这个是噪音)
  6. 结论
    通过测试我们发现让我的电脑燃烧的主凶是flash,从结果里可以排除了其他程序、全屏、上传下载的噪音干扰。
    • flash确实是个耗能的大户
    • 是否全屏没有影响
    • 上传下载影响有限
    • 其他些小程序影响可以忽略不计
    • 从另外一个角度说明内存消耗不贡献耗能

    形式化的公式
    : H(x)=98%*c(x)+2%*t(x)+0*f(x)+0*o(x);
  7. 后记
    看来我得支持乔帮主了。
    申明:所有涉及的程序截图都是original,保证真实有效,兼历史意义,没有宣传,枪手的意图,勿反向工程我!


    不过这里有几个疑问,希望高手解答

    • display:none就是停止flash的占用了?
    • 在我理解里不显示只是显卡不工作,为什么对cpu影响如此大?
    • 在页面里script删除的意义——会刷新页面reflow,repaint吗? 删除的 script里 正在执行的程序会停止吗(这些代码应该在内存里了吧)?
    • 使用js来切换不同flash和flash自身替换自己的不同,也就是flash能自己操作自己本身不——就像汇编可以修改正在运行的自己那样(程序的自举)?

    而这测试的意义并不在于得出了什么重要的结论,而是让我认识一个测试的构成要素都有哪些?为以后积累模板
  8. 附录
    附件
  • 大小: 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
   发表时间:2010-07-25  
我也有同感,我的机子配置比较低,所以我经常把任务管理器经常开着,防止cpu占用过高死机,所以可以经常看到在打开带有flash的地方CPU利用率猛的飙升。在玩一些flash游戏也是的,开心农场什么的。
我对flash不怎么了解,只是N年前看过到说flash的图片基本都是矢量的,所以有放大无损的效果,但是由于是矢量,所以要经过大量的计算,才能交它转化成图片显示,所以造成这种原因。
0 请登录后投票
   发表时间:2010-07-25  
幻无极 写道
只是N年前看过到说flash的图片基本都是矢量的,所以有放大无损的效果,但是由于是矢量,所以要经过大量的计算,才能交它转化成图片显示,所以造成这种原因。


哦,这个就能解释全屏对温度没有影响的原因了。
0 请登录后投票
   发表时间:2010-07-27  
说一个我了解的事实:
ie9之前的版本渲染都是用的cpu,和gpu没关系,ie9开始才用了gpu开始渲染网页。
0 请登录后投票
   发表时间:2010-07-27  
应该是flash的刷新导致的吧,就算是个静态的图片,flash每秒都要刷新几十次的
0 请登录后投票
   发表时间:2010-07-27  
升级Flash至10.1就好了
0 请登录后投票
   发表时间:2010-07-28  
mycybyb 写道
应该是flash的刷新导致的吧,就算是个静态的图片,flash每秒都要刷新几十次的

我敢保证 你这话说的不对
要是Flash本身的程序不在有动作 你也停止掉鼠标动作的时候(并不是指不移动鼠标,而是Flash程序里没有对MouseMove Mouseout,Mouseover 等等事件有需要重绘界面的动作话),Flash也会保持不动,不会进行重绘.

0 请登录后投票
   发表时间:2010-07-28  
diferent 写道
mycybyb 写道
应该是flash的刷新导致的吧,就算是个静态的图片,flash每秒都要刷新几十次的

我敢保证 你这话说的不对
要是Flash本身的程序不在有动作 你也停止掉鼠标动作的时候(并不是指不移动鼠标,而是Flash程序里没有对MouseMove Mouseout,Mouseover 等等事件有需要重绘界面的动作话),Flash也会保持不动,不会进行重绘.

是的,它肯定会保持不动,不进行重绘。但不代表它没有刷新屏幕,就像游戏一样,你不动,难道FPS就是0吗
0 请登录后投票
   发表时间:2010-07-28  
mycybyb 写道
diferent 写道
mycybyb 写道
应该是flash的刷新导致的吧,就算是个静态的图片,flash每秒都要刷新几十次的

我敢保证 你这话说的不对
要是Flash本身的程序不在有动作 你也停止掉鼠标动作的时候(并不是指不移动鼠标,而是Flash程序里没有对MouseMove Mouseout,Mouseover 等等事件有需要重绘界面的动作话),Flash也会保持不动,不会进行重绘.

是的,它肯定会保持不动,不进行重绘。但不代表它没有刷新屏幕,就像游戏一样,你不动,难道FPS就是0吗

刷新屏幕不一定需要大量计算,可以从缓冲区里读
0 请登录后投票
   发表时间:2010-07-28  
这个我可以顶楼主了.我的电脑最近散热出问题,过高温度也会死机.
一般用FF浏览网页,看小说(图片式的),温度保持在70°左右.然后上youku看视频,或者玩网页版的三国杀,温度会直线上升,直到自动重启.并且我的显卡温度比较稳定,一直在75°左右徘徊.
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics