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.
Windows

Process Core Optimizer — mój program do zarządzania rdzeniami CPU w Windows

Historia mojego programu do zarządzania CPU Affinity, CPU Sets, priorytetami i automatycznymi profilami procesów w Windows.

Autor:ErykOpublikowano:10 min czytania
#Process Core Optimizer#Windows#CPU Sets#CPU Affinity#C##WPF

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

Process Core Optimizer to jeden z moich większych hobbystycznych projektów programistycznych. Powstał z zainteresowania wydajnością komputerów, działaniem harmonogramu Windows oraz wpływem przypisania procesów do konkretnych rdzeni procesora.

Nie chciałem tworzyć kolejnego programu, który obiecuje magiczny wzrost FPS po kliknięciu jednego przycisku. Zależało mi na narzędziu pokazującym użytkownikowi, co dokładnie robi, pozwalającym samodzielnie wybrać ustawienia i niewprowadzającym ukrytych zmian w systemie.

Projekt zaczął się jako stosunkowo prosta aplikacja do zmiany priorytetu i koligacji procesów. Z czasem rozrósł się o Windows CPU Sets, automatyczne profile, rozpoznawanie topologii procesora, monitorowanie procesów oraz podstawową telemetrię sprzętu.

Skąd wziął się pomysł?

Windows pozwala zmienić priorytet oraz koligację procesu z poziomu Menedżera zadań. Jest to jednak rozwiązanie tymczasowe i mało wygodne.

Po ponownym uruchomieniu gry albo programu ustawienia zazwyczaj trzeba stosować od nowa. Sam Menedżer zadań nie ułatwia również zrozumienia, które procesory logiczne odpowiadają fizycznym rdzeniom, wątkom SMT lub Hyper-Threading oraz rdzeniom Performance i Efficiency.

Chciałem stworzyć program, który:

  • wyświetla działające procesy w jednym miejscu,
  • pozwala ustawić ich priorytet,
  • umożliwia wybór konkretnych procesorów logicznych,
  • obsługuje zarówno CPU Affinity, jak i Windows CPU Sets,
  • zapisuje ustawienia jako profile,
  • automatycznie stosuje profil po uruchomieniu procesu,
  • nie wykonuje ukrytych „optymalizacji” systemu.

Tak powstał Process Core Optimizer.

Co potrafi program?

Obecna wersja Process Core Optimizer skupia się na zarządzaniu ustawieniami procesów w Windows.

Funkcja Zastosowanie
Priorytet procesu Zmiana priorytetu od Idle do High
CPU Affinity Ścisłe ograniczenie procesu do wybranych procesorów logicznych
Windows CPU Sets Wskazanie preferowanego zestawu procesorów dla procesu
Profile procesów Zapisywanie ustawień dla określonego programu
Automatyczne stosowanie Ponowne ustawienie profilu po uruchomieniu procesu
Obsługa P-core i E-core Rozpoznawanie typów rdzeni w procesorach hybrydowych
Obsługa SMT i HT Odróżnianie rdzeni fizycznych od dodatkowych wątków
Telemetria Podgląd informacji o procesorze, karcie graficznej i pamięci RAM
Logowanie Zapisywanie informacji diagnostycznych i błędów

Program został napisany w C# i WPF, a dane użytkownika są przechowywane w katalogu:

%APPDATA%\ProcessCoreOptimizer

Znajdują się tam między innymi ustawienia, zapisane profile oraz logi aplikacji.

Lista procesów i ręczna konfiguracja

Główny widok programu pokazuje działające procesy oraz podstawowe informacje o ich wykorzystaniu zasobów.

Lista procesów w Process Core Optimizer

Po wybraniu procesu można ustawić:

  • tryb CPU Affinity albo CPU Sets,
  • wybrane procesory logiczne,
  • priorytet procesu,
  • automatyczne stosowanie ustawień w przyszłości.

Nie każdy proces pozwala na zmianę wszystkich parametrów. Procesy systemowe, chronione aplikacje i niektóre gry mogą odmówić dostępu albo wymagać uruchomienia programu jako administrator.

CPU Affinity — twarde przypisanie rdzeni

CPU Affinity to klasyczny mechanizm Windows pozwalający określić, na których procesorach logicznych może wykonywać się dany proces.

Przykładowo proces można ograniczyć do logicznych procesorów 2, 4, 6 i 8. Po zastosowaniu takiej maski harmonogram systemu nie powinien uruchamiać wątków procesu na pozostałych procesorach logicznych.

Daje to dużą kontrolę, ale może też być zbyt restrykcyjne. Przypisanie zbyt małej liczby rdzeni może pogorszyć wydajność albo powodować niestabilne czasy renderowania klatek.

CPU Affinity nie należy więc traktować jako ustawienia, które automatycznie zwiększa wydajność każdego programu.

