DobryPC.pl
Strona głównaNajnowsze działy, poradniki i projekty DobryPC.plPoradnikiWindows, sieci, sprzęt i rozwiązywanie problemówHomelabProxmox, Docker, storage, backup i self-hostingSmart HomeHome Assistant, automatyzacje i lokalny inteligentny domNarzędziaKalkulatory i generatory działające w przeglądarceProjektyKompletne projekty od założeń do wdrożeniaGamingKomputery gamingowe, dobór podzespołów oraz praktyczne poradniki do gierKomputery gamingowePolecane zestawy, podzespoły, modernizacja i dobór komputera do gierGryPoradniki, ustawienia, wydajność i praktyczne materiały dotyczące gierKontaktKontakt z autorem i wsparcie rozwoju DobryPC.plApexDash — darmowy panel telemetrii Forza Horizon na Stream DockApexDash zamienia Stream Dock, Mirabox lub zgodne urządzenie w panel telemetrii do Forza Horizon z prędkością, RPM, biegiem, oponami i statystykami.Co to jest Home Assistant i dlaczego warto go wybrać?Proste wprowadzenie do Home Assistanta: lokalne sterowanie, prywatność, automatyzacje oraz porównanie z Apple Home, Google Home, Alexą i Tuya.Co to jest homelab i jak zacząć bez kupowania szafy serwerowej?Proste wprowadzenie do homelabu: sprzęt, system, wirtualizacja, sieć, kopie zapasowe i pierwsze usługi na domowym serwerze.Co to jest Microsoft Hyper-V i kiedy warto się go nauczyć?Hyper-V w Windows Server 2025 i Windows 11: architektura, maszyny, wirtualne przełączniki, zarządzanie, wymagania oraz darmowe opcje do nauki.Co to jest Proxmox VE i dlaczego tak często trafia do homelabów?Krótkie wprowadzenie do Proxmox VE 9.2: maszyny KVM, kontenery LXC, storage, backup, klastry oraz darmowe i płatne repozytoria.Co to jest Ubuntu Server? Wersje, zastosowania i darmowe wsparcieUbuntu Server 26.04 LTS i starsze wydania LTS: zastosowania, brak pulpitu, aktualizacje, pięć lat wsparcia oraz darmowy Ubuntu Pro.Co to jest VMware ESXi i czym różni się od vSphere oraz vCenter?Proste wyjaśnienie produktów VMware: ESXi/ESX, vSphere i vCenter, możliwości wersji bezpłatnej oraz ograniczenia ważne w homelabie.Co to jest Windows Server 2025 i jak długo testować go za darmo?Windows Server 2025: edycje Standard i Datacenter, Server Core, role AD DS, Hyper-V i pliki oraz legalna 180-dniowa wersja ewaluacyjna.DLSS vs FSR vs XeSS w 2026 roku — jak działają i co jest najlepsze?Porównanie NVIDIA DLSS 4.5, AMD FSR Redstone i Intel XeSS 3: upscaling, generowanie klatek, opóźnienia, jakość obrazu i zgodność z kartami.FrameHub — jak rozwijam własny hub do optymalizacji Windowsa i gierHistoria FrameHuba, mojego programu do zarządzania biblioteką gier, profilami CPU, procesami i konfiguracją Counter-Strike 2.Jak obliczyć podsieć IPv4 i zrozumieć zapis CIDR?Maska, CIDR, adres sieci, broadcast i zakres hostów wyjaśnione na prostych przykładach /24, /26, /28 i /30.Jak powtarzalnie benchmarkować CS2 — moje narzędzie z AutoHotkey i CapFrameXCS2 Consistent Benchmarking Tool automatyzuje uruchamianie mapy testowej, start pomiaru w CapFrameX i zamknięcie gry.Dlaczego komputer wolno działa? Jak znaleźć przyczynę bez zgadywaniaPraktyczna diagnostyka wolnego komputera: Menedżer zadań, autostart, wolne miejsce, temperatury, RAM, dysk i aktualizacje Windows.Jaki sprzęt do Home Assistanta wybrać w 2026 roku?Home Assistant Green, Raspberry Pi 5, N100/N150 oraz używane terminale i mini PC — porównanie opłacalności, poboru prądu i możliwości rozbudowy.Komputer nie ma dostępu do Internetu — diagnostyka krok po krokuProsta diagnostyka połączenia w Windows 11: router, karta sieciowa, adres IP, brama, DNS, sterownik i reset ustawień sieciowych.Najlepsze karty graficzne do gier 2026 — ranking GPURanking kart graficznych do 1080p, 1440p i 4K z wynikami rasteryzacji, ray tracingu oraz oceną opłacalności.Najlepsze procesory do CS2 i gier competitive w 2026 rokuPolecane procesory do CS2, Valoranta, Fortnite i innych gier competitive — od taniego AM5 po topowe Ryzeny X3D.Optymalizacja CS2 w 2026 — ustawienia pod FPS, 1% low i input lagPrzetestowane ustawienia CS2, Windows 11, CPU Sets i opcje uruchamiania pod wysoki FPS, stabilne 1% low oraz niski input lag.Outlook nie wysyła wiadomości — diagnostyka krok po krokuKompletna diagnostyka problemu, gdy Outlook nie wysyła wiadomości, pozostawia je w kolejce albo zamyka okno bez potwierdzenia.Projekt: pierwszy homelab na używanym mini PCKompletny plan pierwszego homelabu: wybór używanego mini PC, Proxmox, maszyna z Dockerem, usługi, sieć, monitoring i backup.Jaki dongle Zigbee wybrać w 2026 roku?Polecane koordynatory Zigbee do Home Assistanta: SONOFF ZBDongle-E, Home Assistant Connect ZBT-2 i SMLIGHT. Różnice, ceny oraz linki do polskich ofert.Process Core Optimizer — mój program do zarządzania rdzeniami CPU w WindowsHistoria mojego programu do zarządzania CPU Affinity, CPU Sets, priorytetami i automatycznymi profilami procesów w Windows.Proxmox, Hyper-V czy VMware — co wybrać do homelabu w 2026 roku?Praktyczne porównanie Proxmox VE 9.2, Microsoft Hyper-V i darmowego VMware ESXi 8: koszty, sprzęt, funkcje, nauka i zastosowania.Projekt: prywatna chmura zdjęć z Immich zamiast Google PhotosPlan wdrożenia Immich na domowym serwerze: wymagania, Docker Compose, storage, aplikacja mobilna, dostęp zdalny i prawidłowy backup.Robocopy bez niespodzianek — bezpieczna kopia plików w WindowsJak używać Robocopy do kopiowania i synchronizacji danych: tryb testowy, logi, ponawianie, wielowątkowość i niebezpieczne opcje.Ubuntu Server czy Windows Server — który system wybrać do nauki?Porównanie Ubuntu Server 26.04 LTS i Windows Server 2025: koszty, administracja, role, kontenery, wymagania oraz wybór do homelabu.ZHA czy Zigbee2MQTT — co wybrać w 2026 roku?Aktualne porównanie ZHA i Zigbee2MQTT: instalacja, kompatybilność urządzeń, konfiguracja, kopie zapasowe oraz migracja między systemami.Zigbee, Wi-Fi, Thread, Matter, Tasmota i ESPHome — co wybrać?Proste porównanie technologii Smart Home w 2026 roku: czym są, czego wymagają, kto ich używa oraz co najlepiej pasuje do Home Assistanta.
Gry

