Я делаю профилирование времени выполнения, используя timepec str.
Мой код, как показано ниже.
void foo() {
timespec tS;
tS.tv_sec = 0;
tS.tv_nsec = 0;
clock_settime(CLOCK_PROCESS_CPUTIME_ID, &tS);
------Some code execution-----
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &tS);
std::cout << "Time taken is: "<<(float)(tS.tv_sec)<<" sec, "<<(float)(tS.tv_nsec)/1000000<<" msec"<< endl;
}
int main(){
foo();
foo();
return 0;
}
Когда я выполняю приведенный выше код, я получаю этот результат.
Требуемое время: 0 сек, 5.92205 мсек.
Требуемое время: 0 с, 9,35453 мс
Почему второй прогон кода всегда дает больше времени.
И ничего не меняется с точки зрения строк кода, выполняемых во втором вызове.
Я не уверен, но думаю, что время добавляется в каждый вызов foo (), который я делаю.
Может кто-нибудь, дайте мне знать проблему в коде.
Заранее спасибо.
Задача ещё не решена.
Других решений пока нет …