标题:mac pro flash视频原因及解决方法
-------------------------------------------------------------------------------------------------------------------------------
时间:2015/2/20 10:24:27
-------------------------------------------------------------------------------------------------------------------------------
内容:
一是为什么 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 不是死在闭门造车不思进取上,而是死在了更先进的技术面前。我丝毫不怀疑,在运算能力大幅度提升的未来,基于虚拟机的跨平台方案还会卷土重来