Jak powtarzalnie benchmarkować CS2 — moje narzędzie z AutoHotkey i CapFrameX

CS2 Consistent Benchmarking Tool automatyzuje uruchamianie mapy testowej, start pomiaru w CapFrameX i zamknięcie gry.

Autor:ErykOpublikowano:Aktualizacja:11 min czytania
#CS2#benchmark#CapFrameX#AutoHotkey#FPS#frametime

DobryPC.pl tworzę niezależnie, poświęcając na poradniki własny czas i środki.Wesprzyj rozwój strony

Porównywanie ustawień Counter-Strike 2 jest trudniejsze, niż może się wydawać. Dwa kolejne przebiegi tej samej mapy mogą różnić się przez pozycję kamery, moment rozpoczęcia pomiaru, procesy działające w tle albo zwykły błąd osoby wykonującej test.

Dlatego stworzyłem CS2 Consistent Benchmarking Tool — prosty skrypt w AutoHotkey, który automatyzuje uruchomienie CS2, wczytanie konkretnej mapy warsztatowej, rozpoczęcie pomiaru w CapFrameX i zamknięcie gry po zakończeniu testu.

Narzędzie nie próbuje symulować prawdziwego meczu Premier albo FACEIT. Jego zadaniem jest coś innego:

Każdy przebieg ma zaczynać się w możliwie podobny sposób, żeby dało się uczciwie porównać ustawienia grafiki, Windowsa, sterowników albo procesora.

