Veröffentlicht: Android 11 (API-Level 30)
Bei Android-Geräten kann die Taktung dynamisch an die Systemlast angepasst werden. Das ist zwar gut für den Stromverbrauch, kann aber die Erhebung zuverlässiger Leistungsdaten erschweren. Wenn Sie ermitteln möchten, wie schnell ein Codefragment zur Regressionsvermeidung ausgeführt werden kann oder ob eine Optimierung wiederholbar ist, sind die Ergebnisse nicht zuverlässig, wenn die Tests nicht mit festen Taktgeschwindigkeiten durchgeführt werden. Mit festen Taktgeschwindigkeiten können Sie genaue A/B-Tests zur Leistung durchführen, ohne dass Änderungen der CPU-Frequenz eine Rolle spielen.
Im Modus „Feste Leistung“ werden die CPU- und GPU-Taktungen mit einer Ober- und Untergrenze festgelegt. Bei neueren Geräten werden die Ober- und Untergrenze auf denselben Wert festgelegt, um Abweichungen zu vermeiden. Dieser CPU/GPU-Betriebspunkt ist gerätespezifisch. Im Modus „Feste Leistung“ wird nicht die maximale Geräteleistung erzielt, sondern ein niedrigerer, nachhaltigerer Betriebspunkt. Der Betriebspunkt kann zwar für eine begrenzte Zeit aufrechterhalten werden, aber nicht unbegrenzt. Im Modus „Feste Leistung“ werden andere dynamische Leistungsverhaltensweisen wie die Kernauswahl nicht deaktiviert. Aus diesem Grund empfehlen wir, Ihre Arbeitslast mehrmals auszuführen und nur Läufe zu vergleichen, bei denen derselbe Kern verwendet wird.
Sie können den Modus „Feste Leistung“ mit dem folgenden adb-Befehl aktivieren:
adb shell cmd power set-fixed-performance-mode-enabled [true|false]Ein Gerät, das im Modus „Feste Leistung“ ausgeführt wird, kann trotzdem überhitzen, da der Modus das Gerät nicht in einen thermisch nachhaltigen Zustand versetzt. Aus diesem Grund empfehlen wir für Benchmark-Läufe Folgendes:
- Warten Sie, bis das Gerät wieder einen thermisch nachhaltigen Zustand erreicht hat, bevor Sie den Lauf starten.
- Behalten Sie den thermischen Zustand des Geräts während des Tests im Blick, um zwischen den Auswirkungen des Benchmark-Codes und thermischen Ereignissen zu unterscheiden.