Практическое руководство. Улучшение быстродействия цикла (Visual Basic)
Можно оптимизировать производительность цикла с помощью наиболее эффективных типов данных. Для короткого цикла, выполняющегося несколько раз, разница может быть незначительной. Но если цикл выполняется очень много раз, экономия производительности может быть существенной.
Integer и UInteger — наиболее эффективные типы данных в текущих платформах. Short, Long, UShort и ULong не столь эффективны, а при использовании типа Decimal производительность значительно ниже. Дополнительные сведения см. в разделе Числовые типы данных (Visual Basic).
Оптимизация производительности цикла For... Next
Используйте наиболее эффективный тип данных для переменной управления. В приведенном ниже примере показаны некоторые возможные варианты цикла. Абсолютные показатели времени выполнения зависят от платформы, но отношение этих показателей не меняется.
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
В первом случае требуется несколько меньше времени для выполнения, чем во втором. Однако тип Integer позволяет обрабатывать значения не больше 2 147 483 647, а UInteger — не больше 4 294 967 295. Во втором и третьем случаях можно обрабатывать большие значения, поскольку Long и Decimal принимают широкий диапазон целых чисел, но операции с ними выполняются медленнее. Возможно, при разработке потребуется выбирать между скоростью и емкостью используемых типов данных.
См. также
Задачи
Практическое руководство. Передача управления за пределы структуры управления (Visual Basic)
Практическое руководство. Повторное выполнение нескольких инструкций (Visual Basic)
Практическое руководство. Переход к следующей итерации цикла (Visual Basic)
Ссылки
Оператор For... Next (Visual Basic)
Основные понятия
Циклические структуры (Visual Basic)