To właśnie tego skryptu używałem przy tworzeniu mojego poradnika optymalizacji CS2.

Dlaczego zwykły benchmark CS2 bywa niewiarygodny?

W prawdziwym meczu wynik zależy od wielu zmiennych:

  • liczby graczy widocznych na ekranie,
  • granatów dymnych, molotovów i efektów cząsteczkowych,
  • miejsca na mapie,
  • obciążenia serwera,
  • działania FACEIT Anti-Cheat,
  • programów uruchomionych w tle,
  • aktualnego zachowania botów albo innych graczy,
  • momentu rozpoczęcia i zakończenia pomiaru.

Taki scenariusz dobrze pokazuje rzeczywiste doświadczenie z gry, ale słabo nadaje się do porównania dwóch drobnych zmian.

Gdy chcę sprawdzić, czy konkretna opcja daje 2%, 5% albo 10% różnicy, potrzebuję powtarzalnego testu. Nie musi idealnie odwzorowywać meczu. Musi za każdym razem wykonywać możliwie podobną sekwencję.

Czym jest CS2 Consistent Benchmarking Tool?

Projekt składa się przede wszystkim z jednego skryptu:

cs2_benchmark.ahk

Skrypt współpracuje z:

  • AutoHotkey v2,
  • CapFrameX,
  • mapą warsztatową CS2 FPS Benchmark,
  • klientem Steam,
  • Counter-Strike 2.

Nie modyfikuje plików gry, nie wstrzykuje bibliotek i nie ingeruje w pamięć procesu. Automatyzuje standardowe czynności, które można wykonać ręcznie przy użyciu klawiatury i konsoli gry.

Repozytorium projektu:

CS2 Consistent Benchmarking Tool na GitHubie

Bezpośredni plik skryptu:

Pobierz cs2_benchmark.ahk

Skąd wziął się pomysł?

Projekt został zainspirowany narzędziem CS2 Benchmark Automation przygotowanym przez Ark0N.

W moim przypadku oryginalny zestaw plików i skryptów nie działał poprawnie. Zamiast dalej poprawiać gotową paczkę, przygotowałem prostszą wersję opartą na:

  • oficjalnej instalacji AutoHotkey,
  • oficjalnej instalacji CapFrameX,
  • osobnym, czytelnym skrypcie .ahk,
  • automatycznym wykrywaniu instalacji Steam,
  • łatwych do zmiany opóźnieniach i ustawieniach.

Celem nie było stworzenie rozbudowanej aplikacji z interfejsem. Narzędzie miało robić jedną rzecz i wykonywać ją w możliwie przewidywalny sposób.

Czego potrzebujesz?

AutoHotkey v2

AutoHotkey uruchamia skrypt odpowiedzialny za sterowanie oknem gry i wysyłanie poleceń.

Pobierzesz go z oficjalnej strony:

AutoHotkey

Po instalacji pliki z rozszerzeniem .ahk powinny być automatycznie powiązane z programem.

CapFrameX

CapFrameX zapisuje dane o FPS i frametime. Sam skrypt nie mierzy wydajności — wysyła jedynie klawisz rozpoczynający pomiar.

