Страница: 1 |
Страница: 1 |
Вопрос: двойной вопрос..
Добавлено: 29.09.04 17:12
Автор вопроса: ZoomerSD | ICQ: 148640473
вот представьте себе, есть довольно-таки большой код, выполнение которого занимает некоторое время, и спрашиваеться, как мне 1) узнать за сколько млсек процедура была выполнена, и 2) надо чтобы программа не вподала в ступор, продолжала выполнять действия..
всем заранее большиое спасибо!
Ответы
Всего ответов: 11
Номер ответа: 1
Автор ответа:
dNW
Вопросов: 30
Ответов: 683
Профиль | | #1
Добавлено: 29.09.04 17:15
1) Засекай время в первой и последней строчках процедуры
2) DoEvents в начале функций
Номер ответа: 2
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #2
Добавлено: 29.09.04 17:48
за 2-ое спосибо. а вот с первым сложнее, если засекать время с помощью Time, то я смогу получить только секунды, а мне нужно точнее.
Номер ответа: 3
Автор ответа:
User Unknown
Вечный Юзер!
ICQ: uu@jabber.cz
Вопросов: 120
Ответов: 3302
Профиль | | #3
Добавлено: 29.09.04 17:51
замеряй тики...
Номер ответа: 4
Автор ответа:
Pashenko
ICQ: 176176951
Вопросов: 14
Ответов: 655
Профиль | | #4
Добавлено: 29.09.04 17:53
Используй функцию Timer.
Номер ответа: 5
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #5
Добавлено: 29.09.04 20:55
GetTickCount до и после процедуры, вычитаешь, получаешь... все...
ЗЫ
Вингда - ОС типа многозадачная т.ч. время будет во многих случаях различаться, т.к. винда может в любое время твой процесс "приостановить" и отдать сэкономленое процессорное время любому другому процессу
Номер ответа: 6
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #6
Добавлено: 30.09.04 10:50
t1=timer
' Код
t2=timer
Msgbox "Код выполнялся "+CStr(t2-t1)+" сек."
Номер ответа: 7
Автор ответа:
AASoft
Вопросов: 86
Ответов: 920
Профиль | | #7
Добавлено: 30.09.04 19:08
Neco, chel. vrode ponyatno skazal, emu v MILIsekundah nado......
delaj kak sne skazal, cherez GetTickCount API
Номер ответа: 8
Автор ответа:
ZoomerSD
ICQ: 148640473
Вопросов: 135
Ответов: 270
Профиль | | #8
Добавлено: 30.09.04 20:32
насчёт GetTipCount разобрался, спасибо, а вот с первым вопросом непонятки, делал такой код:
[CODE]
Private Sub Command1_Click()
DoEvents
While Not Val(Text1.Text) = 500
Wend
End Sub
Private Sub Timer1_Timer()
Text1.Text = Val(Text1.Text) + 1
End Sub
[/CODE]
таймер с интервалом 1
по нажатии на кнопку, всё замирает
Номер ответа: 9
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #9
Добавлено: 30.09.04 20:38
0.484375 - это разве не "мили-"? По-моему это "мили"^2.
Сколько себя помню (лет в пять начал) всегда пользовался этим кодом для замера скорости выполнения алгоритмов и всегда результат мне выдавался с точностью до шестого знака.
Просто значение имеет тип t1 и t2
А DoEvents надо ставить там где у тебя прога замирает, т.е. внутри цикла.
Номер ответа: 10
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #10
Добавлено: 30.09.04 20:40
И ему не нужно "мили", ему нужно "точнее" чем Time...
Номер ответа: 11
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #11
Добавлено: 01.10.04 00:22
2Neco ф-ция таймер врет самым бессовестным образом, т.ч. не стоит доверять ей...