Tutorial
Optimierungen
von ThePuppetMaster | Seite 4 von 9 |
Verschachtelte Funktionen effektiv einsetzen
Dim T as String = "Hallo Test "
Dim XPos as UInteger = InStr(1, T, " ")
Print "Left: >"; Left(T, XPos - 1)
Print "Rest: >"; Mid(T, XPos + 1)
Dieser Code sucht das erste Leerzeichen und gibt dann beide Teile aus.
Wir wollen das zweite Wort kleingeschrieben ausgeben.
Dim T as String = "Hallo Test "
Dim XPos as UInteger = InStr(1, T, " ")
Print "Left: >"; Left(T, XPos - 1)
Print "Rest: >"; LCase(Mid(T, XPos + 1))
Wir möchten die Leerzeichen entfernen.
Dim T as String = "Hallo Test "
Dim XPos as UInteger = InStr(1, T, " ")
Print "Left: >"; Trim(Left(T, XPos - 1))
Print "Rest: >"; Trim(LCase(Mid(T, XPos + 1)))
Dieser Code ist zwar klein, und würde ein System so gut wie überhaupt nicht ausbremsen, jedoch kann man hier ein wenig Zeit einsparen, die in einer Summe von Optimierungen zu einer Steigerung der Ausführungsgeschwindigkeit führen kann.
Was genau ist nicht gut an dem letztem Code?
Nun .. es ist die Reihenfolge von Trim() und LCase().
Zuerst LCase()'en wir den Abgeschnittenen Text. Hierbei müssen 10 Bytes auf Gross-/Kleinschrift hin geprüft werden.
Anschließend Trim()'en wir den Text, um führende und anhängende Leerzeichen zu entfernen.
Würden wir das Ganze umdrehen, und erst Trim()'en, würde LCase() nur noch 4 Zeichen untersuchen müssen, was zu einem Geschwindigkeitsvorteil führt.
Schließlich sind Leerzeichen nicht Groß- oder klein schreibbar, und müssen sowieso entfernt werden.
Solche "kleinen" Optimierungen können durchaus merklich hervortreten, wenn es z.B. darum geht einen schnellen Parser für große Quelltexte zu schreiben. z.B. für XML oder HTML MarkUp-Code.
Zusätzliche Informationen und Funktionen | |||||||
---|---|---|---|---|---|---|---|
|
|