2015-01-04 1 views
0

Я хочу использовать функцию, такую ​​как clock(), чтобы найти время выполнения определенной части кода. Но если есть несколько потоков/процессов, то будут ли те, кто будет планироваться между ними, повлиять на выход функции clock()?, используя функцию часов() (или аналогичную), чтобы найти время выполнения при наличии нескольких процессов.

Пример кода: процесс 1

int main() 
{ 
clock_t t1,t2; 
t1=clock(); 
//Long code 
t2=clock(); 
float diff ((float)t2-(float)t1); 
cout<<diff<<endl; 
system ("pause"); 
return 0; 
} 

Мой вопрос, если другой процесс получает по расписанию, а длинный код работает, делает подсчет функции синхронизации циклов, используемых для другой программы также? Если да, то какая альтернатива для получения точного времени выполнения куска кода

ответ

0

Это невозможно. Есть много других процессов, работающих рядом с вашим кодом, что повлияет на скорость выполнения (из-за планирования, когда вы укажете). Кроме того, вы сами можете использовать диск, сеть и т. Д., Поэтому время использования процессора для вашего процесса может не иметь смысла. То, что вы, возможно, захотите сделать, запустит временный анализ для программы много раз на одной и той же системе и на такой же нагрузке и в среднем возьмет на себя это.