Pobieranie:

CapFrameX

Mapa warsztatowa

Skrypt korzysta z mapy:

CS2 FPS Benchmark

Przed pierwszym testem zasubskrybuj ją w Warsztacie Steam i poczekaj, aż zostanie pobrana.

Konfiguracja CapFrameX

Otwórz CapFrameX i przejdź do zakładki odpowiedzialnej za przechwytywanie danych.

Ustaw:

Capture time: 102 seconds
Capture hotkey: F5

Skrypt wysyła klawisz F5, dlatego skrót w CapFrameX musi być taki sam.

Czas 102 sekund obejmuje około 100 sekund właściwego testu oraz niewielki zapas na zakończenie i zapis pliku.

Przed uruchomieniem skryptu pozostaw CapFrameX włączony w tle.

Jak używać narzędzia?

  1. Uruchom Steam.
  2. Uruchom CapFrameX.
  3. Sprawdź, czy czas przechwytywania wynosi 102 sekundy.
  4. Sprawdź, czy skrót przechwytywania to F5.
  5. Zamknij niepotrzebne programy działające w tle.
  6. Uruchom cs2_benchmark.ahk.
  7. Nie przełączaj okien i nie używaj klawiatury podczas automatyzacji.
  8. Po zakończeniu odczytaj wynik w CapFrameX.

Skrypt uruchomi grę, wczyta mapę, rozpocznie pomiar, odczeka ustawiony czas, a następnie zamknie CS2.

Co dokładnie robi skrypt?

1. Wykrywa instalację Steam

Skrypt najpierw sprawdza wpisy w rejestrze Windows:

HKCU\Software\Valve\Steam
HKLM\SOFTWARE\WOW6432Node\Valve\Steam
HKLM\SOFTWARE\Valve\Steam

Jeżeli nie znajdzie właściwej ścieżki, sprawdza również domyślne lokalizacje:

C:\Program Files (x86)\Steam\steam.exe
C:\Program Files\Steam\steam.exe

Dzięki temu w większości przypadków nie trzeba ręcznie wpisywać ścieżki do steam.exe.

2. Uruchamia Counter-Strike 2 z konsolą

Gra jest uruchamiana przez Steam z identyfikatorem aplikacji 730 oraz parametrami aktywującymi konsolę:

-applaunch 730 +con_enable 1 -console +toggleconsole

3. Czeka na okno gry

Domyślnie skrypt czeka maksymalnie:

120 sekund

na pojawienie się okna Counter-Strike 2.

Po jego wykryciu pozostawia dodatkowe 15 sekund na ustabilizowanie uruchamiania gry.

4. Wczytuje mapę warsztatową

Do konsoli zostaje wpisane:

map_workshop 3240880604

Liczba 3240880604 jest identyfikatorem mapy używanej przez narzędzie.

Po wysłaniu komendy skrypt zamyka konsolę i czeka na załadowanie mapy.

5. Rozpoczyna pomiar

Po domyślnym opóźnieniu wynoszącym 8 sekund skrypt odtwarza dwa krótkie sygnały dźwiękowe i wysyła:

F5

To rozpoczyna przechwytywanie w CapFrameX.

6. Kończy test

Skrypt czeka 102 sekundy, ponownie aktywuje konsolę i wpisuje:

quit

Gra zostaje zamknięta, a wynik pozostaje dostępny w CapFrameX.

Najważniejsze ustawienia skryptu

Na początku pliku znajdują się wartości, które można łatwo zmienić:

workshopId := "3240880604"

cs2WindowWaitSeconds := 120
postWindowSettleMs := 15000
startHotkeyToSend := "{F5}"

closeConsoleDelayMs := 3000
mapStartDelayMs := 8000
benchmarkDurationMs := 102000

Znaczenie:

