← Package directory
Available on winget

Install PerfView

PerfView is a CPU and memory performance-analysis tool.

Install with winget
winget install --id Microsoft.PerfView
Upgrade
winget upgrade --id Microsoft.PerfView
Uninstall
winget uninstall --id Microsoft.PerfView

About PerfView

PerfView is a free performance-analysis tool that helps isolate CPU and memory-related performance issues. It is a Windows tool, but it also has some support for analyzing data collected on Linux machines. It works for a wide variety of scenarios, but has a number of special features for investigating performance issues in code written for the .NET runtime.

What's new in 3.2.3

What's Changed - Upgrade Microsoft.Windows.CsWin32 to 0.3.209 (GHSA-ghhp-997w-qr28) by @Copilot in #2409 - Enable Spectre mitigations and linker optimizations for EtwClrProfiler by @danmoseley in #2410 - Fix 'unhanded' / 'occured' typos in UnhandledExceptionDialog body text by @SAY-5 in #2413 - Fix GCStats failures on dotnet trace gc-verbose collections (#2414) by @cincuranet in #2415 - C entrypoint fixes by @zachcmadsen in #2421 New Contributors - @SAY-5 made their first contribution in #2413 Full Changelog: v3.2.2...v3.2.3

Read release notes

Version history

Version Updated Notes
3.2.3 Unknown What's Changed - Upgrade Microsoft.Windows.CsWin32 to 0.3.209 (GHSA-ghhp-997w-qr28) by @Copilot in #2409 - Enable Spectre mitigations and linker optimizations for EtwClrProfiler by @danmoseley in #2410 - Fix 'unhanded' /...
3.2.2 Unknown What's Changed - Fix PDB Symbol Resolution for Unmerged Windows Traces by @brianrob in #2407 Full Changelog: v3.2.1...v3.2.2
3.2.1 Unknown Native and R2R Symbol Download and Parsing Now Available As of this release, if you capture a trace using dotnet-trace collect-linux or record-trace, native and R2R symbols can now be downloaded and resolved at analysis...
3.2.0 Unknown What's Changed - Fix Debug.Assert failures in SpeedScope tests and DynamicTraceEventParser by @brianrob in #2368 - Add TraceParserGen.Tests project and fix code generation bugs by @Copilot in #2308 - Update UsersGuide.ht...
3.1.30 Unknown What's Changed - doc: fix typos by @chinwobble in #2359 - Fix SourceLink parsing to support both wildcard and exact path mappings by @ivberg in #2355 - add horizontal scrolling to eventviewer by @logangeorge01 in #2361 -...
3.1.29 Unknown What's Changed - Warn users when circular buffer overflow causes missing type info in allocation views for selected processes by @Copilot in #2326 - Special-Case BitMask Parsing by @brianrob in #2327 - Refactor PEFile an...
3.1.28 Unknown What's Changed - Add support for Boolean8 to NetTrace V6. by @noahfalk in #2318 - Implement A Thread Time View for Universal Traces by @brianrob in #2320 - Remove Incorrect Argument Description by @brianrob in #2323 Full...
3.1.26 Unknown Roll-up through 2025/10/10. - Only dispose non-null handles in ETWTraceEventSource #2291 - Small cleanup in NettraceUniversalConverter #2292 - Fix hyperlink focus visibility in dark mode and improve keyboard navigation #...
3.1.24 Unknown Roll-up through 2025/08/26. - Implement NuGet Central Package Version Management [#2262] - Fix broken stacks warning for universal traces [#2268] - Fix jitted code symbols in universal traces to show assembly names inste...
3.1.23 Unknown Roll-up through 2025/07/11. - Fixed TraceEvent CaptureState API to support previously unsupported keyword configurations. [#2222] - Added Exception Stacks view for .nettrace files to enhance exception diagnostics. [#2223...
3.1.22 Unknown Roll-up through 2025/06/04. - Added GC Heap Analyzer support for .nettrace files to enhance memory analysis workflows. [#2216] - Introduced PredefinedDynamicTraceEventParser for known TraceLogging events, improving trace...
3.1.21 Unknown Roll-up through 2025/05/02. - Change NetTrace format version support - Add /OSHeapMaxMB to set a max size for OS heap sessions - Implement Nettrace Support for Traces with Universal Providers - Implement R2R Symbol Looku...
3.1.20 Unknown Roll-up through 2025/04/01. - Flamegraph and drill-in menu improvements - Performance improvements around unhandled event dispatch - Add configurable real-time delay in TraceLogEventSource - Don't queue another flush dur...
3.1.19 Unknown Roll-up through 2025/01/30. - Added missing time information in the Raw XML View for GCStats. - Updated activity computation logic to support OpenTelemetry events. - Changed timestamp values to use QPC time based on UTC...
3.1.18 Unknown Roll-up through 2024/12/11. - Fixed perfcollect install script on Azure Linux 3. - Updated System.Text.Json to address
3.1.17 Unknown Roll-up through 2024/11/08. - Numerous accessibility fixes to PerfView. This includes switching out the previous web browser plugin to use WebView2. - Breaking changes to FastSerialization to ensure that only expected ty...
3.1.16 Unknown Roll-up through 2024/10/11. - Performance improvements to DynamicParser. - Fixed GetFileNameWithoutExtensionNoIllegalChars to only trim known file extensions. - Fixed a memory leak when processing EventPipe traces. - Add...
3.1.15 Unknown - Fixed an issue where /buildLayout resulted in an error when the user hadn't previously run PerfView on the machine.
3.1.14 Unknown Roll-up through 2024/08/26. - Added missing Microsoft.Diagnostics.NETCore.Client dependency to the TraceEvent. - ETWClrProfiler compiled with /QSpectre. - Added /buildLayout <path> to PerfView. This allows users to build...
3.1.13 Unknown Roll-up through 2024/07/15. - Update to ClrMD 4 with support for https://symweb.azurefd.net. - Live session support for EventPipe. - GC dynamic event support. - PerfView now opens external links in the user's default bro...