Gewusst wie: Verbessern der Leistung einer Schleife
Aktualisiert: November 2007
Sie können die Leistung einer Schleife optimieren, indem Sie die effizientesten Datentypen verwenden. Bei kurzen Schleifen, die nicht häufig ausgeführt werden, ergibt sich möglicherweise nur ein unwesentlicher Unterschied. Wird die Schleife jedoch viele Male ausgeführt, kann der Zugewinn an Leistung beträchtlich sein.
Integer und UInteger sind auf den aktuellen Plattformen die leistungsfähigsten Typen. Short, Long, UShort und ULong sind nicht ganz so leistungsfähig, während Decimal beträchtlich langsamer arbeitet. Weitere Informationen finden Sie unter Numerische Datentypen.
So optimieren Sie die Leistung einer For...Next-Schleife
Verwenden Sie für die Steuerungsvariable den effizientesten Datentyp. Im folgenden Beispiel werden mögliche Varianten einer Schleife vorgestellt. Die absoluten zeitlichen Werte richten sich nach der Plattform, die Laufzeitvergleiche sind jedoch auch unabhängig davon gültig.
For fastest As Integer = 0 to 1000000 ' Insert statements to execute for each value of fastest. Next fastest For notAsFast As Long = 0 to 1000000 ' Insert statements to execute for each value of notAsFast. Next notAsFast For muchSlower As Decimal = 0 to 1000000 ' Insert statements to execute for each value of muchSlower. Next muchSlower
Im ersten Fall beansprucht die Ausführung etwas weniger Zeit als im zweiten. Integer kann jedoch nur Werte bis 2.147.483.647 und UInteger nur Werte bis 4.294.967.295 verarbeiten. Im zweiten und dritten Fall können größere Werte verarbeitet werden, da sowohl Long als auch Decimal einen größeren Ganzzahlbereich akzeptieren, allerdings arbeiten diese Datentypen langsamer. Sie müssen sich bei Ihrem Design eventuell entweder für schnelle Datentypen oder für Datentypen mit hoher Kapazität entscheiden.
Siehe auch
Aufgaben
Gewusst wie: Übertragen der Steuerung aus einer Kontrollstruktur
Gewusst wie: Mehrfaches Ausführen von mehreren Anweisungen
Gewusst wie: Springen zur nächsten Iteration einer Schleife
Konzepte
Referenz
For...Next-Anweisung (Visual Basic)