Zmienna Działanie
workshopId Identyfikator mapy warsztatowej
cs2WindowWaitSeconds Maksymalny czas oczekiwania na okno CS2
postWindowSettleMs Dodatkowe oczekiwanie po wykryciu okna
startHotkeyToSend Klawisz rozpoczynający pomiar CapFrameX
closeConsoleDelayMs Czas przed zamknięciem konsoli
mapStartDelayMs Oczekiwanie na mapę przed rozpoczęciem pomiaru
benchmarkDurationMs Czas testu przed zamknięciem gry

Co zrobić, gdy skrypt uruchamia pomiar za wcześnie?

Na szybszym komputerze domyślne 8 sekund może wystarczyć. Na wolniejszym dysku albo po większej aktualizacji CS2 mapa może ładować się dłużej.

Jeżeli CapFrameX zaczyna nagrywać podczas ekranu ładowania, zwiększ:

mapStartDelayMs := 8000

Przykładowo do 12 sekund:

mapStartDelayMs := 12000

Nie zmieniaj tej wartości między porównywanymi konfiguracjami. Wszystkie przebiegi powinny korzystać z identycznego opóźnienia.

Co zrobić, gdy CapFrameX nie rozpoczyna pomiaru?

Sprawdź kolejno:

  1. czy CapFrameX jest uruchomiony,
  2. czy aktywny skrót przechwytywania to F5,
  3. czy żaden inny program nie przechwytuje tego klawisza,
  4. czy okno CS2 jest aktywne,
  5. czy skrypt doszedł do dwóch sygnałów dźwiękowych.

Możesz również zmienić klawisz zarówno w CapFrameX, jak i w skrypcie:

startHotkeyToSend := "{F6}"

Obie wartości muszą się zgadzać.

Jak wykonywać uczciwe porównania?

Sama automatyzacja nie wystarczy. Metodologia musi być taka sama dla każdej konfiguracji.

Zmieniaj tylko jedną rzecz

Nie włączaj jednocześnie HAGS, nowego planu zasilania, innych ustawień grafiki i profilu CPU.

Gdy wynik się zmieni, nie będziesz wiedzieć, która modyfikacja za to odpowiada.

Wykonuj kilka przebiegów

Przy swoich testach wykonywałem po trzy przebiegi dla każdej konfiguracji i liczyłem średnią.

Przykład:

Przebieg Średni FPS
1 899,4
2 902,1
3 900,7
Średnia 900,7

Pojedynczy wynik może być zaburzony przez usługę Windows, zadanie w tle albo chwilowy skok temperatury.

Po większej zmianie uruchom komputer ponownie

Restart jest szczególnie ważny po zmianie:

  • sterownika karty graficznej,
  • HAGS,
  • Integralności pamięci,
  • ustawień BIOS-u,
  • profilu pamięci EXPO lub XMP,
  • planu zasilania,
  • konfiguracji procesora.

Utrzymuj podobne warunki

Kontroluj:

  • temperaturę CPU i GPU,
  • programy działające w tle,
  • wersję sterownika,
  • wersję gry,
  • stan FACEIT Anti-Cheat,
  • ustawienia systemu,
  • parametry uruchamiania CS2.

Nie porównuj wyniku wykonanego bez FACEIT AC z wynikiem wykonanym przy uruchomionym anti-cheacie.

Jakie dane analizować?

Średni FPS

Pokazuje ogólną przepustowość komputera, ale nie mówi wszystkiego o płynności.

Dwie konfiguracje mogą osiągnąć podobną średnią, a zachowywać się inaczej podczas krótkich spadków.

1% low

W przybliżeniu pokazuje wydajność w najwolniejszym 1% klatek.

W grach competitive wartość ta często jest ważniejsza od dodatkowych kilkunastu średnich FPS, ponieważ lepiej opisuje powtarzające się spadki płynności.

0,1% low

Jest bardziej wrażliwe na pojedyncze przycięcia, zadania w tle i nietypowe zdarzenia.

Nie należy oceniać konfiguracji na podstawie jednego przebiegu 0,1% low. Trzeba porównywać kilka testów i sprawdzić, czy problem się powtarza.

Frametime

Frametime pokazuje czas renderowania pojedynczej klatki.

