Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > Время работы программы


Автор: ana19m 21.6.2006, 18:46
Кто-нибудь знает, какая функция в С++ определяет время работы программы? 

Автор: Void 21.6.2006, 19:03
Используй clock.

Под виндами можно QueryPerformanceCounter и GetProcessTimes. 

Автор: ana19m 21.6.2006, 19:39
Такой еще вопрос: в чем функция clock время выдает? И как сделать, чтобы в секундах? 

Автор: Void 21.6.2006, 19:40
Цитата(ana19m @  21.6.2006,  21:39 Найти цитируемый пост)
в чем функция clock время выдает?

В тиках.
Цитата(ana19m @  21.6.2006,  21:39 Найти цитируемый пост)
И как сделать, чтобы в секундах?  

Делить на CLOCKS_PER_SEC. 

Автор: ana19m 21.6.2006, 20:21
Я поделила, а время возвращается - целых 23 секунды. Должно быть где-то в 100 раз меньше 

Автор: MAKCim 21.6.2006, 21:03
Цитата

Я поделила, а время возвращается - целых 23 секунды. Должно быть где-то в 100 раз меньше  

Код ? 

Автор: Void 21.6.2006, 21:26
ana19m, ты, видимо, просто вызываешь clock. А надо вызывать в начале и в конце и считать разницу. Мануал рулит. 

Автор: Rockie 22.6.2006, 17:07
Код
#include<time.h>
#include<conio.h>
#include<stdio.h>

void main(){
clock_t start, end;

start = clock();

for(int i=0;i<10000;i++)   // do something
 printf("time goes.. ");

end = clock();

printf("\n\nTime interval: %f\n",(end-start)/CLK_TCK); // time in seconds
getch();
}
 

Автор: mr.Anderson 22.6.2006, 21:45
А можно в вашем, Rockie, примере сделать, например, так:
Код

#include<time.h>
#include<conio.h>
#include<stdio.h>
#include <ctime>

void main()
{
int start, end;

start = time(0);

for(int i=0;i<10000;i++)   // do something
 printf("time goes.. ");

end = time(0);

printf("\n\nTime interval: %d\n", (end-start) );
getch();
}


Добавлено @ 21:48 
Только в таком коде очень интересно получится... "time goes" выведется аж 10000 раз... smile  

Автор: Rockie 22.6.2006, 23:17
Цитата(sim7 @ 22.6.2006,  21:45)
"time goes" выведется аж 10000 раз... smile

ну да smile на современных компах это займет несколько секунд. 

Автор: MAKCim 23.6.2006, 11:00
Цитата

Только в таком коде очень интересно получится... "time goes" выведется аж 10000 раз... 

и что тут интересного, цикл 10000 повторяется и все 

Автор: mr.Anderson 25.6.2006, 14:02
MAKCim, вы гений. smile Я знаю! Просто интересно будет видеть 10000 одинаковых строчек на экране... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)