int i = 1;
i++;
Подчет времени работы алгоритма С/С++
Код:
И нужно подсчитать вот єто...
clock_t start,finish;
float time;
int i = 1;
start=clock();
i++;
finish=clock();
time=(finish-start)/CLK_TCK;
Цитата: kilowatt
#include<time.h>
clock_t start,finish;
float time;
int i = 1;
start=clock();
i++;
finish=clock();
time=(finish-start)/CLK_TCK;
clock_t start,finish;
float time;
int i = 1;
start=clock();
i++;
finish=clock();
time=(finish-start)/CLK_TCK;
Этот метод я знаю, но увы он не работает, результат:
Код:
0.000000
Для продолжения нажмите любую клавишу . . .
Для продолжения нажмите любую клавишу . . .
Сделайте побольше число прогонов инкремента. Хотя вряд ли это даст точный результат
Хм. можно попробовать выполнить инкремент допустим 1000 раз, а потом полученное время разделить на 1000;
Цитата: kilowatt
Хм. можно попробовать выполнить инкремент допустим 1000 раз, а потом полученное время разделить на 1000;
Код:
int t=1;
clock_t start,finish;
int i;
start = clock();
for (i = 0; i < 10000000; i++)
{
t++;
}
finish = clock();
double time = (finish-start);//CLOCKS_PER_SEC;
cout << time << endl;
clock_t start,finish;
int i;
start = clock();
for (i = 0; i < 10000000; i++)
{
t++;
}
finish = clock();
double time = (finish-start);//CLOCKS_PER_SEC;
cout << time << endl;
и результат 32!
Ну посчитали вы бегемотов, что дальше то?
Цитата: Ramon
Ну посчитали вы бегемотов, что дальше то?
Вот именно чтоничего! Нужно более лучший алгоритм чем этот!
На C# сделать можно с помощью System.Diagnostic;
StopWatch st = new StapWatch();
и т.д. Но я не знаю как подключить библиоеку в С++
Код:
int i = 1;
i++;
i++;
При идеальном потоке команд любой современный процессор исполняет такие операции за 1 такт. В понимаете что при гигагерцовых частотах это время будет измеряться наносекундами?
Загрузить единицу в регистр - 1 такт, увеличить на единицу - 1 так. Итого: 2 такта.
[quote='[NightMare];296701']и результат 32![/quote]Ура! Вы собственноручно оценили квант времени в NT, который, согласно документации, равен 20 мс.
На C# сделать можно с помощью System.Diagnostic;
StopWatch st = new StapWatch();
и т.д. Но я не знаю как подключить библиоеку в С++[/QUOTE]
Подключив посчитаете другое стадо бегемотов. Смысл дури которую вы делаете не изменится.
ищи в гугле QueryPerfomanceCounter
Вот обсуждение аналогичной темы: http://www.gamedev.ru/code/forum/?id=86671