![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
работа с таймером
a_priori © (2008-05-22 19:48:00)Скажите, пожалуйста, мне необходимо засечь время проведения процедуры в моей проге. Так как процедура выполняется моментально, хочу провести её раз 100-1000 и засечь время. Поставила таймер. Сделала цикл. Сделал метку, в кот. выводилось бы время. Но что-то я наверно не так понимаю, т.к. не выходит.. Заранее спасибо за совет. Вот необходимая часть кода:
Timer1.Enabled:=true;
tim:=1;
for tim:=1 to 1000 do
begin
// это сама процедура, кот. повторяется 1000 раз
sS:=LabeledEdit1.Text;
xS:='x';
x0:= StrToFloat(LabeledEdit2.Text);
eps:=StrToFloat(LabeledEdit3.Text);
n:=SpinEdit3.Value;
Root;
end;
Label_vrema.Caption:=IntToStr(sec);
Timer1.Enabled:=False;
Умище (2008-05-24 14:26:00) [1]Достаточно засечь время 1 раз, но использовать функцию GetThreadTimes.
TIF (2008-05-23 19:38:00) [2]Удалено модератором
Ega23 (2008-05-23 19:25:00) [3]
> Засекает время процессора (в миллисекундах)
ужос какой...
a_priori (2008-05-23 19:24:00) [4]Да, видимо сильно забыли :) Это оно, только f здесь - ЯВНАЯ функция. а я про неявные говорю.
МистерТ (2008-05-23 19:07:00) [5]> Он не умеет раскладывать неявную функцию в ряд Тейлора
Нет, ну я конечно сильно забыл математику и матлаб,
но это разве не оно ?
http://www.mathworks.com/access/helpdesk/help/toolbox/symbolic/taylor.html
a_priori (2008-05-23 16:27:00) [6]Ну, главное, чтобы результат не замыливал глаз:) Не, матлаб не рулит. Он не умеет раскладывать неявную функцию в ряд Тейлора, а моя прога умеет. А что касается результатов времени счета других процедур, кот есть и в матлабе, и у меня, пока ещё окончательного результата не получено, нужно ещё кое над чем поработать. Если интересно, как выясню - сообщу :)
Сергей М. (2008-05-23 08:42:00) [7]
> они не одинаковы как я погляжу
А ведь и правда)
Приношу извинения - подобное форматирование кода и именование идент-ров замыливает глаз)
brother (2008-05-23 08:38:00) [8]
> .. и ТУТ ЖЕ прочитанное затирается какой-то 'х'ренью
> sS:=LabeledEdit1.Text;xS:='x';
они не одинаковы как я погляжу ;)
Loginov Dmitry (2008-05-22 21:54:00) [9]> Мне просто нужно сравнить время выполнения процедуры в моей
> проге с временем выполнения похожей в матлабе.
и каковы результаты?
Матлаб рулит?
Сергей М. (2008-05-22 20:54:00) [10]
> Это в Делфи считывается функция, которую пользователь вводит
> в форме в Edit-е
.. и ТУТ ЖЕ прочитанное затирается какой-то 'х'ренью
Цитата:
> xS:= 'x';
Сергей М. (2008-05-22 20:50:00) [11]
> нет конечно
Тогда как можно сравнивать откровенную абракадабру в Делфи с якобы НЕабракадаброй в Матлабе ?)
a_priori (2008-05-22 20:47:00) [12]Да нет конечно!:) Это в Делфи считывается функция, которую пользователь вводит в форме в Edit-е. А в матлабе без форм просто записываю функцию, для кот. будет проводится сравнение.
Сергей М. (2008-05-22 20:27:00) [13]
> // это сама процедура, кот. повторяется 1000 раз
> sS:=LabeledEdit1.Text;
> xS:='x';
Неужели ты и в Матлабе пишешь подобную абракадабру ?)
TIF (2008-05-22 20:24:00) [14]Удалено модератором
a_priori (2008-05-22 20:18:00) [15]Спасибо большое, с Gettickcount всё получилось!!!! :))))
a_priori (2008-05-22 20:09:00) [16]Да, вообще правы, от балды. Мне просто нужно сравнить время выполнения процедуры в моей проге с временем выполнения похожей в матлабе. Просто в секундах - совсем грубо, т.к. процедура-то небольшая, а нано - очень уж точно. вот от балды и взяла...
Сергей М. (2008-05-22 20:03:00) [17]
> в миллисекундах, думаю
Почему именно в мс ? Почему не в микро, не в пико, не в нано ? От балды мили взято,так что ли ?
Сергей М. (2008-05-22 20:02:00) [18]
> Поставила таймер
С этого момента максимально подробней ..
a_priori (2008-05-22 20:01:00) [19]To Сергей М: ну, в миллисекундах, думаю.
To TIF: Спасибо, бегу смотреть ссылку :)
Сергей М. (2008-05-22 19:56:00) [20]
> мне необходимо засечь время проведения процедуры в моей
> проге
С какой точностью ?