PerfView logo

PerfView

Deep-dive performance analysis for .NET on Windows

PerfView is a free Windows tool that isolates CPU and memory bottlenecks, supports ETW and EventPipe traces, and offers specialized .NET runtime diagnostics.

PerfView banner

Overview

Highlights

ETW and EventPipe trace collection and parsing
Built-in UI for CPU and memory bottleneck investigation
Integrated TraceEvent library for programmatic trace manipulation
Single‑EXE deployment with self‑extracting support DLLs

Pros

  • Free with no licensing restrictions
  • Deep .NET runtime diagnostics
  • Lightweight single executable
  • Extensive documentation and video tutorials

Considerations

  • Primary UI runs only on Windows
  • Requires .NET Framework 4.7.2+
  • Limited native Linux analysis support
  • No built‑in automated reporting features

Managed products teams compare with

When teams consider PerfView, these hosted platforms usually appear on the same shortlist.

Blackfire Continuous Profiler logo

Blackfire Continuous Profiler

Low-overhead continuous profiling for app performance optimization.

Datadog Continuous Profiler logo

Datadog Continuous Profiler

Always-on code profiling to cut latency and cloud costs.

Elastic Universal Profiling logo

Elastic Universal Profiling

Whole-system, always-on profiling with no instrumentation.

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Developers troubleshooting .NET application performance
  • Performance engineers analyzing CPU/memory hotspots
  • Teams needing a portable trace analysis tool
  • Researchers exploring ETW/EventPipe data

Not ideal when

  • Cross‑platform teams requiring native Linux GUI
  • Users needing real‑time monitoring dashboards
  • Environments without .NET Framework 4.7.2+
  • Scenarios demanding extensive automated report generation

How teams use it

Identify GC‑induced latency spikes

Pinpoint garbage collection pauses and optimize memory allocation patterns.

Diagnose high CPU usage in ASP.NET Core

Correlate ETW events to specific request handling code and reduce CPU consumption.

Analyze performance of a Windows service

Collect ETW trace, visualize thread activity, and resolve contention issues.

Custom trace processing with TraceEvent

Leverage the underlying library to script automated analysis pipelines.

Tech snapshot

C#91%
HTML4%
Roff3%
Rich Text Format1%
Shell1%
C1%

Tags

performance-analysisdotnet-coreperformancewindowsdotnet

Frequently asked questions

Do I need to build PerfView to use it?

No, you can download the pre‑built PerfView.exe from the download page and run it directly.

Which .NET version is required?

PerfView runs on .NET Framework 4.7.2 or later, which is included with supported Windows versions.

Can PerfView analyze traces from Linux?

It can import trace files collected on Linux, but the UI runs on Windows.

How do I contribute code?

Clone the repository, open PerfView.sln in Visual Studio 2022, make changes, and submit a pull request following the OpenSourceGitWorkflow.

Where can I find help with specific trace files?

Create an issue tagged ‘question’, attach the *.ETL.ZIP file, and the community can reproduce and assist.

Project at a glance

Active
Stars
4,613
Watchers
4,613
Forks
753
LicenseMIT
Repo age10 years old
Last commit5 days ago
Primary languageC#

Last synced 4 hours ago