Windows CPU Sets — łagodniejsza alternatywa

Drugim obsługiwanym mechanizmem są Windows CPU Sets.

CPU Sets pozwalają wskazać preferowany zestaw procesorów logicznych bez stosowania klasycznej, sztywnej maski Affinity. System zachowuje większą kontrolę nad harmonogramem, ale otrzymuje informację, gdzie powinien w pierwszej kolejności wykonywać wątki procesu.

W przypadku współczesnego Windowsa CPU Sets mogą być rozsądniejszym punktem wyjścia niż twarde ograniczanie procesu przez Affinity.

Nadal nie oznacza to gwarantowanego wzrostu FPS. W wielu programach najlepszym rozwiązaniem pozostaje pozostawienie wszystkich rdzeni i zaufanie domyślnemu harmonogramowi Windows.

Profile procesów

Jedną z najważniejszych funkcji programu są zapisane profile.

Profil przechowuje między innymi:

  • nazwę procesu,
  • wybrany tryb optymalizacji,
  • przypisane procesory logiczne,
  • ustawiony priorytet,
  • informację o automatycznym monitorowaniu.

Zapisane profile w Process Core Optimizer

Po zapisaniu profilu nie trzeba za każdym razem otwierać Menedżera zadań i ponownie ustawiać tych samych wartości.

Program może wykryć uruchomienie przypisanego procesu i automatycznie zastosować zapisane ustawienia.

Lekki watcher działający w tle

We wcześniejszych etapach rozwoju programu jednym z problemów było regularne skanowanie całej listy procesów.

Działało to, ale nie było najlepszym rozwiązaniem dla aplikacji, która sama miała być lekka i niepotrzebnie nie obciążać komputera.

W wersji 1.3.0 rozdzieliłem pełne skanowanie procesów widocznych w interfejsie od obserwowania zapisanych profili.

Pełna lista procesów jest odświeżana przede wszystkim wtedy, gdy użytkownik rzeczywiście korzysta z odpowiedniej zakładki. Watcher działający w tle sprawdza natomiast tylko procesy posiadające aktywne profile.

Był to jeden z ważniejszych etapów porządkowania projektu. Zamiast dodawać kolejne funkcje, zacząłem skupiać się na architekturze, przewidywalności i ograniczaniu niepotrzebnej pracy wykonywanej w tle.

Procesory hybrydowe, P-core i E-core

Współczesne procesory nie zawsze składają się z identycznych rdzeni.

W części procesorów Intela występują:

  • rdzenie Performance, czyli P-core,
  • rdzenie Efficiency, czyli E-core,
  • dodatkowe wątki Hyper-Threading.

Procesory AMD mogą natomiast udostępniać dwa wątki SMT na jednym rdzeniu fizycznym.

Process Core Optimizer wykorzystuje informacje udostępniane przez Windows CPU Sets, żeby tam, gdzie jest to możliwe, rozpoznać topologię procesora i odpowiednio opisać procesory logiczne.

Program udostępnia również szybkie opcje pozwalające:

  • zaznaczyć wszystkie procesory,
  • wyczyścić zaznaczenie,
  • wyłączyć dodatkowe wątki SMT lub Hyper-Threading,
  • wyłączyć rdzenie E-core.

Nie oznacza to, że wyłączenie SMT, HT albo E-core zawsze poprawi wydajność. Efekt zależy od konkretnego procesora, gry, aplikacji i liczby programów działających w tle.

Monitorowanie sprzętu

Do programu dodałem również podstawowy moduł telemetrii oparty na LibreHardwareMonitor.

Monitor sprzętu w Process Core Optimizer

Pozwala on podejrzeć wybrane informacje o:

  • procesorze,
  • karcie graficznej,
  • wykorzystaniu pamięci RAM,
  • dostępnych czujnikach sprzętowych.

W nowszej wersji telemetria jest inicjalizowana dopiero po otwarciu zakładki sprzętowej. Program nie musi dzięki temu stale odpytywać czujników, gdy użytkownik korzysta wyłącznie z zarządzania procesami.

Domyślnie ograniczyłem również odpytywanie czujników dysków, ponieważ nie było potrzebne do podstawowego działania aplikacji.

Funkcje, które celowo ograniczyłem

Podczas rozwijania programu część pierwotnych pomysłów została zmieniona albo całkowicie usunięta.

Usunięcie trybu Exclusive

Jedna ze starszych wersji posiadała tryb Exclusive. Jego zadaniem było odsuwanie innych procesów od rdzeni wybranych dla docelowej aplikacji.

Teoretycznie dawało to większą kontrolę nad zasobami. W praktyce program zaczynał ingerować również w procesy, których użytkownik bezpośrednio nie wybrał.

