://blog. ypro.tech
Użycie procesorów logicznych przez uruchomione wątki
2021-10-18

Po opublikowaniu wpisu Użycie procesorów logicznych przez uruchomione zadania postanowiłem zbadać czy skorzystanie bezpośrednio z wątków (System.Threading.Thread) zamiast zadań (System.Threading.Tasks.Task) będzie miało wpływ na wyniki eksperymentu. Po przeprowadzeniu pomiarów okazało się (zgodnie z oczekiwaniami), że nie ma to żadnego znaczenia. Jednak podczas pomiarów zastosowałem dodatkowo odczyt obciążenia procesora przez uruchomioną aplikację konsolową z użyciem Sysinternals Process Explorer.

Poniżej wyniki dla procesora i5 10-tej generacji (6 rdzeni, 12 wątków).

Obciążenie MZ - całkowite obciążenie procesowa wg Menedżera zadań systemu Windows Obciążenie PE – obciążenie procesora przez aplikację wg Process Explorer

liczba tasków Obciążenie MZ Obciążenie PE
1 13% 8,3%
2 25% 16,6%
3 36% 24,9%
4 48% 33,3%
5 58% 41,6%
6 69% 49,9%
7 80% 58,3%
8 91% 66,6%
9 100% 74,9%
10 100% 83,2%
11 100% 91,5%
12 100% 99,4%

Drugi zestaw wyników z włączonym wyprowadzaniem wyników na konsolę:

liczba tasków Obciążenie MZ Obciążenie PE
1 16% 2,9%
2 27% 11,2%
3 38% 19,3%
4 51% 27,9%
5 61% 36,2%
6 71% 44,3%
7 83% 52,7%
8 94% 61,1%
9 100% 69,4%
10 100% 77,7%
11 100% 85,4%
12 100% 92,4%