测量浏览器呈现网页所消耗的电量

Measure the electricity consumed by a browser to render a webpage

有没有办法计算加载和呈现网页(前端)所消耗的电量?例如,我正在考虑使用 phantomjs 制作的 'test':

并测量需要多少电。我也许可以从 CPU 周期推断。但是 phantomjs 是无头的,在真实浏览器中渲染肯定是不一样的。也许无法进行真正的测量..但有了索引,就可以比较网站。

您还有其他建议吗?

几乎不可能在现代处理器(比 286 更新的处理器)中进行内部测量。在内部,我的意思是计算周期。这是因为处理器的不同部分根据指令在每个周期消耗不同级别的能量。

也就是说,您可以进行测量。在墙壁和处理器之间放置一个功率计。这是一个过程:

  1. 测量基线能源使用情况,即 运行 除了 OS 和浏览器,浏览器完全静态(即什么都不做)。您需要确保一切都处于稳定状态 (SS),这意味着仅在闲置几分钟后才开始测量。
  2. 测量你想要的操作的使用情况。同样,您希望避免任何启动和停止工作,因此请确保在开始操作后至少 15 秒开始测量。停止不是问题,因为浏览器将在您完成测量后执行任何终止代码。

听起来很简单,对吧?不幸的是,由于测量的性质,存在一些陷阱。

你还记得你的物理学 类(或 E​​E 类)谈到信噪比吗?好吧,向下滚动使用的能量非常少,因此信号(滚动)完全处于噪声(正常背景过程)中。这意味着您必须采集 LOT 样本才能获得有用的信息。

您的浏览器启动能耗或任何其他使用大量处理的东西更容易测量(更好的信噪比)。

此外,请确保您了解底层电子设备。例如,功率是 VA(电压*安培数),其中 V 和 A 同相。我认为这不会成为问题,因为我很确定它们在计算机上是同步的。此外,任何体面的功率计都能理解其中的区别。

我猜您打算为移动设备执行此操作。您的测量值在处理器之间只会大致相同。这是由于代代相传、制造商与制造商之间的架构差异所致。

祝你好运。