Как в VBA узнать длительность операции в миллисекундах?
Формулировка задачи:
Выполняю ряд функций в основной функции, которая в свою очередь выполняется в цикле заголовочной функции.
Длительность выполнения заголовочной функции слишком высокая.
Замерил время выполнения всех основных функций в заголовочной - выловил ту самую основную, которая и тормозит процесс. Но когда замерил время выполнения функций, выполняющихся в тормозной основной функции - дебугер выдал мне нолики.
как измеряю время:
Вообщем когда миллисекунды за один цикл итерации складываются в 1000 итераций - это уже существенные минуты
Но я измерить эти миллисекунды не могу. Как?
Листинг программы
- нач = Time()
- ... выполняем функцию
- кон = Time()
- рез = кон - нач
- нач = кон
- Debug.Print "Время выполнения функции " & рез
Вот содержимое окошка immediate:
Этап 0 0
Этап 1 1,15740740740389E-05
Этап 2 6,94444444444553E-05
Этап 3 0
Этап 4 0
Этап 5 0
Этап 6 1,15740740740944E-05
Этап 7 1,15740740740389E-05
А это время выполнения отельных функций во 2 этапе
Начало 0
Создание_массивов_записи_БД 0
Наполнение_массивов_записи_БД 0
Обработка_пустышек_массивов_записи_БД 0
Запись_данных 0
Решение задачи: «Как в VBA узнать длительность операции в миллисекундах?»
textual
Листинг программы
- Private Declare Function GetTickCount Lib "kernel32" () As Long
- Sub Test()
- Dim X(1 To 4000) As Integer
- Randomize
- For i% = 1 To 4000
- X(i%) = 10 * Rnd()
- Next i%
- t_Start& = GetTickCount
- QuickSort X(), 1, 4000
- t_End& = GetTickCount
- Debug.Print t_End& - t_Start&
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д