Modern işletim sistemlerinde donanım kaynaklarını anlık olarak takip etmek çoğu kullanıcı için vazgeçilmez bir ihtiyaçtır. Ancak günümüzde popüler olan pek çok sistem izleme aracı; Electron, WebView veya ağır çalışma zamanı (runtime) katmanları üzerine inşa edildiği için tek bir pencereyi açık tutmak adına yüzlerce megabayt bellek ve kayda değer işlemci gücü tüketebilmektedir. Sisteminizin durumunu izlemek için çalıştırdığınız bir aracın bizzat kendisinin sistemi yorması, performans odaklı kullanıcılar için kabul edilemez bir çelişkidir.
Bu sorunu kökünden çözmek amacıyla geliştirilen ve açık kaynak kodlu olarak GitHub üzerinde yayınlanan StatMon, modern Windows masaüstü için tamamen yerel (native), bağımsız ve olağanüstü derecede hafif bir görev çubuğu sistem izleme aracıdır. Rust dili ve doğrudan Win32 GDI kütüphaneleri kullanılarak inşa edilen StatMon; arka plan servisi, webview veya harici çalışma zamanı bağımlılıkları gerektirmeksizin yalnızca ~408 KB boyutunda tek bir çalıştırılabilir ikili (.exe) dosyadan meydana gelir.

Teknik Mimari ve Sıfır Maliyetli Performans
StatMon’un temel tasarım felsefesi; işletim sisteminin sunduğu yerel Win32 API’lerini doğrudan kullanarak sıfır ek yükle (zero overhead) maksimum bilgi sunmaktır. Windows 11 üzerinde ölçümlenen çalışma anı profili şu çarpıcı değerleri ortaya koymaktadır:
- Dosya Boyutu: Derleme aşamasında LTO (Link-Time Optimization),
opt-level = "z"ve sembol ayıklama (strip) teknikleriyle optimize edilen ikili dosya yalnızca ~408 KB boyutundadır. - Bellek Ayak İzi (Working Set): Arka planda çalışırken yaklaşık 21 MB çalışma kümesi (working set) belleği kullanır.
- İşlemci Kullanımı: 1 saniyelik (1 Hz) örnekleme aralığında CPU tüketimi ölçüm hassasiyetinin altındadır (%0,1’in altı).
- Görsel Akıcılık: Tüm grafikler GDI çift arabellekleme (double-buffering) yöntemiyle bellekte çizilip ekrana aktarılır; bu sayede en ufak bir titreşim (flicker) yaşanmaz. Kenar yumuşatma için 4 kat süper örnekleme (4x supersampling) uygulanır.
Metriklerin Toplanması ve Win32 Entegrasyonu
StatMon, donanım bilgilerini toplamak için üçüncü taraf sürücülere veya çekirdek düzeyinde yetkilere ihtiyaç duymaz; bütünüyle resmi ve kararlı Windows çekirdek API’lerini kullanır:
- İşlemci (CPU):
GetSystemTimesAPI’si çağrılarak sistemin boştaki süresi (idle time), çekirdek süresi (kernel time) ve kullanıcı modu süresi (user time) arasındaki fark anlık olarak hesaplanır. - Bellek (RAM):
GlobalMemoryStatusExfonksiyonu ile toplam ve kullanılabilir fiziksel bellek miktarı bayt hassasiyetinde okunarak yüzde ve miktar olarak yansıtılır. - Ağ Trafiği (İndirme / Yükleme): IP Helper kütüphanesinin
GetIfTable2tablosu taranarak tüm aktif ağ arabirimlerinin gelen (RX) ve giden (TX) bayt sayaçları periyodik olarak karşılaştırılır. - Disk Aktivitesi ve G/Ç Hızları: Windows Performans Veri Yardımcısı (PDH – Performance Data Helper) entegrasyonu (
PdhOpenQueryWvePdhAddEnglishCounterW) ilePhysicalDisk(_Total)% Disk Time, okuma bayt/sn ve yazma bayt/sn sayaçları canlı olarak izlenir. - Depolama Sürücü Kapasitesi:
GetLogicalDrivesveGetDiskFreeSpaceExWçağrılarıyla sisteme bağlı üç adede kadar sabit diskin doluluk oranları dinamik olarak listelenir.

