Access 2002

Эффективность каждого из усовершенствований


Чем меньше результат теста, тем эффективнее предложенное нами усовершенствование.

Эффективность каждого из усовершенствований зависит от многих факторов: реального кода вашего приложения, относительной скорости работы жесткого диска и процессора вашей машины, от использования памяти и системных ресурсов Windows другим программным обеспечением, работающим параллельно с Access. Возможно, сейчас выполняется фоновый процесс, о котором вы даже не знаете, или Access и ядро базы данных (Jet, MSDE или SQL Server) осуществляют собственное внутреннее кеширование. Чтобы тестирование было как можно более точным, нужно удалить все фоновые процессы и перезагружать компьютер после каждого теста. Поскольку это нереально, мы просто еще раз напоминаем, что результаты тестирования мы привели только для сравнения. В каждом конкретном случае вы сами будете решать, имеет ли смысл воспользоваться нашими ами. И еще одно: не принимайте ничего на веру: проверьте, действительно ли каждый конкретный  повышает производительность вашего приложения.

Тест 1: Используйте функцию timeGetTime вместо Timer

Как уже упоминалось, функция Windows API timeGetTime возвращает количество миллисекунд, прошедших с начала текущего сеанса Windows. Функция VBA Timer возвращает количество секунд, прошедших с полуночи. Если вам нужно измерить время выполнения какой-либо задачи, лучше воспользоваться функцией timeGetTime, и на это имеется три причины: она точнее, дольше не сбрасывает счетчик, быстрее вызывается.

Достаточно только объявить timeGetTime в своем приложении, и ее вызов будет не сложнее вызова функции Timer. Для этого в раздел объявлений любого из своих стандартных модулей вам нужно включить следующую строку.

После такого объявления функцию timeGetTime можно вызывать из любого модуля приложения так же, как любую встроенную функцию VBA. (Просмотрите полные тестовые процедуры Testla и Testlb в модуле класса OptimnzingTests.)

Комментарии закрыты