winget install --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
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... |