Конференция "Основная" » работа с таймером
 
  • a_priori © (22.05.08 19:48) [0]
    Скажите, пожалуйста, мне необходимо засечь время проведения процедуры в моей проге. Так как процедура выполняется моментально, хочу провести её раз 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;
  • TIF © (22.05.08 19:52) [1]
    Gettickcount (вроде так пишется :)

    Засекает время процессора (в миллисекундах)
  • TIF © (22.05.08 19:53) [2]
    Вот тут более подробно http://recursio.narod.ru/time.htm :0)

    Ещё подробнее - google,yandex&nigma
  • Сергей М. © (22.05.08 19:56) [3]

    > мне необходимо засечь время проведения процедуры в моей
    > проге


    С какой точностью ?
  • a_priori © (22.05.08 20:01) [4]
    To Сергей М: ну, в миллисекундах, думаю.
    To TIF: Спасибо, бегу смотреть ссылку :)
  • Сергей М. © (22.05.08 20:02) [5]

    > Поставила таймер


    С этого момента максимально подробней ..
  • Сергей М. © (22.05.08 20:03) [6]

    > в миллисекундах, думаю


    Почему именно в мс ? Почему не в микро, не в пико, не в нано ? От балды мили взято,так что ли ?
  • a_priori © (22.05.08 20:09) [7]
    Да, вообще правы, от балды. Мне просто нужно сравнить время выполнения процедуры в моей проге с временем выполнения похожей в матлабе. Просто в секундах - совсем грубо, т.к. процедура-то небольшая, а нано - очень уж точно. вот от балды и взяла...
  • a_priori © (22.05.08 20:18) [8]
    Спасибо большое, с Gettickcount всё получилось!!!! :))))
  • TIF © (22.05.08 20:24) [9]
    Удалено модератором
  • Сергей М. © (22.05.08 20:27) [10]

    > // это сама процедура, кот. повторяется 1000 раз
    > sS:=LabeledEdit1.Text;
    > xS:='x';


    Неужели ты и в Матлабе пишешь подобную абракадабру ?)
  • a_priori © (22.05.08 20:47) [11]
    Да нет конечно!:) Это в Делфи считывается функция, которую пользователь вводит в форме в Edit-е. А в матлабе без форм просто записываю функцию, для кот. будет проводится сравнение.
  • Сергей М. © (22.05.08 20:50) [12]

    > нет конечно


    Тогда как можно сравнивать откровенную абракадабру в Делфи с якобы НЕабракадаброй в Матлабе ?)
  • Сергей М. © (22.05.08 20:54) [13]

    > Это в Делфи считывается функция, которую пользователь вводит
    > в форме в Edit-е


    .. и ТУТ ЖЕ прочитанное затирается какой-то 'х'ренью

    Цитата:

    > xS:='x';
  • Loginov Dmitry © (22.05.08 21:54) [14]
    > Мне просто нужно сравнить время выполнения процедуры в моей
    > проге с временем выполнения похожей в матлабе.


    и каковы результаты?
    Матлаб рулит?
  • brother © (23.05.08 08:38) [15]

    > .. и ТУТ ЖЕ прочитанное затирается какой-то 'х'ренью



    > sS:=LabeledEdit1.Text;xS:='x';


    они не одинаковы как я погляжу ;)
  • Сергей М. © (23.05.08 08:42) [16]

    > они не одинаковы как я погляжу


    А ведь и правда)

    Приношу извинения - подобное форматирование кода и именование идент-ров замыливает глаз)
  • a_priori © (23.05.08 16:27) [17]
    Ну, главное, чтобы результат не замыливал глаз:) Не, матлаб не рулит. Он не умеет раскладывать неявную функцию в ряд Тейлора, а моя прога умеет. А что касается результатов времени счета других процедур, кот есть и в матлабе, и у меня, пока ещё окончательного результата не получено, нужно ещё кое над чем поработать. Если интересно, как выясню - сообщу :)
  • МистерТ (23.05.08 19:07) [18]
    > Он не умеет раскладывать неявную функцию в ряд Тейлора
    Нет, ну я конечно сильно забыл математику и матлаб,
    но это разве не оно ?
    http://www.mathworks.com/access/helpdesk/help/toolbox/symbolic/taylor.html
  • a_priori © (23.05.08 19:24) [19]
    Да, видимо сильно забыли :) Это оно, только f здесь - ЯВНАЯ функция. а я про  неявные говорю.
  • Ega23 © (23.05.08 19:25) [20]

    > Засекает время процессора (в миллисекундах)


    ужос какой...
  • TIF © (23.05.08 19:38) [21]
    Удалено модератором
  • Умище (24.05.08 14:26) [22]
    Достаточно засечь время 1 раз, но использовать функцию GetThreadTimes.
 
Конференция "Основная" » работа с таймером
Есть новые Нет новых   [134491   +8][b:0][p:0.001]