Jest kilka rzeczy, które należy wziąć pod uwagę, aby ustalić, czy wątki procesów gry są odpowiednio wykorzystywane i planowane pod kątem maksymalnej wydajności.
- Tempo wyświetlania klatek
- Wielowątkowość i równoległość wątków
- Koligacja rdzeni procesora
Wielowątkowość
Wiele gier i silników gier używa wielowątkowości do podziału pracy procesora na zadania logiczne, które mogą być uruchamiane w niezależny sposób. Jedna z typowych konfiguracji to wątek gry na potrzeby logiki wprowadzania i gry, wątek renderowania do przygotowywania i przesyłania obiektów do rysowania oraz wątki robocze do innych podzadań, takich jak animacje czy dźwięk.
Zalecamy korzystanie z równoległych wątków, ponieważ zwiększa wydajność wielowątkowości. Przykładem może być scenariusz, w którym gra i wątki renderowania działają częściowo lub w pełni jednocześnie w różnych rdzeniach. Nie zawsze jest to możliwe, na przykład w przypadku zależności od współdzielonych danych. Jeśli jednak jest to możliwe, może to skutkować krótszym czasem pracy procesora, a tym samym potencjalnie większą liczbą klatek.
Koligacja rdzeni procesora
Jednym z czynników, które znacząco wpływają na wydajność zbiorów zadań procesora, jest sposób ich planowania w rdzeniach. Można go podzielić na 2 części:
- Czy wątki gier działają na najlepszych rdzeniach pod kątem wydajności
- Określa, czy wątki w grze często przełączają się między rdzeniami.
Działanie wątku procesora możesz sprawdzić w sekcji Wykorzystanie procesora, włączając opcję CPU w konfiguracji profilu podczas wykonywania logu czasu. Powiększając fragment logu czasu <200 ms, możesz wyświetlić poszczególne procesy działające w rdzeniach procesora Twojego urządzenia. Zazwyczaj małe rdzenie odpowiadają mniejszych indeksom (np. CPU 0
–3
), podczas gdy duże rdzenie odpowiadają wyższym indeksom (na przykład CPU 6
–7
).
Zasadniczo, gdy gra działa na pierwszym planie, wątki trwałe, takie jak wątek gry i wątek renderowania, powinny działać w dużych rdzeniach o wysokiej wydajności. Inne procesy i wątki robocze mogą być planowane w mniejszych rdzeniach.
Możesz też obserwować, czy wątki gry często przełączają się między rdzeniami, jeśli rdzenie głównego i renderowanego wątku zmieniają się w obrębie 1 klatki procesora lub między 2 kolejnymi klatkami procesora. Takie działanie procesora prawdopodobnie oznacza, że wątki gry nie są prawidłowo powiązane. Takie przełączniki rdzeni powodują pewne narzuty związane z przełącznikiem kontekstu i utratą stanu z pamięcią podręczną/rejestrami rdzenia, co skutkuje wzrostem długości ramki procesora.