测量浏览器渲染网页消耗的电量

Posted

技术标签:

【中文标题】测量浏览器渲染网页消耗的电量【英文标题】:Measure the electricity consumed by a browser to render a webpage 【发布时间】:2015-11-30 11:14:39 【问题描述】:

有没有办法计算加载和呈现网页(前端)所消耗的电量?例如,我正在考虑使用 phantomjs 进行“测试”:

加载网页 滚动到底部

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

您还有其他建议吗?

【问题讨论】:

我想知道您为什么需要这些信息?对于您要测试的内容,肯定有更好的指标吗? 只是运行它的计算机所用的电量?监视器呢?正在使用什么样的存储?什么尺寸的电源?我不确定这是给 SO 的问题。 我想创建一个类似于developers.google.com/speed/pagespeed 的服务,但它测量前端的能源效率(因为它很容易测量你的后端,只需检查你的电费)。就像我说的那样,它可以是一个基于平均值的指数。所以是的,我只想测量浏览器呈现特定页面所需的内容。 算了,你想要达到的目标基本上是不可能的。泰勒基德的回答应该让您很好地了解在您完全控制的自己的机器上进行测量是多么困难。将其作为 Web 服务运行,仅依靠软件方法来获得准确和精确的读数是不可能的。 【参考方案1】:

在现代处理器(任何比 286 更新的处理器)中内部测量这一点几乎是不可能的。在内部,我的意思是计算周期。这是因为处理器的不同部分在每个周期消耗不同级别的能量,具体取决于指令。

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

    测量基线能源使用情况,即除了操作系统和浏览器之外没有任何运行,并且浏览器完全静态(即不做任何事情)。您需要确保一切都处于稳定状态 (SS),这意味着只有在空闲几分钟后才开始测量。 测量执行所需操作的使用情况。同样,您要避免任何启动和停止工作,因此请确保在开始操作后至少 15 秒开始测量。停止不是问题,因为浏览器会在您完成测量后执行任何终止代码。

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

您还记得讨论信噪比的物理课(或 EE 课)吗?好吧,向下滚动消耗的能量非常少,因此信号(滚动)在噪声中很好(正常的背景过程)。这意味着您必须采集 LOT 样本才能获得有用的信息。

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

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

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

祝你好运。

【讨论】:

显示器中使用的能量也很可能远远超过所需的处理能力几个数量级。 是的,如果能量监视器在计算机上(主板、电源等)并从同一个墙上插座获取能量。他应该使用一个单独的显示器,它位于墙壁插座和计算机之间。你是对的,显示器使用的能量会更大。 :-)(有没有一种方法可以测量电流并仅消耗 uA?) 非常感谢。没想到简单地测量它...这不是真的,比显示器使用比 CPU 更多的功率:blog.codinghorror.com/…(所以是的,使脚本更有效节省能源) 有趣的文章,但有点过时(2008 年)。由于新标准(例如设备睡眠状态)和新技术(例如更先进的 C 状态)的实施,有很多改进。 tangrs和我说的有点不同,就是能源使用上的不同。处理器可能使用约 30W,但滚动时的差异可能小于 10uW。功率计必须测量电流和电压。如果电压是120V,那么仪表需要使用

以上是关于测量浏览器渲染网页消耗的电量的主要内容,如果未能解决你的问题,请参考以下文章

关于浏览器性能

测量渲染时间的工具

Chrome将屏蔽部分占用电脑资源过多的网页广告

Chrome将屏蔽部分占用电脑资源过多的网页广告

网页渲染过程

web性能优化之浏览器网页渲染原理