Режим фиксированной производительности

Выпущена : Android 11 (уровень API 30)

Устройства Android могут динамически изменять тактовую частоту в зависимости от системной нагрузки. Такое поведение полезно для экономии энергии во время работы, но может затруднить получение достоверных данных о производительности. Если вы пытаетесь определить, насколько быстро может выполняться фрагмент кода для предотвращения регрессий, или если оптимизация воспроизводима, ваши результаты не будут надежными, если они не тестируются на фиксированных тактовых частотах. При фиксированных тактовых частотах можно проводить точное A/B-тестирование производительности без влияния изменения частоты процессора.

В режиме фиксированной производительности тактовые частоты ЦП и ГП устанавливаются с верхним и нижним пределами. На более современных устройствах верхний и нижний пределы устанавливаются на одном и том же уровне, что исключает вариативность. Эта рабочая точка ЦП/ГП является специфичной для устройства. Режим фиксированной производительности не обеспечивает максимальную производительность устройства, а представляет собой более низкую и устойчивую рабочую точку. Хотя рабочая точка может поддерживаться в течение ограниченного времени, она не может поддерживаться бесконечно. Режим фиксированной производительности не отключает другие динамические параметры производительности, такие как выбор ядра. По этой причине мы рекомендуем запускать вашу рабочую нагрузку несколько раз и сравнивать только те запуски, которые используют одно и то же ядро.

Включить режим фиксированной производительности можно с помощью следующей команды adb:

adb shell cmd power set-fixed-performance-mode-enabled [true|false]

Устройство, работающее в режиме фиксированной производительности, всё равно может перегреваться, поскольку этот режим не переводит устройство в термоустойчивое состояние. Поэтому для проведения бенчмарков мы рекомендуем следующее:

  • Дождитесь, пока устройство вернется в термоустойчивое состояние, прежде чем начинать забег.
  • В процессе тестирования необходимо контролировать тепловое состояние устройства, чтобы различать влияние тестового кода и тепловые события.