Na potrzeby szybkiego podstawowego monitoringu systemów Windows napisałem jakiś czas temu konsolowy monitor systemu. Prosty program stylizowany nieco na htop umożliwia podgląd obciążenia procesora, pamięci RAM, pliku wymiany i podstawowy podgląd drzewa procesów.
Aplikacja napisana jest w C# z wykorzystaniem kwerend bazy danych WMI (Windows Management Instrumentation, zainteresowanych odsyłam do dokumentacji m.in. tutaj). Program jest obiektowy i umożliwia stosunkowo łatwą rozbudowę zarówno zaimplementowanych funkcjonalności jak i całej aplikacji poprzez dodawanie nowych funkcji.
Aplikacja skomplikowana jest do pliku *.exe, można więc uruchomić ją bezpośrednio z powłoki graficznej (wówczas otworzy się okno konsoli). Takie wywołanie programu umożliwia pracę jedynie w podstawowym trybie, który pokazuje wyłącznie zużycie procesora i RAM:

Dla uzyskania dostępu do dodatkowych opcji należy uruchomić program z poziomu konsoli z odpowiednimi parametrami np.:
c:\\>WinTop.exe cr
wywołanie takie pokaże nam nie tylko sumaryczne obciążenie procesora, ale także obciążenie jego poszczególnych rdzeni:

żeby zobaczyć stopień użycia pliku wymiany powinniśmy wywołać program z parametrem v:
c:\\>WinTop.exe v

natomiast dostęp do listy procesów zapewnia użycie parametru p:
c:\\>WinTop.exe p

Oczywiście, wszystkie parametry można dowolnie łączyć i podawać w jakiejkolwiek kolejności 😉 Poniżej zebrane w całość parametry wywołania dla WinTop:
cr (alias: core) - obciążenie poszczególnych rdzeni procesora, v (alias: virt) - sumaryczne zużycie pamięci wirtualnej, p (alias: process) - 30 pierwszych procesów w systemie wraz z informacją o pid, nazwie, zużyciu ramu oraz pamięci wirtualnej. Parametry albo ich aliasy należy podawać oddzielone spacją.
A tak wygląda program wywołany z wszystkimi parametrami:

dla kronikarskiej ścisłości wyjście z programu następuje po naciśnięciu Esc ;), a cały program udostępniany jest na licencji GNU / GPL.
Projekt do pobrania z mojego repozytorium GitHub 🙂
Projekt jest dostępny w wersji beta i nie zaimplementowano w nim kilku funkcji np. automatycznego wykrywania wielordzeniowości CPU czy jego architektury.