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


Практическое руководство. Улучшение быстродействия цикла

Обновлен: Ноябрь 2007

Можно оптимизировать производительность цикла с помощью наиболее эффективных типов данных. Для короткого цикла, выполняющегося несколько раз, разница может быть незначительной. Но если цикл выполняется очень много раз, экономия производительности может быть существенной.

Integer и UInteger — наиболее эффективные типы данных в текущих платформах. Short, Long, UShort и ULong не столь эффективны, а при использовании типа Decimal производительность значительно ниже. Дополнительные сведения см. в разделе Числовые типы данных.

Оптимизация производительности цикла 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 принимают широкий диапазон целых чисел, но операции с ними выполняются медленнее. Возможно, при разработке потребуется выбирать между скоростью и емкостью используемых типов данных.

См. также

Задачи

Практическое руководство. Передача управления за пределы структуры управления

Практическое руководство. Повторное выполнение нескольких инструкций

Практическое руководство. Запуск нескольких операторов для каждого элемента в коллекции или массиве

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

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

Циклические структуры

Ссылки

Инструкция For... Next (Visual Basic)

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

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