Optimisation-Hint Tool


In der Endphase von Software-Projekten muss der Quellcode oft noch optimiert werden. Dazu ist es einerseits notwendig die zeitkritischen Teile des Quellcodes herauszufinden und diesen Code anschliessend zu optimieren. Profiler helfen beim Finden der zeitkritischen Programmteile, die Optimierung ist jedoch Handarbeit.

Es soll ein "Optimisation-Hint Tool" entwickelt werden, das es erlaubt Quellcode auf eventuelle Optimierungsmöglichkeiten zu untersuchen und diese dem Benutzer mitzuteilen (Was könnte warum, wie optimiert werden). Die Vorschläge sollen sich auf Optimierungen beschränken, die nicht (vom Compiler) automatisiert durchgeführt werden (können).

Beispiele:

  • Mehrmalige Lese-/Schreibzugriffe auf eine Objektvariable innerhalb einer Schleife/Methode => könnten vermutlich mittels lokaler Variable durch einen Lese- und einen Schreibzugriff reduziert werden. Begründung: Lokale Variablen können vom Compiler in Register (schnellerer Zugriff) abgelegt werden, Objektvariablen nicht (jeweils ein Speicherzugriff notwendig).
  • Mehrfache Auswertung von Ausdrücken in Schleifen (wenn sich Teile des Ausdrucks beim Schleifendurchlauf nicht ändern). Bsp.: for(int i = 0; i < arr.length; i ++) { arr[i] = 0; }.
  • ...

Diese Liste ist nur ein Vorschlag und eigene Ideen können eingebracht werden.

Es kann bei dieser Diplomarbeit von einem bereits bestehenden Compiler (C# oder Java) ausgegangen werden.
Wünschenswert ist eine entsprechende Aufbereitung der Analyseergebnisse für den Benutzer.

Entsprechendes Know-How ist (bei Problemen/Fragen) an der Abteilung vorhanden. Siehe Kontakt für nähere Informationen!

Plattform: Java, C#
Betreuer: Dipl. Ing. Martin Rammerstorfer
Bearbeiter: Steineder Karl-Heinz
Ausgabe: Oktober 2002