2012-06-18 3 views
10

Я искал, но не могу найти эквивалент функции matlab tic/toc, чтобы просто отображать на консоли, сколько времени потребовалось программе для ее обработки. (В идеале я хотел бы поставить ТЭП (запуск таймера) и TOC (конец таймера) в любом месте программы.matlab tic toc эквивалент в C++

Любые предложения?

+1

Это не имеет ничего общего с компиляции. – Dennis

ответ

17

Я нашел то, что искал. включает:

#include <ctime> 

Тогда в начале:

time_t tstart, tend; 
tstart = time(0); 

И, наконец, до конца:

tend = time(0); 
cout << "It took "<< difftime(tend, tstart) <<" second(s)."<< endl; 
+0

Точность для времени() - секунды, в то время как тик и ток MATLAB - миллисекунды или лучше. – NoahR

+1

@NoahR 'difftime()' возвращает 'double', что дает лучшую точность, чем 1 с. Фактическая точность зависит от системы, поскольку она, вероятно, также находится в MATLAB. – glglgl

+0

В разделе C используйте '#include '. Но обратите внимание, что, по крайней мере, под Windows, для меня он по-прежнему возвращает полные секунды, хотя тип возврата двойной. Часть миллисекунд равна нулю. –

3

Если вы на Linux вы можете использовать функцию

clock_gettime(); 

если на окна попробовать

QueryPerformanceCounter() 

Вы можете Google этих конкретных деталей реализации. другие операционные системы я не знаю, о. Есть, без сомнения, много других способов достижения То же самое, но если вы не получите никаких других ответов, это разумное место для начала.

Смежные вопросы