Cra*_*tis 6 video mac google-chrome netflix macos
前几天我注意到,在我的 Retina MacBook Pro 上用 Chrome 在 Netflix 上观看电影时,当我只是在常规窗口的单个标签中观看视频时,粉丝会更快地旋转。(即。不是全屏。)
当切换到全屏模式时,大约一分钟左右,风扇就会消失。
所以我在两种模式下使用电池监视器应用程序测量了mAh,在窗口模式下测量了大约85 mAh,在全屏模式下测量了大约50 mAh。
我还没有在其他浏览器中测试。
活动监视器报告说,仅在选项卡中打开 Netflix 会导致独立显卡启动,因此我认为这不是集成显卡与独立显卡的问题。
我似乎无法确定为什么更大的观看区域和(理论上)更高质量的视频流会使用更少的系统资源。
它几乎肯定与桌面窗口合成器有关。
当您在 Web 浏览器窗口中播放视频时,更糟糕的是,在插件中,Web 浏览器必须如此呈现其页面:
当您告诉 Flash(或 Silverlight)全屏播放视频时,Flash 停止告诉 Chrome 渲染任何内容。事实上,可以暂时禁用整个合成窗口管理器,并且可能负责将图形渲染到监视器的所有其他程序都被暂时告知停止渲染(或者,也许允许它们提交绘图命令,但它们没有屏幕上的实际效果。)
非全屏时的图形管道:
浏览器和 Flash/Silverlight -> 合成窗口管理器 -> 图形硬件
全屏时的图形管道:
Flash/Silverlight -> 图形硬件
这种简化的管道减少了开销,因为正在进行的缓冲区“复制”更少,整个视频处理看起来像这样:
正是因为合成窗口管理器总是在说:“好的,视频现在是什么样子?” 并且在合成窗口管理器决定将它与所有其他合成数据(浏览器、任务栏等)一起写回到显卡之前,它必须被读回 CPU(并且可能缓冲在 RAM 中) .)
合成窗口管理器必须不断要求将视频内容传输回 CPU,因为在正常情况下,系统上唯一允许直接写入视频帧缓冲区的进程是合成窗口管理器。浏览器、视频播放器和系统上的所有其他组件都必须通过合成窗口管理器,就像位于硬件和用户空间之间的看门人或发言人。
这部分是为了启用“效果”,部分是出于安全性和稳定性的原因,因为程序无法直接破坏桌面(恶意或错误编码);合成窗口管理器不会让它。但是,当合成窗口管理器被禁用时(在 Flash 和 Silverlight 等特权程序的请求下),突然那额外的“开销”层就消失了。
Mac OS X 上使用的合成窗口管理器称为Quartz Compositor,长期以来它一直是 OS X 的一部分。Quartz Extreme是 Quartz 合成器的现代化身,它在 GPU 本身上完成我上面描述的所有操作(尽管这些操作并不是“免费”的,因为它们被卸载到 GPU;GPU 仍然消耗功率来执行这些合成步骤.)
有关程序(例如 Flash 或 Silverlight)如何获得全屏控制并暂时禁用 Quartz Compositor 的确切开发人员观点,请参阅此 Apple 开发人员文档。
长话短说: Quartz Compositor + 非常频繁的屏幕更新(视频每秒 30 到 60 次)== 高 CPU 使用率。从管道中移除 Quartz Compositor 组件,CPU 使用率会急剧下降,尤其是因为 Flash 和 Silverlight 具有硬件加速的视频渲染和视频解码。
归档时间: |
|
查看次数: |
2878 次 |
最近记录: |