Apple Silicon: Leistungs- und Effizienzkerne – Wer macht gerade was?
Es gibt viele gute Gründe, sich Energie- und Lastenverteilung des eigenen Macs in verschiedenen Szenarien anzusehen: Wer Software entwickelt, macht sich so auf die Suche nach Bremsen und unnötigen Spitzenlasten. Webentwickler wollen beobachten, wie ihre Website Macs performt. Anwender können Leistungsbremsen oder Energiefresser aufspüren. Mac-Veteran Howard Oakley interessiert, wie Apple Silicon arbeitet und selbstständig Lasten verteilt. Er hat sich auf die Suche nach den
richtigen Werkzeugen für die CPU-Auslastung gemacht.
Was Apples Aktivitätsanzeige liefert, reicht nur für einen ersten Überblick. Dieses Programm gehört zur macOS-Ausstattung und liegt im Ordner "Dienstprogramme" und analysiert Prozessor-, RAM-, Speicher- sowie Netzwerkaktivität. Das Hauptfenster zeigt aktive Prozesse in flexibel sortierbaren Listen, bietet allerdings stets nur eine Momentaufnahme. Spezielle, über das Menü "Fenster" einblendbare Zusatzansichten bieten Verlaufsansichten für CPU (
+3) und GPU (
+4). Zwar unterscheidet Aktivitätsanzeige dabei sauber nach Performance- und Effizienzkernen, doch fehlt eine wichtige Kenngröße: die aktuelle Frequenz. Da eine Gruppe von Prozessorkernen stets eine bestimmte Taktrate hat und diese wiederum flexibel angepasst wird, ist die Aussage über die Auslastung der Kerne nur ein ungefährer Anhaltspunkt für die aktuell abgerufene Leistung (sowie deren Verteilung).
Da Apples Aktivitätsanzeige nicht die aktuelle Frequenz anzeigt, ist die CPU-Verlaufsanzeige nur bedingt aussagekräftig.
Xcode Instruments – für EntwicklerDie in Apples Entwicklungsumgebung Xcode integrierte Analysesuite "Instruments" bietet mit dem Werkzeug "CPU Profiler" eine Möglichkeit, die Aufgabenverteilung zwischen Kernen genau nachzuvollziehen. Im Nachgang lässt sich detailliert nachvollziehen, wie Aufgaben von Kern zu Kern verschoben werden. Dafür muss man allerdings eine Aufzeichnung starten, um sie im Nachhinein zu analysieren. Auch setzt Instruments eine Installation der Xcode Developer Tools voraus, sie nehmen gut 12 GByte Speicherplatz auf dem Startvolume ein. Vor allen Dingen liefern Instruments grafische Auswertungen anstatt exakter Zahlenwerte; deren Erzeugung fordert den Mac bei der Analyse deutlich. Eine exakte Lastanalyse ist somit schwierig.
Der CPU Counter in den Xcode Instruments liefert aussagekräftigere Werte, fordert aber selbst stark die Prozessorenkerne.
Powermetrics – Werteprotokoll per KommandozeileWer mit dem Terminal einigermaßen zurechtkommt, sollte stattdessen auf die Kommandozeile ausweichen, schlussfolgert Oakley. Das Programm "powermetrics" liefert exakte Messwerte zu Taktrate, Auslastung und Energieverbrauch zu jedem einzelnen CPU-Kern. Ein Vorteil: Dies fordert nur minimale Mac-Ressourcen, somit verfälscht das Analyseprogramm nicht die Messung. Als Resultat entsteht eine Textdatei mit Messwerten. Die Eingabe 'powermetrics -h' gibt Tipps für eine gezielte Anwendung. Das Tool muss mit erweiterten Rechten ausgestattet werden, weshalb ein "sudo " vorgeschaltet wird; man bestätigt durch Eingabe des Admin-Kennworts. Wie für Kommandozeilenprogramme üblich bestimmen nachgestellte Parameter, was powermetrics aufzeichnet.
Parameter für PowermetricsOption | Bedeutung | Parameter |
-o | Ziel (Dateipfad) | z. B. ~/Messwerte.txt |
-s | Erfasste Werte | cpu_power, gpu_power, ane_power […], all |
-n | Zahl der Messungen | z.B. 10 |
-i | Beobachtetes Zeitintervall (in ms) | z.B. 100 |
-f | Ausgabeformat | txt, plist |
Beispiel:
sudo powermetrics -o ~/Messwerte.txt -s cpu_power -n 10 -i 100
Wenn "cpu_power" als Sample ausgewählt ist, liefert powermetrics für jeden Kern umfangreiche Messwerte: Wie ausgelastet waren die Effizienz- und Leistungskerne (residency), und wie lange arbeiteten sie in welcher Taktrate? Dazu gibt es eine geschätzte Gesamt-Energielast, aufgeschlüsselt nach CPU, GPU sowie ANE (Neuralkerne). Oakley erzeugt aus diesen Datensammlungen in Handarbeit aussagekräftige
Diagramme, um die automatischen Lastverteilung in Apple-Silicon-Prozessoren nachzuvollziehen.