Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структурные особенности Visual Basic.docx
Скачиваний:
44
Добавлен:
17.11.2019
Размер:
2.86 Mб
Скачать

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

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

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

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

Замечание

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