Решил переписать пример из предыдущего топика дабы исключить printf ( ради чистоты эксперимента ). Вот что получилось —
#include <iostream>
extern int a = 567;
int main()
{
while(true)
{
a = a* rand() % 9999;
}
return 0;
}
PS. Уж не знаю насколько корректно так загружать проц — если кто получше предложит будет здорово.
Вот результат запуска на 2-ядерной машине ( отчетливо видно что загрузка обеих ядер резко возросла когда приложение было запущено ) — см. график ниже.
Вопрос — при чем здесь второе ядро вообще? откуда берется его загрузка?
Ведь приложение однопоточное...Неужели Windows Scheduler так часто переключает контексты и каждый раз выделяет этому приложению кванты на разных ядрах ?
НО ЗАЧЕМ ? Ведь кроме этого приложения проц почти никто не жрет в системе ( на графике видно что до запуска утилизация обеих ядер была всего несколько процентов )