Quellcode-Schwachstellen mit Intel VTune aufspüren

veröffentlicht von Michael Hülskötter am 7. November 2008

Ich kann mich noch gut an eine Programmieraufgabe während meines Informatikstudiums erinnern. Da haben wir geschlagene zwei Tage nach einem Winzfehler im Quellcode gesucht. Dabei handelte es sich nur um einen nicht zurückgesetzten Pointer.

Ok, das ist jetzt mehr als 15 Jahre her und wir hatten auch keine vernünftige Testumgebung zur Verfügung, aber das gute Trial-and-Error wird beim Aufspüren von Programmierfehlern immer noch gerne eingesetzt. Doch spätestens bei großen Projekten, die hunderte von Manntagen umfassen, greifen solche Ansätze nicht mehr.

Wie gut, dass es hierfür Tools wie den Intel VTune Performance Analyzer gibt, der Schwachstellen und Fehler aufspürt, was das Debuggen und Testen von Quellcode erheblich vereinfacht und beschleunigt. Hierzu bedient sich VTune verschiedener Ansätze, die bei der Fehlersuche angewandt werden:

  • Ereignis-basiertes Sampling findet Flaschenhälse und Engpässe, die sich in den Quellcode eingeschlichen haben, ohne dabei unnötigen Overhead zu generieren. Solche Ereignisse sind Fehltreffer bei Cache-Zugriffen, falsche Vorhersagen bei Funktionsaufrufen und unzureichende Busbandbreiten.
  • Der VTune Performance Analyzer identifiziert darüber hinaus exakt die Stellen innerhalb des Quellcodes, die bei der Ausführung am meisten Zeit benötigen. Damit lassen sich falsche Funktionsaufrufe und ähnliche Konstrukte relativ einfach bestimmen und wahlweise eliminieren oder optimieren.
  • Mithilfe von Call Graph werden Funktionsaufrufe grafisch dargestellt und der jeweils zugehörige kritische Pfad ermittelt. Das hilft sehr intuitiv beim Aufspüren möglicher Engpässe und Problemstellen. Außerdem ermittelt VTune auf diesem Weg zeitintensive Funktionen.
  • VTune Performance Analyzer ermittelt außerdem leistungshemmenden Quellcode auf Systemebene, indem mithilfe des Counter Monitors sämtliche Systemaktivitäten und die benötigten Ressourcen zur Laufzeit überprüft werden. Damit lässt sich beispielsweise feststellen, welche Programmteile unverhältnismäßig viel Speicher vereinnahmen.

Sehr praktisch an VTune ist seine Unabhängigkeit: Das Tool kann mit sämtlichen gängigen Compilern eingesetzt werden, also von Microsoft, Intel oder GNU, und zwar für C++, Fortran und Microsoft .NET inklusive C# und Visual Basic.

Immer noch nicht vom VTune Performance Analyzer überzeugt? Dann sollten Sie mal bei Musicmatch, Adobe, Nvidia, Yahoo oder Microsoft nachfragen. Die finden VTune nämlich sehr praktisch und wollen darauf nicht mehr verzichten. So wurden beispielsweise Microsoft Excel und den Grafiktreibern von Nvidia mehr Leistung eingehaucht.


Share/Bookmark
Kategorien : Multicore, Visual Computing Tags : ,

Trackbacks & Pingbacks
Kommentare
Beitrag kommentieren.

Sie müssen angemeldet sein um diesen Beitrag zu kommentieren. [Login | Registrieren]

(erforderlich)

(erforderlich)