Teil 5: Erkennen von Flaschenhälsen und Problemen
.Net-Anwendungen für Multi-Core optimieren
Intel VTune Performance Analyzer
VTune ist ein Analysewerkzeug (Profiler), das dabei hilft, Applikationen in Hinsicht auf die Leistung und den Durchsatz zu untersuchen. Durch die Ermittlung (Sampling) von Messwerten lassen sich Rückschlüsse auf das Verhalten der Applikation ableiten. Beim Sampling klinkt sich VTune in den Prozessablauf ein und ermittelt die jeweils aktuellen Gegebenheiten.
Mittels integrierter Performance Counter werden Leistungsinformationen gewonnen, wie beispielsweise zu Cache Misses, Interrupts oder zur Verweildauer von Prozessen in den Prozeduren. Aus den gewonnenen Leistungswerten bildet VTune graphische Übersichten wie beispielsweise die folgende Übersicht zu den Prozessen. Das Beispiel zeigt die benötigte Laufzeit (Verweildauer) von Prozessen, Modulen oder Funktionen. Durch Drill-Down lassen sich diese Werte weiter untersuchen.
Sampling over Time
Beim “Sampling over Time” im folgenden Bild lassen sich die unterschiedlichen Threads der Applikation im Vergleich zueinander untersuchen. Diese Analyse liefert auch Aussagen darüber, ob die Verteilung der Aufgaben auf die Threads zu einer gleichmäßigen Auslastung der Threads führt und wie groß der Synchronisationsaufwand zwischen ihnen ist.
Die Applikation im folgenden Bild weist große Unterschiede in den Threads auf und kann daher kaum als gut verteilt betrachtet werden. Einige der Threads haben eine Menge Arbeit zu bewältigen. Dies wird in roter Farbe dargestellt. Andere wiederum - in hellem Grün unterlegt - sind eher unterlastet.