Иллюстрированный самоучитель по Visual Basic 6.0

Иллюстрированный самоучитель по Visual Basic 6.0


назад | содержание | вперед

Оптимизация скорости работы приложения

Основной способ оптимизации скорости работы — это оптимизация кода приложения. При этом желательно прислушаться к рекомендациям разработчиков Visual Basic 6.

  • Избегайте переменных типа variant и присваивайте соответствующие их применению типы. При использовании в выражениях переменных типа Variant теряется время на их приведение к конкретному типу в соответствии с типом выражения. Причем, необходимо иметь в виду, что при множественном описании ключевые слова As Type относятся только к одной переменной, то есть Dim А, в, с As String означает, что А и В— переменные типа variant (по умолчанию) и только с — строковая. В этом случае лучше написать Dim A As string, в As String, с As string.
  • Используйте для арифметических вычислений переменные типа Long или Integer, поскольку они, в отличие от currency, single или Double, более всего соответствуют машинному коду. В табл. 10.4 приведено ранжирование по относительной скорости типов переменных при арифметических вычислениях.

Таблица 10.4. Относительная скорость вычисления для типов переменных

Тип переменной

Относительная скорость

Long

Самая высокая скорость

Integer

Ниже чем у Long

Byte

Ниже чем у Integer

Single

Ниже чем у Byte

Double

Ниже чем у Single

Currency

Самая низкая скорость


 

  • Назначайте часто используемое свойство объекта в переменные, так как назначение и чтение переменных работает быстрее (от 10 до 20 раз). Для сравнения приведены два примера с двумя вариантами текста кода, при этом второй вариант кода более быстрый, чем первый, и в том и в другом примере.

    1. Первый пример.

    Первый вариант кода:

    For nCounter = 1 То 20

    Object(nCounter).Property = ObjectDef.Property

    Next nCounter

    Второй вариант кода:

    valProperty = ObjectDef.Property For nCounter = 1 To 20

    Object(nCounter).Property = valProperty

    Next nCounter

    2. Второй пример.

    Первый вариант кода:

    For nCounter = 1 То 20

    Object.Property = Object.Property & sValue

    Next nCounter

    Второй вариант кода:

    For nCounter = 1 To 20

    sValueAll = sValueAll & sValue

    Next nCounter

    Object.Property = sValueAll

  • Для хранения одинаковых значений в процедурах вместо переменных типа Static используйте переменные уровня модуля, поскольку они работают быстрее. При этом, правда, текст кода приложения увеличивается за счет дублирования и становится менее читабельным и понятным.
  • Для критичных по времени вычисления случаев используйте код процедур непосредственно в месте их выполнения взамен вызова этих процедур, который занимает определенное время. Правда при этом необходимо помнить, что размер кода увеличивается за счет дублирования кода процедур.
  • Вместо переменных, насколько это возможно, используйте константы, поскольку значения констант включаются при компиляции в код приложения, а переменные каждый раз должны быть найдены в памяти и считаны, что, конечно, занимает определенное время.

    Замечание

    Оптимизация кода приложения, конечно, связана и с оптимизацией его размера. Как видно из некоторых способов оптимизации кода, размер кода либо увеличивается, либо уменьшается при оптимизации скорости приложения.

 

назад | содержание | вперед