B. Filipek, D. Bakhvalov
21.11.2019, 14:01 Uhr
21.11.2019, 14:01 Uhr
Performance-Analyse moderner CPUs
Wer seine selbstverfasste Software schneller machen will, sollte sich mit der Arbeitsweise moderner CPUs auskennen und Tricks & Kniffe kennen, die Abarbeitung des Codes zu beschleunigen.
Performance war schon immer ein Problem von Software. Allerdings kam die Lösung für Entwickler jahrzehntelang schneller als sie den Code optimieren konnten: Jede neue Prozessorgeneration brachte einen enormen Tempo-Boost, so dass anstelle anstehender Optimierungsarbeiten wieder neue Funktionen gebaut wurden. In der Folge baute die kurzzeitig optimale Performance bald wieder ab. Aber kein Problem, die neue, viel schnellere CPU kommt schon bald ...
Heute sind die Tempo-Gewinne durch eine neue CPU weitaus geringer als noch vor 20 Jahren. Wer nach mehr Performance sucht, die Optimierungen innerhalb der verwendeten Programmiersprachen und Frameworks bereits alle ausgereizt hat, muss tiefer graben. Der polnische Entwickler Bartlomiej Filipek (kurz Bartek) sagt: Wer die modernen CPUs gut kennt, kann noch so einiges an Tempo herauskitzeln.
Sein Wissen teilt Bartek in einem englischsprachigen Blog-Beitrag mit dem Titel "A Programmer’s Guide to Performance Analysis & Tuning on Modern CPUs", welchen Denis Bakhvalov verfasst hat. Dennis arbeitet im Hauptberuf bei Intel und entwickelt zusammen mit seinen Kollegen C++-Compiler. Er sagt: "Oftmals genügt das Ändern einer einzigen Zeile im Programm-Quellcode, um die Leistung zu verdoppeln. Bei der Leistungsanalyse geht es darum, wie man diese Programmzeile findet und repariert! Solche Gelegenheiten auszulassen, kann eine große Verschwendung sein."
Die vier Säulen seiner Ausführungen sind:
- Wie konfiguriert man die Maschine richtig und wie misst man die Leistung richtig?
- Welche Funktionen zur Leistungsanalyse bietet die Hardware und wie interagieren SW-Tools mit diesen?
- Die wesentliche Methoden der Leistungsanalyse.
- Wie man typische Performance-Probleme löst.
Alles Weitere lesen Sie im auf dem Blog von Bartek bereitgestellten Artikel von Denis Bakhvalov.