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

2012-07-24 01:11:23 +08:00
 azure
我现在flash就发热。 cpu proximity温度 70多度。
但是即使我做高负荷的虚拟机+解压缩操作 CPU load average 3.5-3.8都不会超过70度。。
一开flash温度就上去了。

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

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

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

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

iOS不支持flash绝对是苹果做过最正确的事情之一。
kunso
2012-07-24 01:46:49 +08:00
@virushuo 是的。而且感觉每次更新都是在刷存在感,升级的特性都是说什么优化性能,提高图像质量。到头来依然是烫烫烫。
zhuang
2012-07-24 02:55:21 +08:00
楼主疑惑的应该是两个不同但相关的问题:
一是为什么 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
2012-07-24 03:56:33 +08:00
@zhuang 你说的非常有道理。我想感谢你。
@Livid 为什么手机版没有感谢这个功能啊?
cyberscorpio
2012-07-24 23:41:42 +08:00
@zhuang 不太了解具体细节,但是有一点我觉得奇怪,你说 flash 在 macos 上不能充分利用硬件加速,但是 opengl 也不能用吗?后者在 macos 上应该具备硬件加速能力的吧。

另外你说 “至于 adobe 不思进取,看看 adobe 家其他产品吧” ———— 这个问题上,我觉得比如 acrobat reader,砖坯公司做的就很臃肿迟缓,印象中砖坯除了 ps 这个发家产品之外,其余的都不咋地 (对砖坯了解不多,也许有误)。就比微软,除了 windows & office 之外,其他很多产品都是一坨屎啊。
zhuang
2012-07-25 01:49:40 +08:00
@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
2012-07-25 05:28:44 +08:00
我的T60+fedora跑flash也很热
ayanamist
2012-07-25 09:13:32 +08:00
@zhuang 说的很对。在Mac上的运行可以认为是跑在虚拟机里,而Win则是直接运行。
@cyberscorpio 你要明白Acrobat Reader是从Acrobat精简而来的,没有任何一个公司会为了一个免费的reader重新开发。而且Reader X现在启动也很快了。况且为了保证与自家商业产品兼容,从商业版本精简出一个东西也是很常见的。
aisk
2012-07-25 09:27:54 +08:00
@zhuang Linux下各种开源闭源驱动下Flash也很卡这个是Linux显卡驱动不给力还是Flash的原因?
Miaoz
2012-07-25 10:00:23 +08:00
感谢 @zhuang 学到东西了。
duguying2008
2016-04-10 23:16:18 +08:00
如果 flash 播放器上有『开启 GPU 渲染』选项,那么开启 GPU 渲染之后发热情况会缓解。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/43258

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX