- Czy więcej wątków zawsze oznacza lepszą wydajność?
- Jak wątki wpływają na wydajność?
- Dlaczego musisz zachować ostrożność, gdy masz więcej niż jeden wątek?
- Co się stanie, gdy jest zbyt wiele wątków?
Czy więcej wątków zawsze oznacza lepszą wydajność?
Niekoniecznie. Osiągnięcie lepszej wydajności w oprogramowaniu wielowarstwowym to ćwiczenie wąskich gardeł. Ile dostępnych jest jeden potencjalny wąskie gardło. Jeśli jest więcej wątków zdolnych do uruchamiania niż dostępnych rdzeni do ich uruchomienia, więcej wątków nie pomoże wydajności i ostatecznie stać się kosztem ogólnym.
Jak wątki wpływają na wydajność?
Każdy wątek oprogramowania wymaga wirtualnej pamięci do stosu i prywatnych struktur danych. Podobnie jak w przypadku pamięci podręcznej, krojenie czasowe powodują, że wątki walczą ze sobą o prawdziwą pamięć, a zatem rani wydajność. W skrajnych przypadkach może być tak wiele wątków, że w programie zabraknie nawet pamięci wirtualnej.
Dlaczego musisz zachować ostrożność, gdy masz więcej niż jeden wątek?
Krótko mówiąc, wielokrotność częściej spowolni program niż przyspieszyć. Dwa procesory mogą być w najlepszym razie dwa razy szybsze, ale mogą być z łatwością wolniejsze, jeśli nie będziesz ostrożny.
Co się stanie, gdy jest zbyt wiele wątków?
Po drugie, uruchomienie nadmiernej liczby wątków wynosi koszty narzutowe ze względu na sposób, w jaki konkurują o ograniczone zasoby sprzętowe. Bardzo ważne jest rozróżnienie między wątkami sprzętowymi od oprogramowania. Programy tworzą wątki, które są określane jako „wątki oprogramowania.„Wątki na sprzęt to rzeczywiste zasoby fizyczne.