Hardware diagnostics, AI/GPU telemetry, and process management utility for Windows developers. Built with C++20 and Qt 6 (Qt Quick).
Windows Task Manager is built for general desktop use, not active software development. It falls short during common engineering workflows:
EADDRINUSEfriction: When a local dev server (Node, Vite, Python, Rails, Docker) crashes ungracefully, Task Manager does not show listening ports. Resolving conflicts requiresnetstat -ano | findstr :3000andtaskkill /PID <PID> /Fin a shell.- Locked files and build artifacts: Windows blocks file deletion when a handle remains open, but Explorer never identifies which process owns it.
- Opaque AI/CUDA VRAM allocation: Task Manager clusters GPU allocations into generic totals, hiding per-process VRAM growth rates during local LLM (Ollama, PyTorch, ComfyUI) experimentation.
- Hybrid CPU core contention: On Intel Alder Lake and Raptor Lake processors (12th–14th Gen), background processes (browsers, chat apps, torrents) routinely compete with compilers and games for Performance Cores (P-Cores).
RathonWare addresses these specific pain points by pairing direct Win32/NT kernel APIs with an accelerated Qt Quick interface.
- Windows 10 (21H2+) or Windows 11 (64-bit)
- Qt 6.6+ with MinGW 64-bit (or MSVC 2022)
- CMake 3.16+ and Ninja build system
- Administrative privileges (required to inspect remote process PEBs and manipulate core affinities)
# 1. Clone repository
git clone https://github.com/ismaelUML/RathonWare.git
cd RathonWare
# 2. Add Qt and MinGW toolchain to PATH (adjust paths to your Qt installation)
$env:PATH = "C:\Qt\Tools\mingw1310_64\bin;C:\Qt\Tools\CMake_64\bin;C:\Qt\Tools\Ninja;C:\Qt\6.6.3\mingw_64\bin;" + $env:PATH
# 3. Configure and compile in Release mode
cmake -B build -G "Ninja" -DCMAKE_BUILD_TYPE=Release
cmake --build build
# 4. Launch binary
./build/RathonWare.exeTo collect runtime DLLs with windeployqt and compile an Inno Setup installer:
./deploy.ps1The resulting standalone setup executable will be generated at build/RathonWareSetup.exe.
Type :port (for example, :3000, :8080, :5432) in the search bar or Command Palette (Ctrl+K). RathonWare resolves the owning process using GetExtendedTcpTable / GetExtendedUdpTable and provides a one-click termination button.
Drag and drop any locked file or directory into the File Unlocker dialog, or type unlock <path> in the Command Palette. RathonWare uses the Windows Restart Manager API (rstrtmgr.dll) to identify holding PIDs and terminate them cleanly.
- Per-Process VRAM Breakdown: Displays dedicated memory per process, tagging compute processes (PyTorch, Ollama, TensorRT) versus standard 3D graphics.
- Hardware Throttle Reasons: Decodes NVIDIA hardware bitmasks in real time (Thermal Limit, Power Cap Limit, Hardware Slowdown).
- VRAM Leak Detection: Runs a sliding-window heuristic tracking allocation slope to identify runaway memory growth.
- Portable Fallback: Late-binds
nvml.dlldynamically; automatically falls back to DXGI 1.4 (IDXGIAdapter3) on AMD and Intel GPUs.
- Per-Core Heatmap Grid: Visualizes every logical core with real-time utilization via
NtQuerySystemInformation(SystemProcessorPerformanceInformation). - Hybrid Core Detection: Distinguishes Intel P-Cores from E-Cores via
GetLogicalProcessorInformationEx. - Quarantine Background Apps: 1-click action to lock secondary processes (Discord, Slack, Spotify, Chrome) to E-Cores with Windows 11 EcoQoS (
ProcessPowerThrottling), preserving 100% of P-Cores for compilers and foreground compute.
- Kill Process Tree: Breadth-First Search (BFS) discovery of child processes, terminated bottom-up (leaves first) to avoid orphaned worker processes.
- Process Suspend / Resume: Freezes runaway processes atomically using
NtSuspendProcesswithout losing memory or debug state.
| Component | Implementation | Rationale |
|---|---|---|
| Frontend | Qt Quick / QML 6 (QQuickStyle::Basic) |
Hardware-accelerated rendering; avoids styling conflicts with custom delegates. |
| Port Resolution | iphlpapi.dll (GetExtendedTcpTable) |
Sub-millisecond socket-to-PID correlation without shelling out to netstat. |
| File Locking | rstrtmgr.dll (Restart Manager) |
Direct kernel query; avoids thread deadlocks associated with full handle scans. |
| Process Inspection | ntdll.dll (NtQueryInformationProcess + PEB) |
Reads CLI arguments via ReadProcessMemory; avoids 400ms COM delays from WMI. |
| Core Telemetry | ntdll.dll (NtQuerySystemInformation) |
Reads per-core kernel/user ticks in under 50 microseconds. |
| GPU Telemetry | Late-bound nvml.dll with DXGI 1.4 fallback |
Prevents missing-DLL crashes on non-NVIDIA hardware. |
RathonWare is engineered following strict Clean / Hexagonal Architecture (Ports & Adapters) and Production Resilience principles:
-
Hexagonal Core (
src/domain/,src/ports/,src/usecases/):-
Pure Domain (
domain/): Immutable entities and business algorithms (e.g.ProcessTreeResolver) implemented using 100% standard C++20 with zero external libraries, zero Qt, and zero Win32 headers. -
Contracts (
ports/): Pure abstract interfaces (IProcessPort,ISystemPort,IGpuPort,ICpuTopologyPort,IPortPort,IFileUnlockerPort). -
Use Cases (
usecases/): Orchestrator core enforcing invariant checks (e.g., kernel protection for PID <= 4, bottom-up tree kill scheduling, and circuit breaker trip logic). -
Adapters (
adapters/):-
Driven Adapters (
adapters/driven/win32/): Low-level Win32, NT kernel, and DirectX/NVML hardware implementations. -
Driving Adapters (
adapters/driving/qt/): Qt Quick QML controllers and models (ProcessModel,SystemMonitor, etc.).
-
Driven Adapters (
-
Pure Domain (
-
Resilience & Concurrency Limits:
-
Circuit Breaker (
common/circuit_breaker.h): Closed/Open/HalfOpen state machine with automatic failure trip threshold and cooldown probing for GPU telemetry. -
Backpressure & Bounded Worker Pool (
common/bounded_executor.h): Fixed worker threads and bounded task queue that rejects excess requests when saturated, eliminating runaway OOM risks. -
Memory Eviction (
common/ring_buffer.h): Strict FIFO eviction ring buffers guaranteeing bounded memory usage for 60-second telemetry histories. -
Cascading Cancellation (
common/cancellation_token.h): Propagates cancellation signals down to OS loops and background tasks.
-
Circuit Breaker (
-
Continuous Integration & Quality:
- Automated GitHub Actions quality gate (
.github/workflows/ci.yml) running unit tests (ctest) on Windows runners. - Automated cyclomatic complexity audit (
$\le 5$ per function rule). - SonarCloud continuous inspection integration (
sonar-project.properties).
- Automated GitHub Actions quality gate (
- Not an overclocking or voltage utility: Frequency and fan curves belong in firmware or vendor-specific tools (MSI Afterburner).
- Not cross-platform: RathonWare is deeply coupled to Windows NT kernel APIs, Win32 handle tables, and NVML/DXGI. Linux and macOS are explicitly unsupported.
- Not a kernel driver: Operates entirely in user mode with standard administrator elevation (
requireAdministratormanifest). No third-party drivers (.sys) are installed.