PerfView is a performance-analysis tool that helps isolate CPU- and memory-related performance issues.
  • Version:


    File Name:

    Date Published:


    File Size:

    5.4 MB

      PerfView is a performance analysis tool focusing on ETW information (ETL files) as well as CLR memory information (heap dumps). It can collect and view ETL in a variety of ways. Powerful grouping operators allow you to understand performance profiles in ways other tools can't. PerfView is used internally at Microsoft by a number of teams and is the primary performance investigation tool on the .NET Runtime team. Features include:
      • Non-invasive collection - suitable for use in live, production environments
      • Xcopy deployment - copy and run
      • Memory
        • Support for very large heaps (gigabytes)
        • Snapshot diffing
        • Dump files (.dmp)
      • CPU Performance
        • Support for managed, native, and mixed code
        • Can read XPerf logs
        • Profile diffing

      Updates in the 1.9.0 version include:

      • Generalization of Thread Time views support arbitrary requests demarked by user defined Start-Stop events
      • Significantly improved support for Async and Parallel activityes in the 'Thread Time' Views
      • Can display file disk usage in the stack view using the Size -> DirectorySize option
      • Supports reading a very simple *.PerfView.XML or *.PerfView.JSON file, which enable reading data from 'foreign' profilers.
      • Support for Windows 10 self describing ETW events
      • Support for EventSource causality tracking
      • Suport for V4.6.2 .NET Runtimes that line number level on NGEN images (e.g. the framework) even if IL PDBS are not available when NGEN images were created
      Updates in the 1.8.0 version include:

      • Various Win 10 ETW support
      • Support for opening VS2015 .DiagSession files
      • Suppport for new Self-describing ETW format.
      • Ability to look display the size of a IL DLL or EXE as a Heap in the viewer to understand why it is as big as it is
      • Support for resolving types and GC dumps for .NET Native executables.
      • Support for new symbol server format
      • Fixed issues displaying numbers HTML in non-english locals.
      • Support for showing the size of disk for a Directory in the stack viewer.
      • Added IIS checkbox to make collecting traces with detailed IIS information easy.
      • Overweight Analysis for determining why two traces differ quickly.
      • Support for EventSource V4.6 causality Tracking
      • Ability to capture every .NET Call being made (see .Net Calls in collection dialog)
      Updates in the 1.7.0 version include:

      • Much improved '(With Tasks) views handles async much better (will improve more in the future as well)
      • Added the 'Size' menu and the 'Directory Size' menu item for figuring out where disk space is going.
      • Enabled Goto Source for .NET Framework. Will fetch the source code from Microsoft's server so you can see inside .NET framework code.
      • Can turn on Network Capture to capture every network packet (See collection dialog box). Rudimentary parsing in the 'events' view
      • Net GC Allocations (as well as the original alot-ignore free) now possible for coarse sampling (the default)
      • Provider Browser in collection menu for exploring ETW events on the system (can look at manifset)
      • PerfView log from time of collection is storted in the file and is available from the 'TraceLog' view.
      • 'Set As Default Grouping Menu Item' lets you set your default stack viewer parameters.
      • In the events' view you can select events and issue the 'Highlight in Histogram' to see where they are visually in the histogram.

      Updates in the 1.6.0 version include:

      • Bug fixes for some crashing issues when collecting heap dumps (IndexOutOfRangeException)
      • Better stacks in some cases where the stack transitions into the kernel
      • /WPR option that allows you to generate data as the WPR tool would (to view in WPA)
      Updates in the 1.5.0 version include:
      • Support so that ETL data of EventSource Events take with PerfVIew are viable with the WPA tool.
      • Can log performance counters to the ETL file using the /MonitorPerformanceCounter switch
      • Support for collecing working set data every half second (MemInfo)
      • PerfVIew is smaller and faster

      Updates in the version include:
      • Added more /StopOn* options for stopping the circular buffer when paritcular events happen.
      • Support for events logged with WPP Software Tracing (place TMF files in an TMF directory)

  • Supported Operating System

    Windows 10 , Windows 7, Windows 8, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Vista

      • Supports .NET Framework versions 2.0 and above
      • PerfView itself is a V4.0 app and needs .NET V4.0 installed to run
      • No setup required, just xcopy and run.
      • Detailed instructions, including usage tutorials, can be found under "Help | User's Guide" in PerfView.