发布时间:Android 11(API 级别 30)
Android 设备可以根据系统负载动态更改时钟设置。此行为对于在使用期间节省电量非常有帮助,但可能会导致难以获取可靠的性能数据。如果您尝试确定代码 fragment 的运行速度有多快以防止出现回归问题,或者如果优化可重复,那么如果未以固定的时钟速度进行测试,结果就会不可靠。借助固定的时钟,您可以准确地对性能进行 A/B 测试,而无需将 CPU 频率更改作为一项因素。
固定性能模式会设置 CPU 和 GPU 时钟的上限和下限。在较新的设备上,上限和下限将设置为同一值,从而消除差异。此 CPU/GPU 工作点是特定于设备的。固定性能模式不会产生最高设备性能,而是一个较低但更可持续的工作点。虽然工作点可以在有限的时间内维持,但无法无限期地维持。固定性能模式不会停用其他动态性能行为,例如核心选择。因此,我们建议您多次运行工作负载,并且仅比较使用相同核心的运行。
您可以使用以下 adb 命令启用固定性能模式:
adb shell cmd power set-fixed-performance-mode-enabled [true|false]以固定性能模式运行的设备可能仍会过热,因为该模式并不会使设备进入热可持续状态。因此,我们建议在运行基准测试时执行以下操作:
- 等待设备恢复到热可持续状态,然后再开始运行。
- 在测试期间监控设备的热状态,以区分基准测试代码和热事件的影响。