профилирование времени выполнения кода с использованием timepec str — время добавляется при каждом последующем вызове функции

Я делаю профилирование времени выполнения, используя 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 (), который я делаю.

Может кто-нибудь, дайте мне знать проблему в коде.
Заранее спасибо.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]