Некоторые методы оптимизации скорости программ на VB и VBA (18.06.2013). Печать
2013 - Июнь
18.06.2013 20:15
Save & Share
Изучая опубликованные методы оптимизации кода от Франциско Балена (декабрь 1997 года, журнал неизвестен), выделил рациональные методы на сегодняшний день. Применимо к VB и VBA; но есть и явления, от языка не зависящие:

- где возможно, преобразовать Double в Long. Но Double - это прежде всего точность;
- намного быстрее обращаться к переменной, чем к элементу на форме;
- не использовать строки фиксированной длины;
- Boolean в операциях сравнения работает быстрее;
- использование ASCII-кода при сравнении намного быстрее использования самого символа, заключенного в кавычки;
- всегда сбрасывать форму в Nothing после ее выгрузки: полное освобождение памяти от ее ресурсов и правильная инициализация при последующем вызове;
- сделать элемент невидимым, сделать необходимые операции, сделать его видимым. Такой алгоритм предотвратит его повторные перерисовывания и моргание;
- функция DoEvents используется для обновления окна программы при выполнении больших циклов. Но сильно замедляет работу цикла, рекомендуется ее вызывать через каждые 100-1000 проходов цикла, а то и реже;
- аргументы Integer и Long в процедурах будут передаваться быстрее при объявлении ByVal, остальные нужно передавать ByRef (по умолчанию), особенно - строковые значения;
- стандартный блок If с Else всегда быстрее, чем ElseIf, iIf;
- для реализации задержки в программе нужно использовать API-функцию Sleep;
- директива With работает быстрее за счету уменьшения числа точек в строках;
- переменные типа Public всегда быстрее свойств Let/Get;
- для перебора коллекций For Each быстрее For примерно в 10 раз.
Обновлено ( 23.06.2020 18:33 )