Странное вычисление времени работы программы при разных слож
От: GDV_GDV  
Дата: 18.02.04 14:45
Оценка:
Вычисление времени в миллисекундах!!!
int stopwatch()
{
SYSTEMTIME systemtime;
GetSystemTime(&systemtime);
return ((systemtime.wHour*60*60*1000)+(systemtime.wMinute*60*1000)+(systemtime.wSecond*1000)+(systemtime.wMilliseconds));
}



Вычисление 1 (вычисляет время выполнения циклов)
MS_1=stopwatch();
for(i=0;i<1000000;i++){
for(j=0;j<1000;j++){
}
}
MS_1=stopwatch()-MS_1;

Вычисление 2 (тоже самое только с вложенной операцией)
MS_2=stopwatch();
for(i=0;i<1000000;i++){
for(j=0;j<1000;j++){
per++;
}
}
MS_2=stopwatch()-MS_2;



В результате получается то что первая выполняется медленен чем вторая
MS_1 = 3500 ms.
MS_2 = 2600 ms.

у меня Celeron 2.6, MSI NEO2 865PE,(2x512 PC3200 Kingston + 2x256 PC3200 Kingston) = 1,5Gb.

Компилирую в Visual Studio .Net Standard C++. В дебаге. Консольное приложение.

Я понимаю так при выполнении for{for{}} должно времени тратится меньше чем при for{for{per++}} я прав, если они имеют одинаковые условия в приоритетах в выделении времени кванта на одинаковые ресурсы процессора, а они имеют, почему получается наоборот.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.