Görsel Çeşitlilik ve Özelleştirme Seçenekleri
StatMon yalnızca hafifliğiyle değil, masaüstünüze uyum sağlayan zengin görsel seçenekleriyle de öne çıkar:
- Görev Çubuğu Entegrasyonu: Windows görev çubuğu geometri ve konumunu (alt, üst, sol veya sağ kenar) otomatik olarak izler. Dikey görev çubuğunda göstergeler alt alta dizilir; alan daraldığında ise kompakt moda geçerek önce grafikleri küçültür, gerekirse metrikleri kademeli olarak gizleyerek taşmayı önler.
- Çok Yönlü Grafik Tipleri: Her metrik bağımsız olarak Yalnızca Metin, Yalnızca Grafik veya Metin + Grafik olarak ayarlanabilir. Grafik tipleri arasında Bar (Çubuk), Line (Çizgi), Pie (Pasta) ve LED seçenekleri yer alır.
- Yumuşak Geçişli LED Modu: Disk ve Ağ metrikleri için iki sıralı özel LED göstergesi sunulur (Okuma/Yazma ve İndirme/Yükleme). LED parlaklığı yeni veri geldikçe yumuşak bir geçiş eğrisiyle (easing) değişir; ani yanıp sönmeler ve testere dişi dalgalanmalar engellenir.
- Yüzen Pencereler (Floating Widgets): Dilediğiniz metriği görev çubuğundan ayırıp masaüstünün herhangi bir yerine taşıyabilirsiniz. Her yüzen pencerenin arka plan rengi, opaklık derecesi, kenarlık stili ve her zaman üstte kalma durumu ayrı ayrı ayarlanabilir ve koordinatları hafızada tutulur.
- Ayrıntılı İpucu Penceresi (Hover Tooltip): Herhangi bir göstergenin üzerine fareyle gelindiğinde; ayrıntılı bellek dökümü, tam okuma/yazma hızları ve disk bölümlerinin doluluklarını gösteren temayla uyumlu şık bir bilgi kartı açılır.
- 5 Dilde Yerelleştirme: Arayüz İngilizce, Almanca, Fransızca, İspanyolca ve Türkçe dil desteği ile birlikte gelir.
Teknik Özellikler Tablosu (Data at a Glance)
| Özellik | Değer / Standart |
|---|---|
| Geliştirme Dili | Rust (2021 Edition, MSVC Toolchain) |
| Arayüz & Çizim Çatısı | Yerel Win32 API + GDI (Double-Buffered, 4x Supersampling) |
| Webview / Çalışma Zamanı | Yok (Sıfır bağımlılık) |
| Yürütülebilir Dosya Boyutu | ~408 KB (Opt-level: “z”, LTO, Strip) |
| Bellek Kullanımı (RAM) | ~21 MB Working Set |
| Örnekleme Sıklığı | Varsayılan 1000 ms (1 Hz, ayarlanabilir) |
| Desteklenen Metrikler | CPU, RAM, Ağ (↓/↑), Disk Aktivitesi & Hızları, 3 Sürücü Kapasitesi |
| Grafik Seçenekleri | Metin, Çubuk (Bar), Çizgi (Line), Pasta (Pie), Yumuşak LED |
| İşletim Sistemi Uyumluluğu | Windows 10 / Windows 11 (64-bit) |
| Yapılandırma Dosyası | %APPDATA%statmonconfig.json |
| Lisans | Açık Kaynak (MIT Lisansı) |
Kurulum ve Kaynak Koddan Derleme
StatMon’u kullanmaya başlamak için herhangi bir kurulum sihirbazı çalıştırmanıza gerek yoktur:
- GitHub deposunun Releases sayfasından en güncel
statmon-vX.X.X-win64.ziparşivini indirin. - Arşivi dilediğiniz bir dizine açın ve
statmon.exedosyasını çalıştırın. - Görev çubuğunda beliren göstergeye veya sistem tepsisi (tray) simgesine sağ tıklayarak Ayarlar (Settings) menüsünden dilediğiniz gibi özelleştirin.
Projeyi kendi sisteminizde kaynak koddan derlemek isterseniz, Rust geliştirme ortamının kurulu olması yeterlidir:
# Depoyu klonlayın
git clone https://github.com/DigiLiner/statmon.git
cd statmon
# En üst düzey optimizasyonla derleyin
cargo build --release
# Derlenen ikili dosya: targetreleasestatmon.exe
Sıkça Sorulan Sorular (SSS)
StatMon neden GPU veya sıcaklık değerlerini göstermiyor?
GPU sıcaklığı veya fan hızları gibi donanım sensörlerine erişmek, dijital olarak imzalanmış çekirdek düzeyinde (Ring 0) aygıt sürücüleri gerektirir. StatMon; sistemi riske atmamak, güvenlik açıklarına yol açmamak ve sıfır ek yük prensibini korumak amacıyla üçüncü taraf sürücüleri bilerek kapsam dışında bırakmıştır.
Windows SmartScreen uyarısı alırsam ne yapmalıyım?
StatMon tamamen açık kaynaklı ve ücretsiz bir projedir. Ticari pahalı dijital sertifikalarla imzalanmadığı için Windows SmartScreen ilk çalıştırmada koruma uyarısı gösterebilir. Bu durumda “Ek Bilgi” (More Info) bağlantısına tıklayıp “Yine de Çalıştır” (Run anyway) butonunu seçebilirsiniz. Dileyen tüm kullanıcılar projenin kaynak kodlarını GitHub üzerinden bağımsız olarak inceleyebilir ve kendileri derleyebilir.
Çoklu monitör kurulumlarında tüm görev çubuklarını destekliyor mu?
StatMon birincil Windows görev çubuğuna (Shell_TrayWnd) bağlanır. Ancak sahip olduğu Yüzen Pencere (Floating Widget) özelliği sayesinde, herhangi bir metriği ikincil veya üçüncül monitörünüzün dilediğiniz köşesine konumlandırabilir ve orada sabitleyebilirsiniz.
Kaynaklar ve Referanslar
- [1] GitHub Proje Deposu: DigiLiner / StatMon (Resmi Kaynak Kodları ve Dağıtımlar)
- [2] Rust windows-sys Dokümantasyonu: Rust Crate windows-sys: Windows API Tanımlamaları
- [3] Microsoft Win32 Performans Sayaçları: Microsoft Learn: Performance Data Helper (PDH) Mimarisi
- [4] Microsoft Win32 IP Helper API: Microsoft Learn: GetIfTable2 Fonksiyon Dokümantasyonu