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% |