Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Как правильно определить время выполнения кода? - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Как правильно определить время выполнения кода?
tumanovalex Дата: Суббота, 14.02.2015, 19:23 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Попробовал поработать с таймером, определить время выполнения кода. [vba]
Код
Sub TestTimer()
      Dim TimeBeg As Date, TimeEnd As Date, TimeWork As Date, i, j, res
      TimeBeg = Timer
      For i = 0 To 100000
        res = res + 1
      Next i
      TimeEnd = Timer
      TimeWork = TimeEnd - TimeBeg
      Debug.Print TimeWork
End Sub
[/vba] в результате получаю 0:11:15.
Возникли следующие вопросы:
а) как трактовать эти значения? Это 11 милисекунд и 15 микросекунд?
б) как вывести данные в мили и микросекундах?
Файл прикрепил.
К сообщению приложен файл: TestTimer.zip (22.6 Kb)


Сообщение отредактировал tumanovalex - Суббота, 14.02.2015, 19:30
 
Ответить
СообщениеПопробовал поработать с таймером, определить время выполнения кода. [vba]
Код
Sub TestTimer()
      Dim TimeBeg As Date, TimeEnd As Date, TimeWork As Date, i, j, res
      TimeBeg = Timer
      For i = 0 To 100000
        res = res + 1
      Next i
      TimeEnd = Timer
      TimeWork = TimeEnd - TimeBeg
      Debug.Print TimeWork
End Sub
[/vba] в результате получаю 0:11:15.
Возникли следующие вопросы:
а) как трактовать эти значения? Это 11 милисекунд и 15 микросекунд?
б) как вывести данные в мили и микросекундах?
Файл прикрепил.

Автор - tumanovalex
Дата добавления - 14.02.2015 в 19:23
buchlotnik Дата: Суббота, 14.02.2015, 20:10 | Сообщение № 2
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация: 929 ±
Замечаний: 20% ±

2010, 2013, 2016 RUS / ENG
tumanovalex, здравствуйте
Timer возвращает количество секунд с начала суток - поэтому не нужно использовать формат даты. Текущий вариант нельзя никак трактовать. Корректный:[vba]
Код
Sub TestTimer()
   Dim TimeBeg#, TimeEnd#, TimeWork#, i&, res&
   TimeBeg = Timer
   For i = 1 To 1000000
     res = res + 1
   Next i
   TimeEnd = Timer
   TimeWork = Format((TimeEnd - TimeBeg) * 1000, "0.000")
   MsgBox TimeWork
End Sub
[/vba] *1000 - перевод секунд в миллисекунды, формат "0.000" отображает также и число микросекунд (дробная часть)
К сообщению приложен файл: _TestTimer.xlsm (22.7 Kb)
 
Ответить
Сообщениеtumanovalex, здравствуйте
Timer возвращает количество секунд с начала суток - поэтому не нужно использовать формат даты. Текущий вариант нельзя никак трактовать. Корректный:[vba]
Код
Sub TestTimer()
   Dim TimeBeg#, TimeEnd#, TimeWork#, i&, res&
   TimeBeg = Timer
   For i = 1 To 1000000
     res = res + 1
   Next i
   TimeEnd = Timer
   TimeWork = Format((TimeEnd - TimeBeg) * 1000, "0.000")
   MsgBox TimeWork
End Sub
[/vba] *1000 - перевод секунд в миллисекунды, формат "0.000" отображает также и число микросекунд (дробная часть)

Автор - buchlotnik
Дата добавления - 14.02.2015 в 20:10
Vostok Дата: Воскресенье, 15.02.2015, 11:49 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
[vba]
Код
Private Sub YourMacro() 'Таймер для замера времени процедуры
    Dim iTimer As Single
    iTimer = Timer     
    '------------ Здесь должен быть код Вашей программы -------------------------------------------------     
    MsgBox "Время загрузки:  " & Timer - iTimer & " сек.", vbInformation, "Информация о загрузке:"
    MsgBox "Время выполнения макроса  " & Format((Timer - iTimer) / 86400, "Long Time"), vbExclamation, ""
      
'Если Вы хотите получить время именно в секундах, то используйте первый MsgBox, если в часах, минутах и секундах, то второй.   
End Sub
[/vba]


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Воскресенье, 15.02.2015, 11:49
 
Ответить
Сообщение[vba]
Код
Private Sub YourMacro() 'Таймер для замера времени процедуры
    Dim iTimer As Single
    iTimer = Timer     
    '------------ Здесь должен быть код Вашей программы -------------------------------------------------     
    MsgBox "Время загрузки:  " & Timer - iTimer & " сек.", vbInformation, "Информация о загрузке:"
    MsgBox "Время выполнения макроса  " & Format((Timer - iTimer) / 86400, "Long Time"), vbExclamation, ""
      
'Если Вы хотите получить время именно в секундах, то используйте первый MsgBox, если в часах, минутах и секундах, то второй.   
End Sub
[/vba]

Автор - Vostok
Дата добавления - 15.02.2015 в 11:49
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!