Shop Forum More Submit  Join Login
×
  • Listening to: Amazing music

Inne spojrzenie na licznik FPS w grach [v2.0]

//czyli mini poradnik napisany przez użytkownika ReznoR na potrzeby forum w celach edukacyjnych i walki z wiatrakami nieustannym wprowadzaniem w błąd
//wersja 2.0 - aktualizacja 20.06.2017; poradnik przestał być taki "mini"


Poradnik Fps1 by reznor666
Czym jest ten magiczny licznik "średniego FPS"?
Pojawia się wiele tematów na komputerowych forach w dziale kart graficznych, gdzie użytkownicy skarżą się na niską średnią ilość klatek na sekundę (FPS) w jakiejś konkretnej grze - zwłaszcza posiadacze monitorów 144 Hz. Często też, zwłaszcza tuż po premierze najnowszych lub szybkich kart graficznych, z zamiarem ich kupna, zakładacie tematy typu "czy ten procesor nie będzie ograniczał tej karty graficznej?" "Czy niepodkręcony i5-4690K nie będzie ograniczał GTX 1080?" "Battlefield 4 i GTX 1080 - bottleneck CPU?" i tak dalej. Często też widzę masowo powtarzane na forach i pod filmikami prawidła typu "nie bierz tej karty, bo twój procesor będzie ją ograniczał", co jest zwykłym niedomówieniem, uogólnieniem i nieznajomością całego tematu. W takim razie co to takiego jest ten "bottleneck" czy to całe "ograniczanie"? I od czego rzeczywiście zależy wydajność komputera w danej grze?