Zwiększało to ryzyko problemów ze stabilnością, a możliwe korzyści wydajnościowe nie były tego warte.

Tryb Exclusive został więc usunięty, a starsze profile korzystające z tej opcji są przekształcane do zwykłego Affinity.

Ukrycie priorytetu RealTime

Priorytet RealTime brzmi jak najlepsze możliwe ustawienie, ale w praktyce może powodować poważne problemy.

Proces z takim priorytetem może utrudnić działanie podstawowych usług systemowych, obsługi myszy, klawiatury albo interfejsu Windows.

Dlatego RealTime jest domyślnie ukryty i musi zostać świadomie włączony w ustawieniach zaawansowanych.

Bezpieczniejsze zapisywanie profili

Profile i ustawienia programu są przechowywane w plikach JSON.

W nowszej wersji dodałem zapis atomowy oraz pliki tymczasowe i zapasowe. Ma to zmniejszyć ryzyko uszkodzenia danych, gdy aplikacja zostanie zamknięta podczas zapisu albo system niespodziewanie przerwie działanie programu.

Dodałem również:

  • rotację dużych logów,
  • ochronę przed uruchomieniem kilku instancji programu,
  • bezpieczniejszą obsługę argumentów startowych,
  • oddzielne serwisy odpowiedzialne za skanowanie, optymalizację i aktualizacje.

Czego nauczył mnie ten projekt?

Process Core Optimizer był dla mnie czymś więcej niż prostym ćwiczeniem w tworzeniu interfejsu WPF.

Podczas pracy nad nim rozwijałem między innymi:

  • programowanie w C#,
  • tworzenie aplikacji desktopowych w WPF,
  • komunikację z funkcjami Windows,
  • pracę z procesami i uprawnieniami,
  • analizowanie topologii procesora,
  • zapisywanie konfiguracji użytkownika,
  • obsługę błędów i logowanie,
  • przygotowywanie instalatora,
  • publikowanie wersji programu na GitHubie,
  • utrzymywanie dokumentacji i changelogu.

Najważniejsza zmiana dotyczyła jednak samego podejścia do projektowania.

Na początku najważniejsze było dla mnie dodawanie kolejnych możliwości. Później zacząłem częściej zadawać sobie pytanie:

Czy ta funkcja jest bezpieczna, przewidywalna i czy użytkownik rozumie, co program rzeczywiście zmienia?

To podejście stało się później jednym z fundamentów kolejnego projektu.

Dlaczego powstał FrameHub?

Po wersji 1.3.0 uznałem Process Core Optimizer za stabilną bazę do zarządzania procesami.

Jednocześnie miałem coraz więcej pomysłów, które przestawały pasować do programu skupionego wyłącznie na rdzeniach CPU i priorytetach.

Chciałem dodać między innymi:

  • bibliotekę gier i aplikacji,
  • wykrywanie instalacji Steam i Epic Games,
  • powiązanie profili bezpośrednio z grami,
  • konfigurację ustawień konkretnych tytułów,
  • bezpieczne kopie plików konfiguracyjnych,
  • bardziej rozbudowany interfejs,
  • kolejne moduły związane z wydajnością Windows.

Zamiast dalej rozbudowywać jedno wyspecjalizowane narzędzie, rozpocząłem nowy projekt — FrameHub.

FrameHub przejął najważniejsze doświadczenia i część podstawowej logiki Process Core Optimizer, ale rozwija je jako większy hub do zarządzania grami, aplikacjami i wydajnością systemu.

Process Core Optimizer nadal pozostaje dostępny jako mniejsze, samodzielne narzędzie.

Czy przypisanie rdzeni zwiększa FPS?

Nie ma jednej odpowiedzi działającej dla każdego komputera.

Zmiana CPU Affinity, CPU Sets lub priorytetu może pomóc w określonych konfiguracjach, ale może też:

  • nie przynieść żadnej różnicy,
  • pogorszyć średni FPS,
  • pogorszyć wartości 1% low,
  • zwiększyć przycięcia,
  • ograniczyć możliwości harmonogramu Windows.

Dlatego najlepszym sposobem jest wykonanie powtarzalnego testu przed zmianą i po zmianie.

Process Core Optimizer daje narzędzia do przeprowadzenia takiego eksperymentu, ale nie obiecuje automatycznego wzrostu wydajności.

Pobieranie i kod źródłowy

Process Core Optimizer jest projektem open source dostępnym na licencji MIT.

Program jest przeznaczony dla systemu Windows. W przypadku zmieniania ustawień gier korzystających z systemów anti-cheat należy pamiętać, że zgodność z każdym zabezpieczeniem nie może być zagwarantowana.

Process Core Optimizer nie próbuje omijać systemów anti-cheat ani modyfikować pamięci gier.

Źródła i dalsza lektura