Как получить время выполнения функции в C ++ - PullRequest
1 голос
/ 12 марта 2011

Я пробовал некоторые коды, прибегая к помощи:

clock_t start, end;
start = clock();
//CODES GOES HERE
end = clock();
std::cout << end - start <<"\n";
std::cout << (double) (end-start)/ CLOCKS_PER_SEC;

, но время, прошедшее с результата, всегда было 0, даже с

std::cout << (double) (end-start)/ (CLOCKS_PER_SEC/1000.0 );

Не знаю почему, но когда я получаю подобноев Java: getCurrentTimeMillis () это работает хорошо.Я хочу, чтобы он показывал миллисекунды, так как, возможно, компьютер вычисляет так быстро.

Ответы [ 3 ]

1 голос
/ 12 марта 2011
#include <boost/progress.hpp>

int main()
{
    boost::progress_timer timer;
    // code to time goes here
}

Это распечатает время, необходимое для запуска main.Вы можете поместить свой код в области времени для нескольких частей, то есть { boost::progress_timer timer; ... }.

1 голос
/ 12 марта 2011

Не думаю, что гарантировано, что clock имеет достаточно высокое разрешение для профилирования вашей функции.Если вы хотите узнать, как быстро выполняется функция, вам следует запустить ее несколько раз, а не один раз, измерить общее время, которое требуется, и взять среднее значение.

0 голосов
/ 12 марта 2011
...