Graphics Reference
In-Depth Information
reich, sich ein „Optimierungsbudget“ vorzustellen, dass man zur Verfügung hat.
Schließlich entstehen höhere Kosten, wenn Sie mehr Zeit aufwenden. Die Frage
ist also: Wo können Sie mit möglichst geringem Zeitaufwand den größten Nut-
zen erzielen? Es ist offensichtlich, dass man sein Augenmerk auf Codeabschnitte
richten sollte, die am langsamsten oder am größten zu sein scheinen, aber um den
größten Nutzen aus der Optimierung zu ziehen, ist es sinnvoll, sich auf Code zu
konzentrieren, der mit wenig Aufwand erheblich verbessert werden kann.
Wenn Ihr Hauptziel z. B. darin besteht, Ihre Anwendung zu beschleunigen, ist es
vorteilhaft, mit den Schleifenrümpfen anzufangen. Immer wenn Sie die Opera-
tionen innerhalb einer Schleife beschleunigen, multipliziert sich der Effekt dieser
Verbesserung mit jedem Schleifendurchlauf. Bei Schleifen mit vielen Iteratio-
nen kann es einen großen Unterschied machen, wenn eine Operation weniger
vorhanden ist. Das gleiche Prinzip gilt für häufig aufgerufene Unterroutinen.
Wann man aufhören sollte: Einschätzen der zu erzielenden Vorteile.
Manchmal lohnt es nicht, etwas zu optimieren. Es ist z. B. verlorene Liebesmüh,
eine komplizierte, aber schnelle Sortierroutine zu schreiben, wenn nur ein Dut-
zend Elemente sortiert werden müssen. Man kann Elemente sortieren, indem
man sie zu einem sortierten Listenfeld hinzufügt und sie dann in der richtigen
Reihenfolge zurückliest. Bei vielen Elementen ist dieses Verfahren äußerst inef-
fizient, aber zum Sortieren von einigen wenigen Elementen ist es so schnell wie
jedes andere Verfahren, und der Code dafür ist bemerkenswert einfach.
Es gibt noch weitere Situationen, in denen eine Optimierung nutzlos wäre. Wenn
die Zugriffsgeschwindigkeit der Festplatte oder die Übertragungsgeschwindigkeit
im Netzwerk letzten Endes die beschränkenden Faktoren für die Ausführungs-
geschwindigkeit Ihrer Anwendung sind, bleibt Ihnen innerhalb des Codes wenig
Handlungsspielraum zur Beschleunigung Ihrer Anwendung. Untersuchen Sie dann
vor allem die Datenmengen, die über das Netz transportiert werden. Häufig gibt es
Möglichkeiten, globale Parameter nur einmal am Anfang zu übertragen und diese
aus jedem einzelnen Datensatz zu entfernen.
Auch sollten Sie sich darüber Gedanken machen, was Sie tun können, um zeitli-
che Verzögerungen weniger problematisch für die Benutzer zu machen: Sie können
Fortschrittsleisten verwenden, um den Benutzern zu vermitteln, dass das Programm
sich nicht aufgehängt hat, Daten puffern, um Zeitverzögerungen zu verringern und
die Ausführung im Hintergrund ermöglichen.
Bei der Planung neuer Projekte kann man Vorkehrungen treffen, um sich In-
formationen über die Programmnutzung zu beschaffen. Hierzu wird eine weitere
Tabelle angelegt, in die man z. B. die Verweildauer für jeden genutzten Menü-
punkt einträgt. Das erfordert nur geringen Programmieraufwand, ist aber bei der
späteren Optimierung sehr hilfreich. Wertet man diese Tabelle aus, so erkennt man
sehr schnell, wie lange und wie häufig die einzelnen Menüpunkte genutzt wurden.
Mit diesen Informationen lassen sich sehr gut Optimierungsforderungen der Nut-
zer abgleichen. Der finanzielle Aufwand zur Optimierung eines häufig genutzten
Menüpunktes wird eher akzeptiert als für einen selten genutzten.
Search WWH ::




Custom Search