LEADERSOFT.ru Разработка на заказ программ и сайтов
Форумы по информационным технологиям
 
Регистрация  |  Вход
left
Форумы Минимизировать
ПоискСписок форумов
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Как увели...
 Тема: Как увеличить скорость программы
 
 15.06.2007 19:52:31
All
4316 сообщения
1-ый


Тема: Как увеличить скорость программы
Как можно увеличить скорость программы?


P.S. Увеличение скорости
Автор: Вопрос 1 от 0:00:00 Источник ...
 15.06.2007 19:52:31
All
4316 сообщения
1-ый


RE: Как увеличить скорость программы
Искал как-то я в Интернете решение проблемы "Переменная высота строк в отчете". Серьезной информации по отчетам не было, нашел только решение с подсчетом символов в поле. Применять его было нельзя из-за сложного алгоритма. Самостоятельно вышел на изящное решение, что надо рисовать прямоугольник вокруг поля при обработке события отчета Print. Смотрите файл: la_report.mdb, подписка 13 от 10.10.2000. Сейчас "обкатываю" еще одно оригинальное решение на эту тему. Заглянул на всякий случай в Рунет и нашел, что один "гений" в алгоритме по рисованию поля заменил шустрый оператор if else на "новейшую мину замедленного действия" - IIF(двойной если). А "Профи" настоятельно не рекомендуют применять его в basic- программах. Даю расшифровку фразы. "Миной замедленного действия" IIF() можно назвать потому, что он значительно моложе и на 70% медленнее оператора if else, да еще при неосторожном использовании приводит к "сваливанию" программы. Это анти-решение и подсказало мне опубликовать несколько коротких фраз по оптимизации кода. Повышение производительности базы данных в процентах указано в скобках. Информация сокращена до минимума. Надеюсь Вам будет понятно, о чем идет речь, но если, что неясно - пишите.
01. Используй оператор if else, вместо IIF() [70%]
02. Используй Long, т.е. Long лучше Byte, Integer и, конечно, Variant [20%,50%]
03. Применяй If-Else, чем Switsh, Shoose [50%]
04. Лучше проверяй строку так Len(s) = 0, чем s = "" [40%]
05. Лучше инициализируй строку так s = vbNullString, чем s = "" [65%]
06. Если возможно пиши так s = "AB", чем s = "A" & "B" [85%]
07. Вставляй строку в текст так Mid$(s,3,4)="like", чем s = Left$(s,2) & "like" & Mid(s,7) [45%]
08. Сравнивай строки так If StrComp(s1,s2,vbTextCompare) =0 then, чем If Ucase(s1) = Ucase(s2) [55%]
09. Лучше используй $-функцию, т.е. Left$ лучше Left [40%]
10. Цикл For...Next работает быстрее Do...Loop [50%]
11. При обработке целых чисел пиши j=i\10, чем j=i/10 [30%]
12. Точнее объявляй объекты: as CommandButton лучше As Control, еще лучше as Object [90%]
13. Цикл For Each...Next лучше, чем цикл For...Next для семейств объектов [98%].
14. Цикл For ...Next лучше, чем цикл For Each...Next для массивов [25%].
P.S. 1. Все тесты на скорость придумали и провели для Access 2000: Кен Гетц, Пол Литвин и Майк Гилберт. За что им большое спасибо.
2. Запомните наизусть фразу из документации по VBA, самый короткий код - не самый быстрый. Есть еще предложения по оптимизации кода, их я опубликую позже.


P.S. Увеличение скорости
Автор: Виктор Конюков от 0:00:00 Источник ...
  Программирование  Microsoft Access. Файлы mdb и accdb  Тема: Как увели...
ПоискПоиск  Список форумовСписок форумов  
right