This repository started with ProcessMon.ps1: a focused monitor to catch what Windows launches in the background while gaming, especially short-lived or periodic tasks that can line up with frame-time spikes (for example TiWorker.exe, CompatTelRunner.exe, and similar maintenance/telemetry processes).
From there, the workflow expanded into additional scripts to test mitigation strategies on hybrid CPUs (Alder Lake class):
- first by steering some background activity toward efficiency cores,
- then by validating behavior with
Stutter-Hunter.ps1, - and finally by refining detection logic in related tooling so many targets are handled with Idle priority adjustments instead of broader, more aggressive changes.
The goal is practical control and observability: identify interference, test changes, measure results, and keep what actually helps.
- PowerShell 5.1 / Windows PowerShell automation for low-level system workflows.
- .NET Runspaces for true multi-threaded producer/consumer design.
- WMI/CIM event tracing (
Win32_ProcessStartTrace,Win32_ProcessStopTrace) for low-latency process lifecycle capture. - Bulk CIM performance sampling (
Win32_PerfFormattedData_PerfProc_Process) to reduce per-process query overhead. - Thread-safe shared state with synchronized hashtables and explicit
Monitorlocking. - Dynamic C# compilation via
Add-Typefor high-frequency loops with lower PowerShell overhead. System.Diagnostics.ProcessAPI usage for CPU time deltas, kernel/user split, working set behavior, priority classes, and affinity control.- Windows scheduling controls: process PriorityClass (including Idle/BelowNormal) and ProcessorAffinity masks.
- NVML interop (P/Invoke to
nvml.dll) for direct NVIDIA telemetry (clock, temp, utilization, VRAM). nvidia-smiCLI integration for quick GPU clock/temperature polling.- CSV reporting pipeline for offline filtering/sorting and post-session analysis.
- Operational UX features: optional text-to-speech alerts, console health checks, and self-elevation patterns for admin-required visibility.
Real-time process start/stop monitor for Windows 10/11 focused on finding background activity that correlates with in-game stutter or input hitching.
- Subscribes to WMI process lifecycle events (
startandstop) with low latency. - Captures process metadata close to launch time: owner/SID, command line, parent process, session, executable path.
- Samples CPU, memory, and I/O metrics in a background runspace and tracks peaks/totals.
- Exports a per-process lifetime report to CSV.
- Optional TTS announces process activity while you stay in-game.
-SampleIntervalMs(default1000) for metric sampling frequency.-OutputCsvto choose report path.-Quietto reduce console output.-NoTtsto disable voice alerts.-ExcludeNamesto suppress known noisy processes.
Run before reproducing a stutter scenario, then sort CSV by CPU/I/O peaks and short-lived events around the time you felt the hitch.
High-frequency interference detector designed for hybrid-CPU gaming scenarios where short spikes (not average load) are the real problem.
- Uses a tight loop (default
100ms) to compare per-process CPU time deltas. - Flags processes that exceed configurable CPU spike thresholds.
- Classifies risk patterns such as:
- high-priority background spikes,
- kernel-heavy spikes (driver/AV style behavior),
- abrupt memory working-set churn used as a lightweight paging pressure proxy.
- Emits timestamped alerts and optional beep cues for critical events.
-GameProcessNameto exclude the active game executable.-SampleIntervalMsfor detection granularity.-CpuSpikeThresholdfor alert sensitivity.-HardFaultThreshold(declared for tuning workflows; logic currently focuses on fast proxies).
Run during gameplay to catch interference in real time, then apply policy changes (priority/affinity) only where repeated offenders are confirmed.
Minimal overhead polling script for NVIDIA GPU clocks and temperature using nvidia-smi.
- Sets its own process priority to Idle.
- Calls
nvidia-smiin a loop every 5 seconds. - Prints SM clock, memory clock, and GPU temperature.
Quick sanity check while testing game settings, driver changes, or background mitigation scripts.
Direct NVML-based GPU telemetry script with controllable process scheduling (priority + affinity).
- Loads
nvml.dlland binds native NVML methods through C# interop (Add-Type). - Reads:
- graphics clock (GHz),
- GPU temperature,
- GPU utilization,
- VRAM used percentage.
- Sets the script process to Idle and applies a configurable affinity mask.
- Streams timestamped telemetry once per second.
When you want direct API-level GPU telemetry and deterministic script scheduling behavior during performance experiments.
- Observe process behavior with
ProcessMon.ps1and identify repeat offenders. - Validate interference patterns live with
Stutter-Hunter.ps1. - Apply conservative scheduling policy (often priority-first, e.g., Idle) before stronger affinity constraints.
- Correlate with GPU state using one of the GPU scripts to rule in/out GPU-side bottlenecks.
- Iterate only on changes that consistently improve frame-time stability.
- Windows 10/11
- PowerShell 5.1
- Administrator privileges recommended for full system/process visibility
- NVIDIA tooling for GPU scripts:
nvidia-smi.exeon PATH (or default NVIDIA install location)nvml.dllavailable for the direct NVML script