An verschiedenen Stellen habe ich mittlerweise gelesen, dass die Verwendung von CONST bei der Übergabe von Zeichenketten an Prozeduren und Funktionen eine Geschwindigkeitssteigerung ergeben soll. Das habe ich jetzt mal getestet. Die Rede ist von einer Deklaration wie
PROCEDURE DoSomething(CONST s: ANSIString);
statt
PROCEDURE DoSomething(s: ANSIString);
Und in der Tat: Mit einem Beispielprogramm habe ich eine Effizienzsteigerung um den Faktor 3 gemessen, wenn als Zeichenkette »This is a test.« übergeben wird. Mit längeren Zeichenketten fällt der Effekt noch stärker zugunsten der CONST-Variante aus. Verwendet man CONST, hängt die verbrauchte Zeit nicht von der Länge der Zeichenkette ab. Verwendet man CONST nicht, wächst die verbrauchte Zeit mit der Länge der Zeichenkette.
Muss man also an einer übergebenen Zeichenkette in einer Prozedur oder Funktion nichts ändern, so empfiehlt es sich tatsächlich, diese als CONST zu deklarieren.
Dienstag, 1. Dezember 2009
Abonnieren
Posts (Atom)