Wiele osób jest nadal przekonanych, że średnia ilość FPS (Frames Per Second / klatek na sekundę == czyli ogółem tagi #wydajność #szybkośćdziałania #responsywność #płynność) w danej grze jest zależna prawie wyłącznie od szybkości karty graficznej w komputerze oraz ustawień graficznych w opcjach, a także rozdzielczości. Przy czym jest to tylko część prawdy.

Tak naprawdę średnia ilość FPS w danej grze zależy od wielu rzeczy. Najważniejsza z tych rzeczy, którą trzeba mieć zawsze na uwadze, to maksymalne możliwości obliczeniowe komputera.
Bardzo ważne jest, aby średniego FPS w grach nie traktować jako jeden uniwersalny wskaźnik zależny wyłącznie od karty graficznej. Nie na tym to polega!
Prawidłowo wskaźnik średniego FPS trzeba podzielić na dwa rodzaje: CPU-FPS i GPU-FPS.*

Aby w sposób prosty wyjaśnić, czym są CPU-FPS i GPU-FPS pomyślcie sobie dla ułatwienia o ilości klatek na sekundę w takim sensie:
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
[aktualna średnia ilość FPS] = ilość danych jakie jest w stanie przetworzyć procesor (CPU) LUB karta graficzna (GPU) w czasie jednej sekundy.
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Aktualna średnia ilość FPS będzie zawsze zależna od aktualnych możliwości obliczeniowych jednego z tych dwóch elementów - i to w znacznym uproszczeniu, czyli pomijając wpływ reszty podzespołów komputera, architektur, technologii, magistrali i konfiguracji na szybkość CPU i GPU. Bardzo ważne jest słowo "aktualnych" - bo te możliwości obliczeniowe można zwiększać! O tym będzie niżej.

Poradnik Fps2 by reznor666
Jeśli któryś z tych dwóch elementów (CPU lub GPU) osiągnął swój limit maksymalnej ilości danych możliwych do obliczenia w czasie sekundy, nazywamy to "bottleneck" (ang. "wąskie gardło").

Przykład. Przy tej samej karcie grafiki i procesorze w tej samej grze i tych samych ustawieniach (!) możemy mieć np.:
100% wykorzystane GPU przy 60 FPS (GPU jest bottleneckiem średniej ilości FPS) == będzie to w tym momencie średni GPU-FPS
a w innym momencie tej samej gry (np. spojrzenie w niebo)
80% wykorzystane GPU przy 90 FPS (CPU jest bottleneckiem średniej ilości FPS) == będzie to w tym momencie średni CPU-FPS

Zawsze będzie to jedno z dwóch. Zauważcie, że w drugim przypadku mimo że średnia ilość FPS jest większa, karta graficzna pozostaje wykorzystana jedynie w 80% swoich możliwości. Dlaczego tak? Otóż w tym momencie to procesor osiągnął swój limit maksymalnej ilości danych które był w stanie przetworzyć w ciągu tej sekundy. Czyli w tym momencie nastąpiło to ezoteryczne i mantrowane na forach "ograniczanie" karty graficznej przez CPU. Ale przecież średnia ilość FPS w tym momencie była większa niż w czasie gdy to karta graficzna była ograniczeniem. Warto o tym pamiętać za każdym razem gdy ktoś wspomina to magiczne hasło "bottleneck". Sytuacja nie jest wcale taka prosta, jak to ludzie lubią powtarzać na forach, gdyż jest wiele czynników mających na to wpływ.

Poradnik Fps4 by reznor666
Przy średniej ilości CPU-FPS w grach trzeba pamiętać o kilku rzeczach:

  1. Im szybsza konfiguracja pamięci Ram w komputerze tym więcej danych jest w stanie przetworzyć CPU w tym samym czasie == przeważnie oznacza to więcej CPU-FPS, chyba że jakaś gra lub benchmark są na to ewidentnie niepodatne. Syntetyczne benchmarki 3D typu 3DMark są tego przykładem, więc nie należy w nich mierzyć wpływu RAMu na szybkość CPU w grach. Wymiana standardowych DDR3 1600 MHz CL9 na fabrycznie podkręcone 2400 Mhz CL10 daje wzrost ok. 13-25% CPU-FPS na czterordzeniowych procesorach Intela w większości gier (testowane na Devil's Canyon). Przy pamięciach DDR4 jest podobnie. Czasami to większy zysk niż jesteśmy w stanie uzyskać po podkręceniu procesora lub wymianie platformy na numerkowo nowszą generację! Niestety są też niechlubne wyjątki, jak np. GTA 5, które jest bardzo mało podatne na zwiększenie szybkości RAM przy procesorach Intela.
  2. Procesor działający na tylko jednej kości pamięci (Single Channel) zamiast zalecanej do niego konfiguracji (Dual/Triple/Quad Channel) potrafi masywnie wpływać na wydajność w grach, co pokazuje np. ten wykres. (więcej wykresów niżej wraz z opisami)
  3. Im mniej obliczeń musi wykonać CPU (redukcja/wyłączenie opcji w grach które mają na to wpływ - szczegóły niżej) == więcej CPU-FPS.
  4. Ilość CPU-FPS nie jest stała! Dynamicznie zmienia się, tak samo jak GPU-FPS, w zależności od konkretnej gry, konkretnych ustawień i konkretnego miejsca, mapy oraz sytuacji w grze. Każda z gier jest napisana i zoptymalizowana inaczej, wykorzystuje inne rozwiązania - trzeba sytuację monitorować na bieżąco w danej grze. Jak rozpoznawać miejsca CPU-FPS w grze dowiesz się niżej.
  5. Rozdzielczość nie ma wpływu na ilość CPU-FPS, ale ma ogromny wpływ na ilość GPU-FPS (obraz widoczny na ekranie - w sensie ilość megapikseli na sekundę - renderuje bezpośrednio karta graficzna).** (wykres obrazujący tą sytuację można zobaczyć tutaj)
  6. Sterowniki NVidii z 2014 roku o numerze 337.50 znacznie zmniejszyły obciążenie dla jednego rdzenia CPU - tzw. narzut sterowników - we wszystkich grach Direct3D 9, 10 i 11. Była to odpowiedź NVidii na konkurencyjne API Mantle. Dlatego zwłaszcza posiadacze dwurdzeniowych procesorów więcej CPU-FPS w grach D3D9, 10 i 11 uzyskają na kartach NVidii. Przed wypuszczeniem tych sterowników więcej CPU-FPS przy 2-rdzeniowych procesorach uzyskiwano na kartach AMD.
  7. Wielu ludzi nie martwi się kompletnie zagadnieniem CPU-FPS, jeśli nie spadnie ona w jakiejś grze do poniżej komfortowej dla niego ilości. Musisz odpowiedzieć sobie sam na pytanie, ile CPU-FPS potrzebujesz uzyskać dla własnego komfortu w konkretnym tytule na posiadanym przez ciebie procesorze. 30? 40? 60? czy może 144? Często uzyskanie ostatniej wartości stabilnie w wielu grach nie jest możliwe nawet na najszybszym dostępnym procesorze, bez względu na używaną kartę grafiki, czego przykładem mogą być otwarte lokacje w np. Rise of the Tomb Raider.
  8. Ilość średniego CPU-FPS w trybie single-player jest najczęściej ogólnie wyższa niż w trybie multi-player w tej samej grze, ze względu na to, że sam kod sieciowy gry konieczny do rozgrywki w multi bardzo mocno obciąża obliczeniowo CPU. Jeśli kiedyś grałeś w tryb Single w np. Battlefield 3 na słabym procesorze i było ok, a potem spróbowałeś trybu Multi, i zastanawiałeś się dlaczego w Multi grać się nie da, bo ilość FPS poleciała na łeb - to właśnie dlatego, że sama gra przez sieć mocno "zjada" moc CPU. Często poradą na taki spadek jest obniżenie opcji graficznych w grze do najniższych, żeby możliwie maksymalnie odciążyć procesor od obliczeń (j.w. punkt 3.).
  9. Nawet jeśli twój procesor będzie aktualnie wykorzystany jedynie w 12,5% - nadal możesz mieć w tym momencie CPU-FPS! Ogólne wykorzystanie procesora wcale nie musi wynosić 100%, żeby w grze dobić do końca jego możliwości obliczeniowych. Dużo zależy od ilości posiadanych rdzeni (a właściwie wątków) i tego jak gra jest zaprogramowana, a także od miejsca testowego. Np. w przypadku 4-rdzeniowych procesorów i7 posiadamy 8 wątków logicznych ze względu na technologię Hyper-Threading. Jeśli podzielimy 100% na 8 to wyjdzie nam 12,5% ogólnego wykorzystania procesora, gdy zajęty jest tylko jeden rdzeń. Jeśli zajęte będą dwa rdzenie, to będzie to 25%, a jeśli wszystkie cztery - 50%. Wartość powyżej 50% - powyżej 4 fizycznych rdzeni - może oznaczać, że gra korzysta również z Hyper-Threading.

================================================================================================

Poradnik Fps3 by reznor666
Samodiagnostyka. Czyli jak rozpoznawać miejsca CPU-FPS i GPU-FPS w grach na naszym sprzęcie.
Pozwoli nam to określić, który z elementów naszego komputera jest słabym ogniwem w danej grze lub miejscu testowym.

Najważniejsza sprawa to monitorowanie % wykorzystania GPU przy pomocy odpowiednich narzędzi.
Monitorować wykorzystanie GPU na bieżąco w czasie rzeczywistym możemy przy pomocy darmowego programu MSI Afterburner, który w standardzie zawiera w sobie RivaTuner Statistics Server, dodający właśnie tą funkcjonalność.
Mając uruchomiony MSI Afterburner wraz z RTSS na ekranie gry pojawia się wtedy tzw. OSD (On-Screen Display). Wygląda to mniej więcej tak, w zależności od ustawień i ilości pokazywanych danych jakie sobie wybraliście (na przykładzie GeForce GTX 970 i gry Rise of the Tomb Raider):
Rottr 2016-05-01 GTX970 very high by reznor666
(ilość wyświetlanych informacji zmieniamy w zakładce "monitoring" wybierając przy każdej z opcji "show in On-Screen Display" - ważne: można tam też segregować ich kolejność wyświetlania, a także grupować kilka wartości pod jedną kategorię/nazwę)

D3D11 - wersja środowiska Direct3D z jakiego korzysta silnik gry. (OGL = OpenGL)
  : 15.5 FPS = ilość aktualnych klatek na sekundę (FPS) - jest to średnia ilość klatek obrazu renderowanych w czasie sekundy
CPU - zbiorcze dane o procesorze.
  : 16 % = procentowe wykorzystanie całego procesora w danym momencie. (100% oznacza że wszystkie dostępne wątki łącznie z HT są aktualnie w użyciu)
  : 45 C = ogólna temperatura procesora. (w tym przypadku najcieplejszego rdzenia)
GPU - zbiorcze dane o karcie graficznej.
  : 99 % = procentowe wykorzystanie rdzenia karty graficznej w danym momencie - ta liczba interesuje nas najbardziej.
  : 63 C = aktualna temperatura rdzenia GPU.
  : 1480 MHz = aktualne taktowanie rdzenia karty graficznej (GPU Boost).
RAM - dane o aktualnym zajęciu pamięci Ram. 
VRAM - dane o aktualnej alokacji*** pamięci karty graficznej - Video Ram. (standardowo MEM - można zmieniać nazwy)

Jak odczytywać te dane? W prosty sposób - patrzymy na procentowe wykorzystanie rdzenia karty graficznej. Im jest mniejsze tym bardziej ograniczają nas maksymalne możliwości obliczeniowe procesora - i wtedy właśnie mamy CPU-FPS. Gdy wykorzystanie GPU często oscyluje w okolicach 97-100% to ogólnie można przyjąć, że wtedy karta jest praktycznie maksymalnie wykorzystana i mamy GPU-FPS w danym momencie w grze. Na screenie powyżej ewidentnie mamy GPU-FPS (wykorzystanie GPU na poziomie 99%).

UWAGA! Dla posiadaczy kart graficznych AMD konieczna jest aktywacja opcji "Enable unified GPU usage monitoring" w sekcji AMD compatibility properties. To z tego względu, że nowsze karty AMD wykorzystują inny typ architektury. Jeśli nie aktywujecie tej opcji wskaźnik wykorzystania karty będzie "skakał jak szalony", a wy będziecie się zastanawiać, czy z waszą kartą jest wszystko ok.

Przykład masywnego rozrzutu średniego FPS w zależności od miejsca w grze Tomb Raider 2013, w którym wykonywany był pomiar - na tym samym sprzęcie, tych samych ustawieniach, tej samej rozdzielczości.
TombRaider 2013 - GTX1080 800x600 FPS by reznor666
Lewa strona obrazka pokazuje procesor i7-4790K działający w częstotliwości 4.6 GHz.
Prawa strona obrazka to ten sam procesor z częstotliwością zablokowaną na 1.7 GHz.
Górna część obrazka to screeny wyników uzyskanych we wbudowanym w grę benchmarku.
Dolna część obrazka to faktyczna rozgrywka na najbardziej wymagającej od CPU mapie Shantytown...
Przeanalizujcie sobie wyniki. Chcę wam tym przykładem zobrazować sytuację. Zobaczcie, jak bardzo średnia ilość FPS potrafi się zmieniać w zależności od miejsca testowego - przy tym samym sprzęcie, grze, ustawieniach i rozdzielczości.
Można z tego łatwo wywnioskować, że wbudowany w grę benchmark był zaprojektowany aby pokazać nam jedynie jak mocno ogranicza nas posiadana karta graficzna. Nawet w najniższej dostępnej rozdzielczości w grze (800x600) i najwyższych ustawieniach benchmark ten jest tak mało zależny od mocy procesora, że GTX 1080 często dobija do maksimum swoich możliwości!
Zupełnie przeciwna sytuacja natomiast występuje na mapie Shantytown w czasie normalnej rozgrywki. Jest to spora mapa, z dużą ilością modeli i budynków i jest idealnym miejscem aby pokazać maksymalne możliwości obliczeniowe procesora.


================================================================================================

Poradnik Fps5 by reznor666
Teraz jak już wiesz, jak rozpoznawać sytuację, pewnie zastanawiasz się: czy wartości GPU-FPS i CPU-FPS są stałe?
Nie są. 
Niektórzy się zdziwią, ale obie wartości - CPU-FPS i GPU-FPS - są zależne od poszczególnych ustawień (również tych uznawanych jako "graficzne") w grze.

Poradnik Fps6 by reznor666
Większość opcji graficznych jest zdecydowanie najbardziej obciążająca dla GPU. Należą do nich takie opcje jak:

  • rozdzielczość (resolution) - w przeważającej większości najbardziej wymagająca opcja!
  • wygładzanie krawędzi (anti-aliasing) - różne techniki a także ich implementacja w konkretnej grze mają różny wpływ na wydajność (od bardzo wymagających, do praktycznie niezauważalnego)
  • jakość cieni (shadows), ich ilość oraz rodzaj ambient occlusion
  • głębia ostrości (depth of field)
  • teselacja (tesselation)
  • PureHair, TressFX, HairWorks
  • PhysX (realizowany poprzez kartę graficzną)
  • jakość i rozmiar tekstur - to ustawienie potrafi mieć ogromny wpływ na FPS, jeśli karta graficzna posiada zbyt mało pamięci na wybrane ustawienie. Bardzo ważne jest, żeby dobrać odpowiednie ustawienie dla posiadanej pamięci karty. Jeśli nasza karta posiada wystarczająco dużo pamięci na każde z ustawień dostępnych w grze, to wtedy wpływ tej opcji na różnice w FPS powinien być minimalny. Nieco więcej o tym w przypisie na dole.

Poradnik Fps7 by reznor666
Jednakże niektóre z opcji oprócz GPU obciążają obliczeniami również CPU. Zmniejszenie jakości lub wyłączenie którejś z tych opcji przeważnie oprócz zwiększenia GPU-FPS zwiększy także CPU-FPS (co jest ważne np. dla posiadaczy monitorów 144 Hz i/lub tych ze słabszymi procesorami, którym zależy na komfortowej grze po sieci w grach competitive FPS):
  • ilość widocznych na ekranie cieni (shadows)
  • ambient occlusion
  • level of detail (szczegółowość świata gry i odległość rysowania szczegółowych modeli)
  • ilość obiektów/cząsteczek (particles/decals)
  • jakość modeli 3D (geometrii)
  • draw distance (zasięg rysowania)
  • jakość fizyki (physics)
  • PhysX (realizowany tak przez kartę graficzną, jak i procesor)
  • ilość i jakość dźwięków (sound quality/sounds)
  • ilość graczy na serwerze - im więcej, tym większe obciążenie CPU

================================================================================================

Poradnik Fps8 by reznor666
Jak można sprawdzić swoją maksymalną możliwą do uzyskania ilość CPU-FPS przy konkretnych ustawieniach? I po co to sprawdzać?
  • Jak? Najłatwiejszy sposób to zwyczajnie zmniejszyć rozdzielczość i wyłączyć AA. Przy 1280x720 i odpowiednio szybkiej karcie grafiki łatwo można dobić do limitu CPU-FPS (obciążenie GPU musi być wtedy poniżej 99%).
  • Po co? Powiedzmy, że planujesz wymianę karty grafiki, gdyż nie satysfakcjonuje cię ilość FPS w jakiejś konkretnej grze. Wtedy to prosty sposób na określenie, który podzespół nas tam ogranicza, o ile nas ogranicza, i skierowanie uwagi na ten, który faktycznie przydałoby się wymienić (lub który podkręcić - jeśli jest taka możliwość) gdy ilość FPS nas nie satysfakcjonuje w danej grze np. w różnych momentach miewamy spadki do 25 FPS i niżej - wtedy można określić czy w danym momencie winne jest CPU czy GPU. Dzieki temu będzie wiadomo gdzie najlepiej rozlokować budżet - czy wydać całość na szybką kartę, czy może jednak wybrać nieco wolniejszą, ale tańszą, a za resztę usprawnić moc obliczeniową po stronie procesora. Pozwoli to też nam określić, które z opcji graficznych możemy zostawić ustawione na wysoką wartość, a które lepiej zredukować lub wyłączyć (w tym pomoże lista wyżej). Tak zresztą również porównuje się wydajność procesorów i pamięci w grach - przy niskiej rozdzielczości i wyłączonym AA w odpowiednim miejscu testowym, aby nie wprowadzać czynnika karty graficznej do testów obliczeniowych CPU (aczkolwiek przy wysokich ustawieniach graficznych - gdyż te wpływają również na obciążenie CPU!). Odwrotnie porównuje się wydajność kart graficznych - przy wysokich ustawieniach graficznych i wysokiej rozdzielczości, na komputerze z możliwie szybkim procesorem, w miejscu testowym bardziej zależnym od szybkości GPU, aby nie wprowadzać czynnika procesora (CPU-FPS) do wyników testów.
Nie chcę/nie mogę zmienić procesora, a mam dobrą kartę grafiki, która często się "nudzi", co mogę zrobić?
  • Wymień RAM na szybszy! Lub sam go podkręć. Wcześniej jednak sprawdź czy twoja płyta główna obsłuży fabrycznie podkręcone pamięci Ram. Dlatego jeśli komputer ma służyć do grania dobrze jest na etapie kupna zainwestować w droższą płytę główną i szybszy Ram, aby te podzespoły ograniczały nas jak najmniej - nie tylko w momencie kupna ale też w przyszłości. Pamiętajcie - płyty główne, RAM oraz zasilacze starzeją się najwolniej ze wszystkich komponentów komputera pod względem zwiększenia możliwości obliczeniowych komputera w przyszłości.
  • Jeśli posiadasz płytę główną obsługującą szybszy RAM zamiast kupować kolejną tą samą - i woooolną - parę modułów RAM 2x4 GB do zestawu zastanów się nad kupnem szybszych modułów 2x8 GB i sprzedaży starych, wolniejszych kości.
  • Podkręć procesor! Podkręcanie CPU to jeden z łatwiejszych i bardziej znanych sposobów przedłużania życia komputera i jedna z wielu niekwestionowanych zalet PC ponad laptopami i konsolami. To też kolejna zachęta dla gracza do inwestycji w lepszą płytę główną na starcie jeśli zależy mu na przyszłościowości zestawu. Dzięki posiadaniu solidnej bazy CPU+płyta+zasilacz w przyszłości wystarczy tylko zmienić kartę graficzną na nowszą, oraz ewentualnie RAM na szybsze i większe moduły, zamiast od razu całej platformy.
  • Zwiększ rozdzielczość. Włącz wygładzanie krawędzi. Może nawet włącz DSR. Na procesorze nie zrobi to wrażenia, a ty będziesz się cieszył ładniejszą grafiką.
Pamięć Ram, jej szybkość, opóźnienia, kanały a ilość CPU-FPS:
  • Upewnij się, że twoje pamięci pracują w Dual/Triple/Quad Channel a nie w Single Channel. To bardzo ważne! Aby pamięć pracowała w Dual/Triple/Quad Channel musi mieć identyczną pojemność kości na każdy kanał (choć niekoniecznie na każdy bank/fizyczny slot). Najlepiej też aby była tej samej szybkości, a jeszcze lepiej - tego samego modelu i producenta - inaczej wszystkie moduły będą miały ustawioną szybkość najwolniejszej kości. Próba połączenia różnych kości różnych producentów, modeli i różnych rozmiarów czasami może też skutkować tym, że nie będą chciały ze sobą poprawnie współpracować i będą działały w Single Channel. Lub nawet wcale. Najlepsza, najwydajniejsza i najbezpieczniejsza opcja to kupowanie pamięci zawsze w zestawie odpowiednio do zaleceń naszego procesora. W przyszłości zamiast dokupować kolejny identyczny zestaw (który może już przestać być dostępny w sprzedaży), aby powiększyć pojemność pamięci, można po prostu wymienić cały zestaw na większe i ew. szybsze moduły, a stary zestaw kości sprzedać.
  • Różnica średniego CPU-FPS między pamięciami 1600 MHz CL9 Single Channel a 2400 MHz CL10 Dual Channel może wynieść nawet ok. 42% do 69% w zależności od gry przy tej samej karcie grafiki i procesorze (testowałem np. Planet Coaster, Rise of the Tomb Raider, Quake Champions, GRID: Autosport (wykresy+opisy niżej)
  • Różnica CPU-FPS między pamięciami pracującymi w Single Channel, a tymi samymi pracującymi w Dual Channel może wynieść nawet ok. 13% do 36% w zależności od gry i szybkości modułów. Jednak nie tylko średni FPS się liczy. Mając pamięć działającą w Single Channel jesteśmy narażeni na częstsze cięcie się animacji z powodu dłuższego niż zazwyczaj czasu renderowania pojedynczej klatki, a to też mocno wpływa na jakość grania. Dlatego tak ważna jest prawidłowa konfiguracja kości i ich działanie w zestawie.
  • Znacznie rzadziej niektóre gry (jak np. niechlubny wyjątek w moich testach - GTA 5) są na szybszą pamięć ewidentnie niepodatne i mogą jedynie zyskać bardzo niewiele, lub nawet wcale.
  • ważne: szybkość pamięci Ram nie ma wpływu na GPU-FPS! Chyba, że korzystasz z zintegrowanej karty w procesorach Intela lub AMD (karty te używają pamięci Ram jako pamięci VRam, więc naturalnym jest że z szybszą pamięcią zyskają na szybkości). Ta kwestia jest jedną z głównych przyczyn powstania w internecie mitów o tym, że szybszy RAM praktycznie nie wpływa na FPS w grach. Owszem - nie wpływa - ale na GPU-FPS, czyli FPS zależny od karty graficznej.
  • Nie liczą się tylko MHz, ale też opóźnienia pamięci. Realne opóźnienia pamięci można bardzo łatwo obliczyć biorąc pod uwagę ich szybkość. Pozwoli to podjąć dobrą decyzję o kupnie odpowiednio szybkich pamięci w danej cenie. Im mniejsze realne opóźnienia tym szybsza pamięć. Wzór jest prosty i łatwy do zapamiętania:
    DDR4 2400 MHz CL16 = 2/2,4 GHz * 16 = 13,333 ns
    DDR4 3200 MHz CL14 = 2/3,2 GHz * 14 = 8.75 ns
    DDR3 1600 MHz CL9 = 2/1,6 GHz * 9 = 11.25 ns
    DDR3 2400 MHz CL10 = 2/2,4 GHz * 10 = 8.333 ns

    Pozostałe opóźnienia poza pierwszym podawanym (CL) również mogą teoretycznie mieć wpływ na wydajność, aczkolwiek sam nie mierzyłem jeszcze jak bardzo.


Ciekawostka: Przy nowych, niskopoziomowych (low-level) API graficznych - DirectX 12, Vulkan - zakładając, że kiedyś w końcu pojawi się prawidłowo i ekskluzywnie napisana pod któreś z tych API gra - można liczyć na spore odciążenie CPU w obliczeniach poprzez bardziej równomierne rozłożenie narzutu od różnych zadań i sterownika na wiele rdzeni CPU, zamiast tylko na jeden rdzeń, tym samym zwiększając ilość CPU-FPS. Tą tendencję w większości gier obsługujących nowe API można zauważyć już teraz. Jednakże jak na razie jest to wciąż nie w pełni wykorzystana pieśń przyszłości i potrzebuje jak zawsze trochę czasu na rozwinięcie aby pokazać swój prawdziwy potencjał (dzisiejsze gry DX12 i Vulkan to praktycznie zwyczajne "porty" i w żadnym razie nie należy testów D3D12 w tych grach brać sobie zbyt mocno do serca). Jak na dzisiaj najbardziej zaawansowanym i prawidłowo napisanym (od podstaw) programem korzystającym z zalet DirectX 12 jest benchmark TimeSpy od Futuremark. A nawet on jest ograniczony do maksimum DirectX 12 feature level 11_0, aby zachować kompatybilność z kartami graficznymi jeszcze z 2012 roku (3DMark Technical Guide).

================================================================================================

/*

Frametime

czyli parę słów o tym, dlaczego "średni FPS" to nie wszystko. [sekcja w przygotowaniu]
*/

================================================================================================

Poradnik Fps9 by reznor666
Parę moich własnych wykresów z kilku gier w pewnym stopniu potwierdzających całą tą nudną teorię i trochę moich komentarzy do nich.
Wartości obok symbolu średnicy ⌀ to średnie wartości.
Wszystkie konfiguracje kości miały zawsze ustawiony Command Rate = 1T. Różnica między 1T a 2T jest mierzalna, ale tak niska, że nie ma sensu pokazywać jej na wykresach. Oscyluje zbyt blisko tolerancji błędu pomiarowego.

Rise of the Tomb Raider
Rottr Veryhigh Ram Battle 1080p by reznor666
Użyty sprzęt:

  • i7-4790K @ 4.5 GHz
  • pamięci G.Skill Trident X DDR3 2400 MHz CL 10-12-12-31 2x8 GB (CR=1T)
  • Gigabyte Z97X-Gaming 5
  • Palit GTX 1080 JetStream
Użyty soft, jakby ktoś chciał też sobie samemu porobić takie doświadczenia z ciekawości:
Przejście testowe podobne do przejścia wykorzystanego w tym teście, a ustawienia to wbudowany preset Very High, 1920x1080 oraz bez włączonego AA, aby nie wprowadzać czynnika karty graficznej do testu szybkości pamięci. Przy takich ustawieniach GTX 1080 w tym miejscu testowym nigdy nie dobił do 100% wykorzystania, i dzięki temu otrzymujemy czysty CPU-FPS.

Jak widać, różnice między 2400 MHz a 1600 MHz Dual Channel w tej akurat grze i tym miejscu testowym nie są może aż tak spektakularne, jak notowalem w innych grach (CS:GO i Grid Autosport miały ok. 22-25% różnicy) - jedynie na poziomie ok. 12,5 % - ale już pomiędzy 2400 MHz Dual a 1600 MHz Single Channel jest tej różnicy ponad 41% w średnim FPS + widoczny stuttering podczas grania i niższy minimalny FPS - 40 kontra 62 FPS (takie dodatkowe atrakcje). A warto dodać, że testy wykonywałem dwukrotnie, z czego wykresy były robione dopiero z drugiego pomiaru - w pierwszym przejściu na Single Channel tego stutteringu/cięcia się animacji było jeszcze więcej.
Wnioski: przy tym samym procesorze - i7-4790K - i tym samym % jego wykorzystania - jakość grania potrafi się masywnie różnić w zależności od prawidłowej konfiguracji i szybkości wykorzystanej pamięci RAM w komputerze.


Quake Champions Closed Beta (patch June 2)
quake champions ultra june2 RAM battle by reznor666
Tym razem na wykresie ujęta tylko różnica między 2400 MHz CL10 Dual Channel a 1600 MHz CL9 Single Channel. Prawie 50% różnicy w średnim FPS. Maksymalne wartości na zielonej linii ledwo czasem dobijają do minimalnych wartości na czerwonej linii. Nawet biorąc pod uwagę losowość testu (dwie różne potyczki, choć na tej samej mapie, trybie i czasie trwania, tej samej wersji gry) widać masywną różnicę.

GRID: Autosport
Ustawienia: 1920x1080, preset Ultra, AA off
Wyścig z przeciwnikami na trasie San Francisco (Sprint Circuit), 1 okrążenie.
RAM: 2400 MHz 10-12-12-31 2x8 GB (Dual Channel) vs 2400 MHz 10-12-12-31 1x8 GB (Single Channel)
GridAutosport Ram battle 2400 by reznor666

RAM: 1600 MHz 9-9-9-24 2x8 (Dual Channel) GB vs 1600 MHz 9-9-9-24 1x8 (Single Channel) GB
GridAutosport Ram battle 1600 by reznor666
Podsumowanie:
2400 MHz 10-12-12-31 2x8 GB Dual Channel == 143,4 Avg FPS, ok. 120 Min FPS
2400 MHz 10-12-12-31 1x8 GB Single Channel == 126,2 Avg FPS, ok. 101 Min FPS
1600 MHz 9-9-9-24 2x8 GB Dual Channel == 117,6 Avg FPS, ok. 101 Min FPS
1600 MHz 9-9-9-24 1x8 GB Single Channel == 96,9 Avg FPS, ok. 80 Min FPS
Jak widać, 2400 MHz w jednej kości jest szybsze niż podstawowa specyfikacja 1600 MHz działająca w Dual Channel. I znów niemal 50% różnicy między 1600 MHz w jednej kości a 2400 MHz w dwóch kościach.
22% różnicy 2400 Dual vs 1600 Dual.

Planet Coaster
Ustawienia: preset Ultra+wymaksowane pozostałe opcje (Depth of Field wyłączone), AAx4 (w sumie mogłem wyłączyć i zrobić test w 1080p, no ale...)
Test był prosty, gdyż polegał na wczytaniu ostatniego save (Continue) i pozostawieniu widoku bez zmian przez ok 2 minuty. Ilość ludzi w parku ok. 1380. Misja to jedna z tych pierwszych (z piratami).
PlanetCoaster 720p ram battle by reznor666
2400 MHz 10-12-12-31 2x8 GB Dual Channel == 83,63 Avg FPS
2400 MHz 10-12-12-31 1x8 GB Single Channel == 61,69 Avg FPS (nie zmieścił się w Generic Log Viewer)
1600 MHz 9-9-9-24 2x8 GB Dual Channel == 67,23 Avg FPS
1600 MHz 9-9-9-24 1x8 GB Single Channel == 49,5 Avg FPS

2400 MHz DC vs 1600 MHz SC = masywne 69% różnicy FPS! Jedynie ze względu na wpływ konfiguracji RAMu!
2400 MHz DC vs 1600 MHz DC = 24% różnicy
Mamy tu troszkę inne proporcje w przypadku różnic między Dual a Single.
Tym razem pojedyncza 2400 MHz juz jest wolniejsza niż podwójne 1600 MHz, w odróżnieniu od GRID: Autosport.
Warto też przyjrzeć się, jak bardzo wskaźnik wykorzystania karty graficznej potrafi czasem przekłamywać i nie zawsze warto na niego zwracać uwagę (PS. zegary karty były identyczne).

Testy Dual Channel 2400 vs 1600 vs 1333 MHz:
PlanetCoaster 720p ram battle 1333 by reznor666
Jakichś spektakularnych różnic między 1600 a 1333 brak :)
2400 MHz 10-12-12-31 2x8 GB Dual Channel == 83,62 Avg FPS
1600 MHz 9-9-9-24 2x8 GB Dual Channel == 67,23 Avg FPS
1333 MHz 9-9-9-24 2x8 GB Dual Channel == 64,09 Avg FPS

================================================================================================

Poradnik Fps10 by reznor666

*UWAGA: Większość portali branżowych i youtuberów zajmujących się testami kart graficznych i procesorów w grach przy swoich testach nie rozróżnia (lub nie chce rozróżniać) podziału na CPU- i GPU-FPS i podaje tylko minimalne i średnie klatki na sekundę. Nie wspominając już o frametime (o którym można napisać cały osobny artykuł...) - czasami jedynie dodają wartości 1% Low i 0.1% Low (jak np. Gamers Nexus). Tak naprawdę takie podejście "testerów" nie daje nam pełnego obrazu wydajności kart graficznych i procesorów. Aby efektywnie porównywać ze sobą podzespoły w danych grach do każdego takiego testu musielibyśmy mieć dołączony wykres ich obciążenia pokazujący nam czy dana karta była w każdym momencie testu w pełni wykorzystana i jak wypadało wtedy % wykorzystanie procesora. Konieczne jest też monitorowanie alokacji pamięci karty graficznej. Jeśli wybieramy do testów GPU preset jakości tekstur powyżej zalecanego dla naszej karty, wtedy GPU-FPS może spaść drastycznie przy 100% wykorzystania GPU - i już mamy niepełny obraz sytuacji tak jak w tym teście GTX 1060 6 GB vs 3 GB. Patrząc na tak bardzo suche liczby nie mamy też obrazu, jak wygląda taka sytuacja na monitorze oraz nie mamy logu z HWinfo, więc nie wiemy co jest nie tak - chyba że tester sam nam o tym powie i wyjaśni dokładnie co, jak i dlaczego, robiąc przy tym dodatkowe testy w odpowiednio dobranym miejscu testowym. Niestety dużo "testerów" dzisiaj (np. niesławny LinusTechTips, o którym to kanale mam bardzo złą opinię - i nie tylko ja) ogranicza się w takich przypadkach często tylko do wielkiego "WTF?", robiąc przy tym dużo szumu, dużo reklam, dużo wygłupów, ale nie starając się ani zrozumieć, ani wyjaśnić ludziom "dlaczego?", ani zachęcić ich do samodzielnego myślenia czy nauki i poszukiwania odpowiedzi na pytania. Jednym z najbardziej kompetentnych testerów sprzętu komputerowego dzisiaj jest np. Steve Burke, gość o ogromnej wiedzy z finansowanego przez Patreon portalu Gamers Nexus. Wartym uwagi portalem pod względem testów i artykułów wyjaśniających zagadnienia techniczne jest też Anandtech oraz TechReport.

** Dla przykładu - aby uzyskać podobną ilość GPU-FPS przy tych samych ustawieniach w rozdzielczości 2560x1440 (3,69 Mpix) wymagana jest mniej więcej 1,78x szybsza karta graficzna niż ta której używaliśmy dotychczas do 1920x1080 (2,07 Mpix). A rozdzielczość 3840x2160 (8,29 Mpix) to nic innego jak 4 x 1920x1080 - sami sobie dopowiedzcie ile mocy obliczeniowej to wymaga. Oczywiście nie są to jakieś stałe matematyczne wartości, gdyż pewne konkretne karty graficzne radzą sobie lepiej z wyższymi rozdzielczościami niż inne (szersza szyna pamięci, większa przepustowość, inna technologia pamięci, usprawnienia na poziomie architektury, dodatkowe wykorzystane techniki kompresji itd. itp.). Dodatkowo im wyższa rozdzielczość tym bardziej rośnie wykorzystanie pamięci, a to też wpływa na wydajność w pewnych przypadkach. Te zagadnienia również mogą być tematem na całkiem osobne artykuły...

**UWAGA: - aktualna alokacja, a aktualne wykorzystanie pamięci Video Ram, to dwie zupełnie różne rzeczy!
Na ten moment jeszcze nie istnieje żadne oficjalne narzędzie, które umożliwia pomiar aktualnego wykorzystania pamięci VRam na kartach graficznych - poza specjalistycznymi narzędziami producenta.
Przydatność wskaźnika VRAM w MSI Afterburner jest więc bardzo niewielka. Karta stara się zawsze zaalokować potrzebną jej Video Ram jako cache, czyli im więcej mamy pamięci na karcie, tym najczęściej więcej będzie jej zajętej, gdyż jest to poprostu wygodniejsze dla karty - mieć zawsze wszystko "pod ręką". W przeciwnym wypadku musiałaby do tych celów marnować wolniejszą pamięć Ram aby z niej "doczytywać" dane na bieżąco, i bez przerwy odświeżać posiadane dane, co niepotrzebnie zmniejsza GPU-FPS (i obniża nam realną pojemność pamięci RAM przy okazji). Pamiętajcie, że alokacja pamięci Ram i VRam działa na zasadzie "niezajęta pamięć nie może się marnować". Czyli jeśli mamy więcej pamięci niż w danym momencie jakiś program wykorzystuje, wcześniej wczytane z dysku dane pozostają w pamięci do czasu ponownego ich wykorzystania. Jeśli pamięć się zapełni, to stare niewykorzystywane dane są z niej usuwane i zastępowane na bieżąco tymi nowymi, aktualnymi. Można to zjawisko łatwo zaobserwować uruchamiając coś poraz pierwszy, zamykając, i uruchamiając ponownie. Za drugim razem program, gra lub mapa wczyta się szybciej. Podobne zjawisko występuje w pamięci VRam, dlatego aktualnie istniejące wskaźniki jej zajęcia są mało warte, gdyż nie mówią zupełnie nic o tym, ile minimalnie pamięci VRam gra potrzebuje do poprawnego, płynnego działania na danym ustawieniu tekstur. Konieczne są własne testy praktyczne. Warto wspomnieć, że posiadanie wysokiej ilości pamięci VRam jest zaletą, gdyż ciągłe odświeżanie pamięci karty i ciągła wymiana danych w przypadku gdy wszystkie dane się w niej nie mieszczą również trwa trochę czasu i może niepotrzebnie zmniejszać wydajność, nawet jeśli gra w danym momencie nie objawia tego "haczeniem" animacji. Czasami są to naprawdę masywne różnice mierzalne już w testach pomiędzy tymi samymi modelami kart o różnej ilości pamięci - a im mniej pamięci ma karta i im więcej gra jej potrzebuje (częstsze wymiany między VRAM a RAM), tym różnice FPS większe. Tutaj przykład jak przekraczanie granicy optymalnej ilości pamięci VRAM wpływa na wyniki FPS kart 4 i 8 GB (RX 480 - 54% różnicy), 3 i 6 GB (GTX 1060 - 206% różnicy) oraz 2 i 4 GB (GTX 960 - 140% różnicy).
Najczęściej maksymalne aktualne wykorzystanie pamięci VRAM będzie równe ok. połowie alokacji, aczkolwiek nie jest to prawda absolutna, bo zależy od zbyt wielu rzeczy i również zmienia się dynamicznie w różnych scenach/sytuacjach/lokacjach. Temat pamięci jest na tyle skomplikowany, że same metody alokacji pamięci to pomysł na cały długi artykuł...

Na koniec:

Polecane artykuły uzupełniające


//Wszelkie dodatki i sugestie odnośnie miniporadnika mile widziane. Z czasem aktualizuję poradnik o następne informacje, porady i wykresy porównawcze (w zależności od chęci).
//Dziękuję za wszelkie wsparcie, rady i korekty. To sprawia, że poradnik się rozrasta i jednocześnie zyskuje wartość - nie tylko dla mnie, ale też dla czytających.
//Pomysły odnośnie ulepszenia poradnika lub sugestie testów można przesyłać na mój adres fb: www.facebook.com/ReznoRMichael
//2017 ©® Michał "ReznoR"

  • Listening to: Beyerdynamic DT150
:icondahub: is giving :points: to people who watch, give llamas, and fav other people's work.
You can also be featured if you donate some :points:.

There is also a GREAT functionality that you can add to deviantArt: One Click Llama Button!
I really recommend it - it greatly enhances your experience on da if you like to give and recieve llamas.
  • Playing: Might & Magic Heroes VI
  • Drinking: Water