Программирование
Веб программирование

Visual Basic. Интерфейс среды разработки. Свойства проекта: Параметры компиляции. Диалоговое окно: Advanced Optimizations (Дополнительная оптимизация).

 
 

Visual Basic 6
Интерфейс среды разработки

Свойства проекта:
Параметры компиляции

Диалоговое окно:         Advanced Optimizations
(Дополнительная оптимизация)

 

Об авторских правах

Эта статья появилась в результате чтения и перевода MSDN к Visual Studio 6, сайта msdn.microsoft.com и поиска информации на эту тему в интернете.

Diamock

Сидит программист глубоко в отладке. Подходит сынишка:

- Папа, почему солнышко каждый день встает на востоке, а садится на западе?

- Ты это проверял?

- Проверял.

- Хорошо проверял?

- Хорошо.

- Работает?

- Работает.

- Каждый день работает?

- Да, каждый день.

- Тогда ради бога, сынок, ничего не трогай, ничего не меняй.

Вступление

Диалоговое окно Advanced Optimization доступно из меню Project/Project Properties вкладка Compileкнопка Advanced Optimization.

 

В диалоговом окне Advanced Optimizations можно настроить дополнительные параметры оптимизации компилятора Visual Basic.

Рисунок 1.1.Общий вид диалогового окна Advanced Optimizations

Предупреждение

Надпись

 

Рисунок 1.2. Предупреждение

 

гласит: «При использовании данных параметров оптимизации, корректная работа вашей программы не гарантируется». Соответствует ли это действительности? Конечно. Но при соблюдении определённых правил, вы можете использовать параметры оптимизации при компиляции своих программ.

Параметры оптимизации

AssumeNo Aliasing
Не использовать псевдонимы (разные имена)

 

Рисунок 1.3. Параметр оптимизации Assume No Aliasing

 

Псевдоним – имя, ссылающееся на ячейку памяти, которой присвоено другое имя.

Пример:

Sub ExempleSub(X As Integer, Y As Integer)
    X = 5
    Y = 6
End Sub
 
Sub Main()
    Dim Z As Integer
    ExempleSub Z, Z
End Sub

В примере, показано обращение к локальной переменной Z, процедуры Main– через два разных имени переменных X и Y.

По умолчанию, в компиляторе Visual Basic – параметр оптимизации Assume No Aliasing1 отключен. Использование этого параметра позволяет передавать параметры функций через регистры процессора.

В большинстве случаев, использование данного параметра не приводит к критическому завершению программы, но использовать его надо аккуратно.

RemoveArray BoundChecks
Не проверять границы размеров массивов

 

Рисунок 1.4.Параметр оптимизации Remove Array Bound Checks

 

По умолчанию Visual Basic при каждом обращении к массиву проверяет, не выходит ли индекс элемента массива за его границы.

Параметр оптимизации Remove Array Bound Checks – отключает ошибки проверки границ массива, что делает невозможным использовать объект Err и перехватить ошибку Subscript Out Of Range2; и удаляет проверку размерности массива.

При использовании этого параметра оптимизации, требуется организация собственной процедуры проверки индекса элемента массива, иначе программа завершится с критической ошибкой Access Violation3.

RemoveInteger OverflowChecks
Не выполнять проверку переполнения в операциях с целыми числами

Рисунок 1.5.Параметр оптимизации Remove Integer Overflow Checks

 

По умолчанию, Visual Basic производит проверку при выполнении операций целыми числами (типы данных Byte, Integer, Longи Currency). Если полученный результат выходит за пределы диапазона указанного типа данных – происходит ошибка Overflow4.

При выборе параметра оптимизации Remove Integer Overflow Checks – проверка отключается, и скорость вычислений увеличивается, но при возникновении ошибки в вычислениях, будет получен неверный результат.

RemoveFloating PointError Checks
Не выполнять проверку в операциях с числами с плавающей точкой

Рисунок 1.6.Параметр оптимизации Remove Floating Point Error Checks

По умолчанию, Visual Basic производит проверку при выполнении операций с плавающей точкой (типы данных Singleи Double). Если полученный результат выходит за пределы диапазона указанного типа данных – происходит ошибка.

При выборе параметра оптимизации Remove Floating Point Error Checks – проверка отключается, и скорость вычислений увеличивается, но при возникновении ошибки в вычислениях, будет получен неверный результат.

AllowUnrounded FloatingPoint Operations
Выполнять операции с числами с плавающей точкой без округления

picture_1_7 

Рисунок 1.7.Параметр оптимизации Allow Unrounded Floating Point Operations

 

По умолчанию, Visual Basic при сравнении чисел с плавающей точкой – округляет их, в зависимости от объявленного типа данных, до Single или Double.

 

При выборе параметра оптимизации Allow Unrounded Floating Point Operations – достигается более высокая точность сравнения. Это повысит скорость работы с числами с плавающей точкой, но может привести к ошибке, где возникнет более высокая точность, чем ожидалось.

Remove Safe PentiumTM FDIV Checks
Невыполнятьпроверкуоперацийна PentiumTM FDIV

picture_1_8 

Рисунок 1.8.Параметр оптимизации Remove Safe PentiumTM FDIV Checks

 

Ошибка PentiumTM FDIV – ошибка в модуле операций с плавающей точкой в оригинальных процессорах Pentium, выпускавшихся фирмой Intel в 1994 году. Ошибка появлялась при проведении деления над числами с плавающей точкой, при помощи команды процессора FDIV в некоторых случаях результат мог быть некорректным.

По умолчанию, в компиляторе Visual Basic предусмотрена проверка ошибки. При использовании параметра оптимизации – Remove Safe PentiumTM FDIV Checks, компилятор не генерирует дополнительный код, и в некоторых случаях скорость вычислений возрастает.

Заключение

Использование любого параметра дополнительной оптимизации компилятора – отключает встроенную проверку безопасности Visual Basic. Это может заметно повысить быстродействие программ, но снизит отказоустойчивость.

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

Примечания

Aliasing

Aliasing – означает доступ к области памяти с использованием разных имён и не имеет отношение к графике.

Subscript Out Of Range

Subscript Out Of Rangeобрабатываемая ошибка Visual Basic. Возникает при выходе индекса элемента массива за его границы. Например, к массиву, состоящему из 10 элементов, произошло обращение к 11-му элементу.

Access Violation

Access Violation переводиться, как «нарушение доступа». Сообщения Access Violation, можно наблюдать при возникновении ошибок сегментации.

 

Ошибка сегментации – ошибка программного обеспечения, возникающая при обращении к недоступным для записи участкам памяти.

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

В Microsoft Windows, процесс, получающий доступ к недействительным участкам памяти, создаёт исключение STATUS_ACCESS_VIOLATION.

Наиболее часто к нарушению доступа к памяти приводит ошибка Subscript Out Of Range.

Overflow

Overflow – обрабатываемая ошибка Visual Basic. Возникает при выходе значения за границы диапазона объявленного типа данных.


Есть вопросы? Спроси на нашем форуме!!
Miha [26.07.2012 22:44]

У вас xp? Помогите с картинками http://vbbook.ru/stati-na-moderacii/1342874496/ заранее спасибо!!!



Оставлять комментарии можно только зарегистрированным




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