Вопрос: Какой язык программирования вы предпочитаете
|
Иллюстрированный самоучитель по Visual Basic 6.0
Ch 10.htm
назад | содержание
| вперед
Оптимизация скорости работы приложения
Основной способ оптимизации скорости
работы — это оптимизация кода приложения. При этом желательно прислушаться к
рекомендациям разработчиков 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 используйте переменные уровня модуля,
поскольку они работают быстрее. При этом, правда, текст кода приложения
увеличивается за счет дублирования и становится менее читабельным и понятным.
- Для критичных по времени вычисления
случаев используйте код процедур непосредственно в месте их выполнения взамен
вызова этих процедур, который занимает определенное время. Правда при этом
необходимо помнить, что размер кода увеличивается за счет дублирования кода
процедур.
- Вместо переменных, насколько
это возможно, используйте константы, поскольку значения констант включаются
при компиляции в код приложения, а переменные каждый раз должны быть найдены
в памяти и считаны, что, конечно, занимает определенное время.
Замечание
Оптимизация кода приложения,
конечно, связана и с оптимизацией его размера. Как видно из некоторых способов
оптимизации кода, размер кода либо увеличивается, либо уменьшается при оптимизации
скорости приложения.
назад | содержание
| вперед
|
|
|