Programmoptimierung
Programmoptimierung
Programmoptimierung
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
Prinzipien<br />
• Everything should be made as simple as<br />
possible, but no simpler<br />
- Einstein<br />
• Sicherheitsfaktoren mit einschließen<br />
• Zwei Abschätzungen sind besser als eine<br />
(zur Überprüfung der Schätzung).<br />
3. Algorithmen und<br />
Datenstrukturen<br />
Prinzip L3: Speicherung von Zwischenergebnissen<br />
statt Neuberechnung<br />
Prinzip L4: Vorverarbeitung von Daten<br />
Prinzip L5: Teile und Herrsche<br />
Prinzip L6: Dynamisches Programmieren<br />
4. Feinoptimierung<br />
(Code Tuning)<br />
• Verbessern der Laufzeit, ohne die<br />
asymptotische Laufzeit des Algorithmus zu<br />
verändern; lediglich Konstanten werden<br />
verringert.<br />
Fallstudie: Drucker<br />
• Programm erzeugt Kommandos, um Graphiken auf<br />
einem optischen Drucker zu erzeugen.<br />
– 10 Minuten für ein kompliziertes Bild ist zu lange.<br />
• Profilierung des Programms mit 10 Bildern zeigt:<br />
– 70 % der Zeit wird für die Anforderung von<br />
Speicherplatz verwendet.<br />
• Untersuchung der Speicherplatzanforderungen:<br />
– Häufigste Größe:<br />
68.000 mal<br />
– Zweit-häufigste Größe:<br />
2.000 mal<br />
• Verbesserung: Caching<br />
– Spezielle Liste für die am meisten gebrauchte<br />
Blockgröße.<br />
– 20 extra Zeilen Quellcode => Reduktion der Laufzeit<br />
auf 45%<br />
Prinzip L7: Ausnutzung eines häufig auftretenden<br />
Falles.