Windows Performance Diagnostics

Windows performance diagnostics

Remote access, HWiNFO telemetry, local dashboard exposure and controlled gameplay capture for identifying CPU, GPU, memory, thermal, power and frame-time constraints.

Host OS Windows 10 / 11
Local Port 8080
Telemetry HWiNFO64
Remote Parsec + Tunnelmole
01

Required software

Download the required components before starting the diagnostics session.

Remote access

Parsec

Low-latency remote access for initial configuration and live troubleshooting.

Telemetry source

HWiNFO64

Provides CPU, GPU, memory, power and temperature telemetry through shared memory.

Local dashboard

win-stat-server

Browser interface for live telemetry, session data and analysis exports.

Public tunnel

Tunnelmole

Standalone Windows executable for temporary HTTPS access to the local dashboard.

02

Setup procedure

Complete the steps in order. Checklist state is stored locally in the browser.

01

Configure Parsec

Download

Install Parsec on the Windows host and enable hosting.

Capture condition: Parsec uses hardware video encoding. Disconnect the remote session before the final gameplay sample when possible.
02

Configure HWiNFO64

Download

HWiNFO must remain running for the duration of the diagnostics session.

Required: win-stat-server reads HWiNFO shared memory directly. No telemetry will be available if Shared Memory Support is disabled.
03

Start win-stat-server

Download ZIP

Extract the repository and start the included launcher.

powershell -ExecutionPolicy Bypass -File .\hwinfo-performance-lab.ps1
If the BAT launcher fails, open PowerShell in the extracted directory and run the command above.
04

Expose local port 8080

Download tmole.exe

Place tmole.exe in a local folder and run it from PowerShell.

.\tmole.exe 8080
Security: the generated endpoint is publicly reachable while the process is active. Terminate Tunnelmole after the session.
05

Record a controlled gameplay sample

Capture representative gameplay only. Keep loading screens, menus and idle desktop periods outside the measured lap.

Setup progress
0%
03

Analysis scope

Correlate FPS and frame time with utilization, thermals, clocks, power and resource-limit signals.

Primary telemetry

FPS / Frame timeTrend, drops and instability
CPULoad, clocks, package power, PPT/TDC/EDC utilization
GPULoad, clocks, power, temperature, VRAM and limit signals
MemorySystem memory utilization and pressure

Interpretation notes

PPT / TDC / EDC: percentages represent utilization of resource limits. They do not independently prove throttling.
1% / 0.1% lows: HWiNFO polling is suitable for trend analysis but not exact per-frame percentile calculation.
04

Advanced diagnostics

Use only when the primary HWiNFO capture does not fully explain the FPS or stutter problem.

CapFrameX

Per-frame capture for frametime analysis, FPS distribution and stutter detection.

Download

Procedure

  1. Start CapFrameX before launching the test scene.
  2. Select the game process and verify that capture is armed.
  3. Use the same representative gameplay scenario used for the HWiNFO capture.
  4. Capture approximately 60–120 seconds.
  5. Keep menus, loading screens and desktop activity outside the capture.
  6. Save or export the result so it can be compared with the HWiNFO session.

Check

  • Frametime graph: look for spikes, repeated oscillation or sections where frame delivery becomes unstable.
  • Average vs low-percentile FPS: a high average with poor lows usually indicates inconsistent frame delivery rather than insufficient average throughput.
  • Stutter events: note whether spikes occur periodically or only during specific in-game actions.
  • GPU-bound vs CPU-bound behavior: compare the time of frame spikes with the HWiNFO CPU/GPU telemetry.
  • Consistency: repeat the same scene at least once if the first run contains unrelated loading or shader-compilation activity.
Important: do not judge the system only from average FPS. The frametime graph and low-percentile behavior are often more useful for identifying a poor gameplay experience.

LatencyMon

Supporting diagnostic for DPC/ISR latency, driver execution and hard pagefault activity.

Download

Procedure

  1. Close unnecessary background applications before the test.
  2. Start LatencyMon and press Start.
  3. Reproduce the FPS drop or stutter during normal gameplay.
  4. Let it run for several minutes while the problem is occurring.
  5. Press Stop after the issue has been reproduced.
  6. Check the Main, Drivers, Processes and Stats tabs.

Check

  • Highest DPC routine execution time: identify the driver associated with unusually long DPC execution.
  • Highest ISR routine execution time: check whether a hardware driver repeatedly generates long interrupt service times.
  • Driver execution counts: repeated high-latency execution is more relevant than one isolated spike.
  • Hard pagefaults: excessive faults during gameplay may indicate memory pressure or storage-related stalls.
  • Driver filename: record the exact .sys file before changing or updating anything.
Interpretation: LatencyMon is supporting evidence, not an FPS benchmark. A single high value does not prove that a driver is causing the FPS problem. Correlate repeated driver latency with the time of visible stutter and the other telemetry.
05

Troubleshooting

Verify the local telemetry path first, then the tunnel and remote-access layer.

Symptom Resolution
No sensor data Confirm HWiNFO64 is running in Sensors-only mode and Shared Memory Support is enabled. Restart win-stat-server afterward.
localhost:8080 unavailable Confirm the PowerShell/BAT process is still running. If the port is occupied, start the server with -Port 8081 and expose the same port through Tunnelmole.
tmole.exe not recognized Run it from its directory using .\tmole.exe 8080 unless that directory has been added to PATH.
Tunnel URL does not load Verify http://localhost:8080 works locally first.
FPS changes during Parsec connection Disconnect Parsec before the final performance sample when possible.
Mixed desktop and gameplay data Use a dedicated lap and start it only after entering the representative gameplay scene.