Вам, вероятно, нужно
double get_wall_time(){
struct timeval time;
if (gettimeofday(&time,NULL)){
return 0;
}
return (double)time.tv_sec + (double)time.tv_usec * .000001;
}
и использование что-то вроде
double wall0 = get_wall_time();
double cpu0 = get_cpu_time();
for(long int i = 0; i<=10000000;i++){
func1();
}
double wall1 = get_wall_time();
double cpu1 = get_cpu_time();
cout << "Wall Time = " << wall1 - wall0 << endl;
cout << "CPU Time = " << cpu1 - cpu0 << endl;
вместо
clock()
только как часы и учитывает только время, проведенное в ЦП, на основе счетчиков производительности.
но вы можете получить результат, используя функцию выше.
просто чтобы проверить ваше приложение, запустите его командой time
как time ./a.out
вывод команды времени:
real 0m5.987s
user 0m0.674s
sys 0m0.134s
и вывод пользовательских функций
Wall Time = 5.98505
CPU Time = 0.8