Wir wir die Performance verbessern


Thomas Wölfer
Thomas Wölfer

14. September 2010


Ich hatte in den letzten Tagen mehrfach darauf hingewiesen, das wir die Performance der Baustatik spürbar verbessert haben. Das ist natürlich schön – aber wie macht man das eigentlich ?

Es gibt verschiedene Möglichkeiten, aber im Wesentlichen läuft es darauf hinaus, das man die Zeit misst, die die einzelnen Funktionen des Programms brauchen. Dann sucht man die Funktion die am langsamsten ist und überlegt sich, ob die benötigte Zeit “angemessen” ist, oder nicht. Wenn nicht, hat man einen Kandidaten für die Optimierung. Die kann daraus bestehen, das man einfach nur den Code ein bisschen umstellt (hauptsächlich in Fällen, in denen Funktionen extrem oft aufgerufen werden), oder auch daraus, das man tatsächlich einen völlig neuen Algorithmus verwendet.

Das wichtige ist aber immer das Messen – vor allem auch das erneute Messen nach der Änderung: Die Dinge sollen ja nicht langsamer werden…

Damit man sowas messen kann, wird das Programm nicht direkt, sondern unter der Kontrolle eines anderen Programmes gestartet. Das kontrollierende Programm, das auch die Messungen durchführt, nennt man Profiler. Davon gibt es eine ganz Reihe – in unserem konkreten Fall haben wir das Programm GlowCode verwendet. (Das übrigens wirklich erstaunlich schnell ist, wenn ich dessen Performance mit anderen Profilern vergleiche, die ich ausprobiert habe.)

Letzten Endes ist es also ganz einfach: Messen, ändern, wieder messen: Wenn es dann schneller ist – prima, sonst zurück zum Anfang.