Lançado: Android 11 (nível 30 da API)
Os dispositivos Android podem mudar o relógio de forma dinâmica com base na carga do sistema. Esse comportamento é bom para economia de energia durante o uso, mas pode dificultar a coleta de dados confiáveis de performance. Se você está tentando determinar a velocidade em que um fragmento de código pode ser executado para evitar a regressão ou se uma otimização pode ser repetida, seus resultados não são confiáveis caso não tenham sido testados em velocidades fixas do relógio. Com relógios fixos, é possível realizar testes A/B precisos de performance sem que as mudanças na frequência da CPU sejam um fator.
O modo performance fixa define relógios de CPU e GPU com limites superior e inferior. Em dispositivos mais modernos, os limites superior e inferior serão definidos no mesmo ponto, removendo a variância. Esse ponto de operação da CPU/GPU é específico do dispositivo. O modo performance fixa não produz o desempenho máximo do dispositivo, mas sim um ponto de operação mais baixo e sustentável. Embora o ponto de operação possa ser mantido por um tempo limitado, ele não pode ser mantido indefinidamente. O modo performance não desativa outros comportamentos dinâmicos de performance, como a seleção de núcleo. Por esse motivo, recomendamos que você execute sua carga de trabalho várias vezes e compare apenas execuções que usam o mesmo núcleo.
Você pode ativar o modo performance fixa com o seguinte comando do adb:
adb shell cmd power set-fixed-performance-mode-enabled [true|false]Um dispositivo em execução no modo performance fixa ainda pode superaquecer, já que o modo não o coloca em um estado de temperatura sustentável. Por isso, recomendamos o seguinte para execuções de benchmark:
- Aguarde o dispositivo retornar a um estado de temperatura sustentável antes de iniciar a execução.
- Monitore o estado térmico do dispositivo durante o teste para diferenciar o impacto do código de benchmark e dos eventos térmicos.