Jak číst výsledek benchmarku
Měří časy snímků ve hře, kterou opravdu hraješ, ne v syntetické scéně. Co znamenají percentily a proč je průměr nejméně užitečné číslo na stránce.
Čti 1% low, ne průměr: 1% low je nejhorší 1 % snímků, kde se projeví trhání, zatímco dva stroje se stejnými průměrnými FPS se můžou chovat úplně jinak. Porovnávej běhy ve stejné hře, na stejné mapě, se stejným nastavením a stejně dlouhé, mezi nimi měň jednu věc a počítej s tím, že se čísla sama od sebe pohnou o pár procent.
Co se měří
Časy snímků ze hry, kterou zrovna hraješ, čtené přímo z grafického zásobníku, ne z překryvu zavěšeného do hry. Spustíš záznam, normálně hraješ, záznam zastavíš.
Že jde o tvoji vlastní hru, je podstatné. Syntetická scéna ti řekne, jak si stroj poradí s touhle scénou; nemůže ti říct, jestli ti hra trhá zrovna na tom místě, kde trhá vždycky.
Co znamenají průměrné FPS, 1% low a čas snímku?
| Číslo | Co ti říká |
|---|---|
| Průměrné FPS | nejméně užitečný údaj tady. Dva stroje se stejným průměrem se můžou chovat úplně jinak. |
| 1% low | nejhorší procento snímků. Přesně tohle vnímáš jako trhání — vysoký průměr se špatným 1% low je klasické „hodně FPS, a stejně to není ono“. |
| Frametime | stejná data v milisekundách. 16,7 ms je 60 FPS, 6,9 ms je 144. |
Čti lows, ne průměr. Posun z průměru 200 na 210 nezmění nic, co bys ucítil. Posun z 90 na 140 v 1% low mění všechno.
Jak poctivě porovnat dva běhy benchmarku?
- Stejná hra, stejná mapa, stejná nastavení, stejná délka běhu.
- Mezi běhy změň jednu věc. Když změníš tři, srovnání ti neřekne nic o tom, která z nich zabrala.
- Hraj stejně. Běh strávený koukáním do zdi a běh strávený v přestřelce se porovnat nedají.
Co se nepočítá
Snímky, které hra vykreslí, když není v popředí, se nepočítají: sekundy mezi spuštěním záznamu a přepnutím do hry, sekundy poté, co se přepneš zpět a záznam zastavíš, každý alt-tab mezi tím a první sekunda po návratu hry do popředí. Hra na pozadí často kreslí jen zlomkem své běžné rychlosti a už samotné tyto snímky mohou určit 1% low. Výsledek uvádí, kolik sekund zůstalo stranou, a záznam uložený starší w0a, která je ještě počítala, se s novějším neporovnává.
Spuštění a zastavení přímo ze hry
Zkratka je vypnutá, dokud ji nezapneš: zatímco w0a běží, zaregistrovanou kombinaci nedostane žádný jiný program, a proto si w0a žádnou nebere sám. Klikni na tlačítko Zkratka vedle výběru hry a stiskni kombinaci, například Alt+F11. Pak ji ve hře stiskni a záznam se spustí, dalším stiskem se zastaví, takže kvůli tomu hru neopouštíš. w0a zůstává na pozadí: nepřijde do popředí a nevezme fokus. Samotnou kombinaci hra nedostane; CS2 ve výchozím stavu nemá na Alt ani F11 nic přiřazeno a všechny ostatní klávesy jdou do hry jako dřív. Když se záznam nemůže spustit, zpráva počká, dokud se do w0a nepřepneš.
Klávesy později změníš tak, že znovu klikneš na tlačítko Zkratka a stiskneš novou kombinaci; s klávesou drž Ctrl, Alt, Shift nebo Win. Del zkratku vypne, Esc zruší a volba zůstane uložená. Pokud kombinaci už drží jiný program, řekne to řádek pod tlačítkem a zkratka nedělá nic, dokud nevybereš jiné klávesy. w0a kombinaci jen registruje ve Windows a nic dalšího: klávesnici nezachytává ani nečte.
Proč se výsledky benchmarku mezi běhy liší?
Vždycky se hýbou. Teploty, práce na pozadí, kudy jsi šel, co dělali ostatní hráči. Pár procent mezi dvěma běhy je normální a není to důkaz ničeho. Pokud je změna skutečná, projeví se opakovaně — a projeví se v lows.
Po aktualizaci ovladače nebo hry
Dvojice běhů pořízených na obou stranách aktualizace hry se nehodnotí: stránka uvede obě verze a rozdíl nechá bez barvy, stejně jako už to dělá při změně ovladače. Patch mění to, co dělá samotná hra, takže žádný rozdíl přes aktualizaci nejde přičíst nastavení. w0a čte verzi z vlastních souborů Counter-Strike 2; u ostatních her se porovnává jen ovladač.
První zápas po aktualizaci ovladače nebo hry může kompilovat shadery, které už mezipaměť nemá. Když první běh po nejnovější aktualizaci vyšel hůř než další běh na stejných verzích, a to o víc než vlastní šum obou běhů, říká to poznámka pod výsledky. Jestli příčinou byla kompilace shaderů, se neměří; poznámka říká jen, že to k sobě sedí. Když se oba běhy neliší, poznámka tam není. Po aktualizaci si proto před měřením zahraj jeden zápas a nastavení porovnávej až od druhého běhu.
Rozhodnutí sérií A/B
Jeden běh na každé straně malou změnu od tohoto kolísání neodliší. Série A/B porovnání opakuje, dokud to nejde. Co je A a B, rozhoduješ ty (například A: motory vypnuté, B: zapnuté); w0a sama žádné nastavení nemění.
- Nejdřív pilot. Stiskni Spustit pilot a změř stejnou scénu desetkrát, aniž bys cokoli měnil. Pilot změří, jak moc se tvůj 1% low hýbe z běhu na běh sám od sebe, a z toho nejmenší rozdíl, který série dokáže zachytit. Platí pro stejnou hru na stejném hardwaru.
- Potom série. Stiskni Spustit sérii A/B. První záznam je zahřívací běh na nastavení A: uloží se a zobrazí, ale nepočítá se, protože první běh po spuštění hry jede se studenými mezipaměťmi a padl by vždy na A, takže by B vypadalo lépe. Před každým záznamem stránka řekne, kterou stranu měřit, v pořadí A B B A, stále dokola. Přepni na to nastavení, zahraj stejnou scénu, zastav záznam. Každé B se porovná s A změřeným hned vedle, takže pomalé zahřívání stroje během večera se vyruší.
- Každý běh je stejná scéna a trvá aspoň 100 sekund. V pilotu smaž první běh po spuštění hry: mezipaměti se teprve zahřívají.
- Verdikt se dává jen z 1% low, jakmile je aspoň šest použitelných párů (osm je lepší); ostatní řádky jsou pro informaci. Musí se shodnout tři odpovědi: znaménkový pořadový test, 95% interval mediánu rozdílu, který nezahrnuje nulu, a rozdíl aspoň tak velký jako nejmenší, který série dokáže zachytit. Bez pilotu, nebo bez deseti běhů A v sérii, které ho zastoupí, se rozdíl ukáže, ale nevyhlásí.
- „V rámci šumu" je také výsledek: změna nepohnula low hodnotami víc, než se hýbou samy.
Pár, který by srovnávací karta sama neposoudila (krátký běh, ztracené události, motor měnící stav, jiný hardware), se nepočítá a série uvede, kolik jich vynechala. Až skončíš, stiskni Ukončit sérii; její výsledek na stránce zůstane.
Jak dlouho hra čekala na procesor
Pod seznamem dlouhých intervalů mezi snímky čte karta po krátké okno vlastní záznamy plánovače jádra, jakmile hra už nějakou dobu vykresluje snímky: jak dlouho vlákna hry čekala mezi připraveností běžet a přidělením procesoru a které jiné programy procesor mezitím držely. Potřebuje práva správce a okno, ve kterém jádro ztratilo události, neukáže žádnou hodnotu místo chybné. Při dvou vybraných bězích řekne, zda se čekání posunulo víc než vlastní rozptyl oken.
Stejná karta uvádí procesor, na kterém nejvytíženější vlákno hry (brané jako hlavní vlákno) běželo nejvíc, a čas odložených volání procedur (DPC) změřený tam, kde běželo, vedle průměrného procesoru. Série přidá jeden řádek: zda v bězích se stejným nastavením (pilot nebo strana A) tento čas DPC a trhání stoupaly a klesaly spolu. Popisuje jen souběh; co způsobuje co, změřeno není.
Síť během záznamu
Během záznamu, dokud hra běží, posílá w0a desetkrát za sekundu malou sondu na 1.1.1.1, tedy na adresu, kterou používá karta Živé připojení na stránce Připojení. Nejde o server tvé hry: měří se tak tvoje vlastní připojení (router, Wi-Fi, síť poskytovatele), tedy část, kterou provoz každé hry prochází jako první. Sonda bez odpovědi do jedné sekundy se počítá jako ztracená. Pokud síť na ping nikdy neodpoví, přejde w0a na navazování spojení TCP (handshake) na portu 443 stejné adresy, pětkrát za sekundu, a pingy z doby před přepnutím ze záznamu vypadnou: byly filtrované, ne ztracené. Dokud neběží žádná hra, nic se neposílá, a mimo záznam měření sítě vůbec neběží.
Při dvou vybraných bězích dostane srovnávací karta řádek Síť: dobu odezvy p95, ztrátu a špičky obou běhů vedle sebe, bez barvy, protože karta srovnává snímky, ne sítě. Zkopírovaný výsledek nese stejná tři čísla. Pokud byl běh změřen navazováním spojení, řádek to uvádí; handshake ukazuje o něco víc než ping. Nápověda řádku přidá pro každý běh p50, p99, nejdelší dobu odezvy a hranici špičky.
Špička je řada sond nad hranicí špičky a počítá se jednou, ať trvá jakkoli dlouho. Hranice je horní kvartil plus tři mezikvartilová rozpětí a nikdy není méně než 10 ms nad mediánem, aby se běžné kolísání klidného připojení nepočítalo. Potřebuje nejméně 20 zodpovězených sond, stejně jako p95; p99 potřebuje 100. Pod tím se místo odhadnutého čísla ukáže pomlčka. Záznam skončí po hodině měření, nebo dřív, když trasa požádá o méně paketů (ICMP source quench) nebo sonda selže; nápověda uvede důvod. Běh uložený starší w0a záznam sítě nemá.
V seznamu dlouhých intervalů mezi snímky každý interval uvádí, kolik sond bylo na cestě ve stejném okně, kolik zůstalo bez odpovědi a nejdelší dobu odezvy. Věta nad seznamem počítá intervaly, které padají do stejného okna jako sonda bez odpovědi nebo sonda nad hranicí špičky. Víc neříká: obojí se stalo ve stejnou chvíli. Zda jedno zdrželo druhé, změřeno není.
Uložené běhy jdou do skenu trhání
Běhy, které uložíš, používá sken trhání jako důkaz: snímky měřitelně pomalejší než snímky kolem nich se tam objeví jako vlastní nález vedle možných příčin. Uložený běh ze hry, která trhá, je ten nejpřímější důkaz, jaký mu můžeš dát.
Související
Ze zhruba tuctu fází mezi kliknutím a změnou pixelu vlastní software tři, zbytek patří firmwaru, obrazovce a hře: Jak snížit latenci (input lag): co software dokáže zkrátit a co ne
Zkouška Pro na 3 dny se aktivuje přímo v aplikaci přes Discord, bez karty: Jak funguje zkušební verze zdarma
Pomohla ti tahle stránka?
Co chybělo, nebo co nefungovalo? Čteme každou jednu takovou zprávu.
Odešle se jen to, co napíšeš, spolu s názvem této stránky. Náš server si kvůli omezení zneužívání zaznamená i IP adresu připojení a smaže ji spolu s hlášením. Pokud ti ještě nebylo 16, toto pole prosím nepoužívej. Zásady ochrany soukromí
Jestli tahle stránka problém nevyřešila, napiš nám — uveď, který článek jsi četl, a my ten článek opravíme.