Поделиться через


Практическое руководство. Улучшение быстродействия цикла (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)

Практическое руководство. Переход к следующей итерации цикла (Visual Basic)

Ссылки

Оператор For... Next (Visual Basic)

Основные понятия

Циклические структуры (Visual Basic)

Другие ресурсы

Управление ходом выполнения в Visual Basic