一、先说清楚:这个差异是谁造成的
玩家看到的"这台电脑打游戏费电,那台不费电",拆到最后,很大一部分落在客户端代码身上。因为功耗只有两个变量:
功耗 ≈ 每帧干了多少活 × 每秒干了多少帧
这两个量,一个来自渲染和逻辑的复杂度,一个来自主循环的节流策略。都是客户端团队写的。
所以这篇文章不讲硬件选购,讲的是:同一套硬件,客户端程序员的哪些选择会让它多耗三成的电;反过来,你能做哪些事把电省下来。
先把视角定住:你不是在挑显卡,你是在控制"每帧提交多少工作、每秒提交几次"。
二、第一步永远是搞清楚谁在拖后腿
省电这件事,最怕改错地方。所以在动任何优化之前,先回答一个问题:这一帧的时间,是花在 CPU 上还是 GPU 上?
2.1 看帧时间,不看帧率
判断方法很朴素:看帧时间,不看帧率。
一台机器显示 240 fps,另一台也显示 240 fps,功耗可能差一倍,因为一个是 CPU 卡在那,一个是 GPU 卡在那。你应该用引擎自带的性能面板(Unity 的 Profiler、Unreal 的stat unit)看这几个数:
- Game 线程用了多少毫秒
- Draw / Render 线程用了多少毫秒
- GPU 用了多少毫秒
谁最大,谁就是功耗的主战场。
为什么同一帧率会有两倍的功耗差?因为"240