V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
azure
V2EX  ›  MacBook

有没有同学详细的解释一下为什么macbook pro/air 播放flash 会那么发热?

  •  
  •   azure · 2012-07-24 01:11:23 +08:00 · 27609 次点击
    这是一个创建于 4524 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我现在flash就发热。 cpu proximity温度 70多度。
    但是即使我做高负荷的虚拟机+解压缩操作 CPU load average 3.5-3.8都不会超过70度。。
    一开flash温度就上去了。

    windows下也是i5 cpu为什么别人的机器就没那么热。。

    flash很吃CPU? 比虚拟机+WINRAR解压几个G的文件还要吃CPU?

    有没有同学解惑。。。
    14 条回复    2016-04-10 23:16:18 +08:00
    thcode
        1
    thcode  
       2012-07-24 01:18:41 +08:00
    倒数第二段就是答案。
    feiandxs
        2
    feiandxs  
       2012-07-24 01:23:32 +08:00
    windows下跑flash一样是狂吃cpu的货,没例外的。
    但别用mac系列本的散热和windows下许多巨无霸比,这堆巨无霸往往在散热和噪音上做的同等出色,轰隆隆的风扇保证了温度的控制……

    解压文件没多少cpu,更多的在硬盘IO上。压缩的时候倒是挺费cpu,也看压缩的文件而言。
    myang
        3
    myang  
       2012-07-24 01:29:17 +08:00
    我也疑惑很久了,我的非巨无霸上网本+xp跑flash那叫一个凉快
    virushuo
        4
    virushuo  
       2012-07-24 01:45:06 +08:00
    Jobs不是说了嘛,因为Adobe不思进取,根本不好好优化flash。他们仅以跨平台自豪,并不再乎性能和耗电量。

    iOS不支持flash绝对是苹果做过最正确的事情之一。
    kunso
        5
    kunso  
       2012-07-24 01:46:49 +08:00
    @virushuo 是的。而且感觉每次更新都是在刷存在感,升级的特性都是说什么优化性能,提高图像质量。到头来依然是烫烫烫。
    zhuang
        6
    zhuang  
       2012-07-24 02:55:21 +08:00   ❤️ 31
    楼主疑惑的应该是两个不同但相关的问题:
    一是为什么 flash@osx 会使 cpu 明显发热,但 flash@win 为什么就不那么热;
    二是同样是高 cpu 负荷的解压缩工作为什么就不热。

    先解释下问题三:
    core i 系列 cpu 有一项叫做 Turbo Boost 的单核心加速技术,可以依据功率和散热情况短时间提高单一核心的运行频率,加速时的功耗要高于无加速情况下多核心满载的功耗。
    flash 是单核心依赖严重的应用,而虚拟机和解压缩可以充分利用多核心。前者会触发加速,因而实际 cpu 功耗和发热要超过后者。

    至于 flash 的运行效率问题,只能说 @win 比 @osx 确实要好得多,这与两个系统的图形渲染架构有关。绝大多数 flash 以绘图工作为主,win 版本的 flash 解释器更接近图形渲染后端,而苹果出于安全以及全局考量,拒绝 flash 解释器介入图形渲染的流程,使得 flash 渲染需要走前级图形接口,效率上自然有差距。
    这也是 adobe 抨击苹果不合作的地方。osx 的硬件加速长期落后于 windows 也是类似的结果。

    PS
    作为一种跨平台解决方案,flash 和 java 一样,不得不向效率作出妥协。而在 v9 引入 JIT 技术之后,除了寻求深度系统集成和硬件级加速,flash 已经没有再度提高运行效率的手段了。
    至于 adobe 不思进取,看看 adobe 家其他产品吧,至于说 flash 优化不好,我想,有能力优化 的情况下,adobe 会看着 flash 从 90% 的市场份额一路狂跌而无动于衷?假如现在的 cpu 能够集成几十上百倍的矢量运算单元,可能 flash 会是一种人见人爱的技术。

    PPS
    现在 flash 唯一的阵地就是网页内嵌视频领域了,而且一直有 HTML5 video 取代 flash 的呼声。实际上二者的解码部分是一样的,区别在于,flash 不具有渲染到显卡的能力,而浏览器也没有办法介入 flash 内部,基于 flash 的视频播放必然会受图形系统的影响,而调用硬件加速在沙盒化环境中又是处处受限,前景确实惨淡。基于原生 HTML 支持的视频播放,更容易被浏览器优化,调用硬件加速也更加方便。
    所以说 flash 不是死在闭门造车不思进取上,而是死在了更先进的技术面前。我丝毫不怀疑,在运算能力大幅度提升的未来,基于虚拟机的跨平台方案还会卷土重来。
    sivacohan
        7
    sivacohan  
       2012-07-24 03:56:33 +08:00   ❤️ 1
    @zhuang 你说的非常有道理。我想感谢你。
    @Livid 为什么手机版没有感谢这个功能啊?
    cyberscorpio
        8
    cyberscorpio  
       2012-07-24 23:41:42 +08:00
    @zhuang 不太了解具体细节,但是有一点我觉得奇怪,你说 flash 在 macos 上不能充分利用硬件加速,但是 opengl 也不能用吗?后者在 macos 上应该具备硬件加速能力的吧。

    另外你说 “至于 adobe 不思进取,看看 adobe 家其他产品吧” ———— 这个问题上,我觉得比如 acrobat reader,砖坯公司做的就很臃肿迟缓,印象中砖坯除了 ps 这个发家产品之外,其余的都不咋地 (对砖坯了解不多,也许有误)。就比微软,除了 windows & office 之外,其他很多产品都是一坨屎啊。
    zhuang
        9
    zhuang  
       2012-07-25 01:49:40 +08:00   ❤️ 6
    @cyberscorpio
    我前面那个回复本意是尽量简洁地描述回答,也故意隐藏细节,因为这个问题实在过于复杂。另外 adobe/apple 以及 flash/osx 毕竟都是私有产品,我的理解也可能有误,这里我把我的理解阐述一下。


    所谓的硬件加速具体指什么,win/osx 硬件加速支持如何?

    两个方面: H.264 解码硬件加速,屏幕渲染硬件加速。
    H.264 是高清流媒体的半事实标准,高压缩比可以大幅降低网络带宽需求,代价是解码运算量大。(其他编码方式由于解码运算量小,从硬件加速中受益不明显,所以通常特指 H.264)
    win 环境通常由显卡厂商随驱动提供解码器,可供 flash 和其他播放器调用。
    osx 目前 Lion 版本未提供 H.264 硬件解码接口(QuickTime 可以调用私有 API 实现硬件解码)。
    目前网络视频流最流行的封装手段依旧是 flash 播放器,flash@osx 的性能问题主要就是缺乏硬件解码支持造成的。
    后者是现在主流操作系统图形框架的基础(compositing/hardware overlay)。这方面对于性能的影响主要是 flash 动画,不如前者明显和广泛。
    compositing/overlay 的优点在于,应用程序独享自身界面部分的显存,组合渲染由显卡硬件实现,图形界面渲染对于 cpu 的占用大幅降低,同时可以利用显卡实现大量窗口特效。
    02 年 Jaguar 就实现了 compositing 硬件加速(基于 opengl),06 年 vista 也转向了组合机制。08 年 flash v10 开始支持 win 硬件渲染,10 年 flash v10.1 支持 osx 硬件渲染。


    flash@win 和 flash@osx 到底有什么不同?

    flash 本身没有太大区别,不同在于 win/osx 的设计思想,windows 强调兼容,而 osx 硬件平台相关的,这样的区别决定了 win/osx 对于第三方 runtime 的不同态度。
    win: Hardware -> OS -> OS API / 3rd runtime -> Software
    osx: Hardware -> OS -> OS API -> 3rd runtime / Software
    flash 作为 3rd runtime 在两个平台的地位是不同的,一般来说,越接近硬件越会有好的性能。出于兼容性考虑,win 向软件开放大量硬件细节;而 osx 只允许第三方应用调用高级 API 同时隐藏硬件细节,保证了上层应用的统一性。flash 在两个平台上的性能就有了先天性差距。


    一句话总结:flash@osx 性能差的原因主要是缺少 H.264 硬件解码支持,小部分原因是图形渲染流程所致。


    ------------------
    至于产品的问题,类比汽车产业的更新换代,adobe 在核心产品上的做为不说优秀,也可以算作中规中矩。这也只是我的看法而已。
    yutify
        10
    yutify  
       2012-07-25 05:28:44 +08:00
    我的T60+fedora跑flash也很热
    ayanamist
        11
    ayanamist  
       2012-07-25 09:13:32 +08:00
    @zhuang 说的很对。在Mac上的运行可以认为是跑在虚拟机里,而Win则是直接运行。
    @cyberscorpio 你要明白Acrobat Reader是从Acrobat精简而来的,没有任何一个公司会为了一个免费的reader重新开发。而且Reader X现在启动也很快了。况且为了保证与自家商业产品兼容,从商业版本精简出一个东西也是很常见的。
    aisk
        12
    aisk  
       2012-07-25 09:27:54 +08:00
    @zhuang Linux下各种开源闭源驱动下Flash也很卡这个是Linux显卡驱动不给力还是Flash的原因?
    Miaoz
        13
    Miaoz  
       2012-07-25 10:00:23 +08:00
    感谢 @zhuang 学到东西了。
    duguying2008
        14
    duguying2008  
       2016-04-10 23:16:18 +08:00
    如果 flash 播放器上有『开启 GPU 渲染』选项,那么开启 GPU 渲染之后发热情况会缓解。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3123 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:52 · PVG 12:52 · LAX 20:52 · JFK 23:52
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.