Страница: 1 |
Вопрос: двойной вопрос.. | Добавлено: 29.09.04 17:12 |
Автор вопроса: ![]() |
вот представьте себе, есть довольно-таки большой код, выполнение которого занимает некоторое время, и спрашиваеться, как мне 1) узнать за сколько млсек процедура была выполнена, и 2) надо чтобы программа не вподала в ступор, продолжала выполнять действия..
всем заранее большиое спасибо! |
Ответы | Всего ответов: 11 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 30 Ответов: 683 |
Профиль | Цитата | #1 | Добавлено: 29.09.04 17:15 |
1) Засекай время в первой и последней строчках процедуры
2) DoEvents в начале функций |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ICQ: 148640473 Вопросов: 135 Ответов: 270 |
Профиль | Цитата | #2 | Добавлено: 29.09.04 17:48 |
за 2-ое спосибо. а вот с первым сложнее, если засекать время с помощью Time, то я смогу получить только секунды, а мне нужно точнее. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() Вечный Юзер! ICQ: uu@jabber.cz Вопросов: 120 Ответов: 3302 |
Профиль | Цитата | #3 | Добавлено: 29.09.04 17:51 |
замеряй тики... |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 176176951 Вопросов: 14 Ответов: 655 |
Профиль | Цитата | #4 | Добавлено: 29.09.04 17:53 |
Используй функцию Timer. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 29.09.04 20:55 |
GetTickCount до и после процедуры, вычитаешь, получаешь... все...
ЗЫ Вингда - ОС типа многозадачная т.ч. время будет во многих случаях различаться, т.к. винда может в любое время твой процесс "приостановить" и отдать сэкономленое процессорное время любому другому процессу ![]() |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 30.09.04 10:50 |
t1=timer
' Код t2=timer Msgbox "Код выполнялся "+CStr(t2-t1)+" сек." |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 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 Автор ответа: ![]() ![]() ![]() ![]() 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 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #9 | Добавлено: 30.09.04 20:38 |
0.484375 - это разве не "мили-"? По-моему это "мили"^2.
Сколько себя помню (лет в пять начал) всегда пользовался этим кодом для замера скорости выполнения алгоритмов и всегда результат мне выдавался с точностью до шестого знака. Просто значение имеет тип t1 и t2 А DoEvents надо ставить там где у тебя прога замирает, т.е. внутри цикла. |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 247906854 Вопросов: 133 Ответов: 882 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 30.09.04 20:40 |
И ему не нужно "мили", ему нужно "точнее" чем Time... |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 01.10.04 00:22 |
2Neco ф-ция таймер врет самым бессовестным образом, т.ч. не стоит доверять ей... |
Страница: 1 |
|