有没有办法计算加载和渲染网页(前端)所消耗的电量?我在想一个用phantomjs做的"测试",例如:
- 加载网页
- 滚动到底部
并测量需要多少电力。我也许可以从CPU周期推断。但phantomjs是无头的,在真实浏览器中渲染肯定是不同的。也许不可能进行真正的测量。。但是使用索引可以比较网站。
你还有其他建议吗?
在现代处理器(任何比286更新的处理器)中,几乎不可能在内部测量这一点。内部,我指的是计数周期。这是因为处理器的不同部分根据指令在每个周期消耗不同水平的能量。
也就是说,你可以测量。在墙上和处理器之间插一个电表。这里有一个程序:
- 测量基线能源使用情况,即除了操作系统和浏览器之外没有任何运行,浏览器完全静止(即什么都不做)。你需要确保一切都处于稳定状态(SS),这意味着只有在空闲几分钟后才能开始测量
- 测量执行所需操作的使用情况。同样,您希望避免任何启动和停止工作,因此请确保在开始操作后至少15秒开始测量。停止不是问题,因为浏览器会在您完成测量后执行任何终止代码
听起来很简单,对吧?不幸的是,由于测量的性质,存在一些问题。
你还记得你的物理课(或EE课)上讲过信噪比吗?向下滚动使用的能量很小,所以信号(滚动)在噪声中很好(正常的背景过程)。这意味着你必须提取LOT的样本才能获得有用的东西。
你的浏览器启动能耗,或者任何其他需要大量处理的东西,都更容易测量(更好的信噪比)。
此外,请确保您了解底层电子产品。例如,功率是VA(电压*安培数),其中V和A都同相。我不认为这会是一个问题,因为我很确定它们正处于计算机的阶段。此外,任何一个像样的电表都能理解其中的区别。
我猜你打算为移动设备这样做。不同处理器的测量结果大致相同。这是由于不同世代以及不同制造商之间的架构差异。
祝你好运。