Przykładowo:

100 FPS = około 10 ms
240 FPS = około 4,17 ms
360 FPS = około 2,78 ms
500 FPS = około 2 ms

Wykres frametime pozwala znaleźć nagłe skoki, których nie widać w samej średniej FPS.

Czego wynik nie pokazuje?

Mapa warsztatowa nie odwzorowuje w pełni:

  • prawdziwego serwera Premier,
  • meczu FACEIT 5 na 5,
  • dziesięciu graczy jednocześnie,
  • wszystkich możliwych granatów,
  • obciążenia sieciowego,
  • każdej lokalizacji na każdej mapie,
  • zachowania gry po wielu godzinach działania.

Wynik benchmarku jest najczęściej wyższy niż FPS podczas normalnego meczu.

Nie powinno się więc pisać:

Mój komputer zawsze osiąga 900 FPS w CS2.

Poprawniejszy wniosek brzmi:

W tej samej, powtarzalnej sekwencji ustawienie A było szybsze od ustawienia B o około 5%.

Narzędzie służy do porównań względnych, a nie do obiecywania dokładnej liczby klatek w każdym meczu.

Przykładowe zastosowania

Skrypt nadaje się do porównania:

  • dwóch wersji sterownika GPU,
  • ustawień HAGS,
  • Trybu gry Windows,
  • różnych planów zasilania,
  • CPU Sets i CPU Affinity,
  • włączonego i wyłączonego SMT,
  • różnych rozdzielczości,
  • ustawień cieni, MSAA i cząsteczek,
  • działania FACEIT Anti-Cheat,
  • pamięci RAM przed i po włączeniu EXPO,
  • procesora przed i po zmianie limitów mocy,
  • dwóch kart graficznych albo dwóch kompletnych komputerów.

Właśnie w taki sposób wykorzystałem narzędzie podczas przygotowywania pełnego poradnika do optymalizacji CS2.

Ograniczenia obecnej wersji

To prosty skrypt, a nie kompletne środowisko laboratoryjne.

Obecna wersja:

  • wykonuje jeden przebieg po uruchomieniu,
  • opiera się na czasowych opóźnieniach,
  • zakłada nazwę okna Counter-Strike 2,
  • wymaga poprawnie działającej konsoli,
  • wymaga zgodnego skrótu w CapFrameX,
  • nie analizuje automatycznie zapisanych wyników,
  • nie wykrywa, czy mapa załadowała się przed wysłaniem F5,
  • nie zapisuje samodzielnie opisu testowanej konfiguracji.

Trzy przebiegi trzeba więc uruchomić osobno, a później porównać w CapFrameX.

Prostota jest tutaj również zaletą. Kod jest krótki, czytelny i można łatwo sprawdzić, jakie czynności wykonuje.

Bezpieczeństwo

Skrypt automatyzuje klawiaturę i uruchamianie gry. Nie jest cheatem i nie zmienia mechaniki CS2.

Mimo to przed uruchomieniem dowolnego skryptu pobranego z Internetu warto przeczytać jego kod.

W tym przypadku cały plik można sprawdzić bezpośrednio na GitHubie:

Zobacz kod cs2_benchmark.ahk

Narzędzie powinno być używane poza normalnym meczem, na mapie warsztatowej i wyłącznie do testów wydajności.

Podsumowanie

CS2 Consistent Benchmarking Tool nie ma udawać prawdziwego meczu. Ma usunąć możliwie dużo błędów człowieka z procesu porównywania wydajności.

Automatyzuje:

  1. uruchomienie CS2,
  2. aktywację konsoli,
  3. wczytanie mapy warsztatowej,
  4. rozpoczęcie przechwytywania w CapFrameX,
  5. odczekanie ustalonego czasu,
  6. zamknięcie gry.

Dzięki temu znacznie łatwiej ocenić, czy zmiana ustawienia naprawdę poprawiła FPS albo frametime, czy różnica była tylko wynikiem innego przebiegu testu.

Powiązane materiały:

Źródła