[devicelan] opt android devices into fixed performance mode. (#154016)

See also: https://developer.android.com/games/optimize/adpf/fixed-performance-mode

Should keep benchmarks more stable so A/B comparisons are appropriate without accounting for CPU/GPU throttling.
This commit is contained in:
Jonah Williams
2024-08-23 11:11:25 -07:00
committed by GitHub
parent 7f77e19f6b
commit df3d35eedb
2 changed files with 11 additions and 0 deletions

View File

@@ -128,6 +128,9 @@ abstract class Device {
/// A unique device identifier.
String get deviceId;
/// Switch the device into fixed/regular performance mode.
Future<void> toggleFixedPerformanceMode(bool enable) async {}
/// Whether the device is awake.
Future<bool> isAwake();
@@ -589,6 +592,11 @@ class AndroidDevice extends Device {
String deviceInfo = '';
int apiLevel = 0;
@override
Future<void> toggleFixedPerformanceMode(bool enable) async {
await shellExec('cmd', <String>['power', 'set-fixed-performance-mode-enabled', if (enable) 'true' else 'false']);
}
/// Whether the device is awake.
@override
Future<bool> isAwake() async {

View File

@@ -1311,6 +1311,8 @@ class PerfTest {
late Device selectedDevice;
selectedDevice = device ?? await devices.workingDevice;
await selectedDevice.unlock();
await selectedDevice.toggleFixedPerformanceMode(true);
final String deviceId = selectedDevice.deviceId;
final String? localEngine = localEngineFromEnv;
final String? localEngineHost = localEngineHostFromEnv;
@@ -1415,6 +1417,7 @@ class PerfTest {
} finally {
await resetManifest();
await resetPlist();
await selectedDevice.toggleFixedPerformanceMode(false);
}
final Map<String, dynamic> data = json.decode(