PerfView Overview
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.
If you are unfamiliar with PerfView, there are PerfView video tutorials.
Also, Vance Morrison's blog gives overview and getting
started information.
Getting PerfView
Please see the PerfView Download Page for the link and instructions for downloading the
current version of PerfView.
PerfView requires .NET Framework 4.7.2 or later, which is widely available for all supported versions of Windows.
Are you here about the TraceEvent Library?
PerfView is built on a library called Microsoft.Diagnostics.Tracing.TraceEvent, that knows how to both collect and parse Event Tracing for Windows (ETW) and EventPipe (.NET Core trace) data. Thus if there is any information that PerfView collects and processes that you would like to manipulate yourself programmatically, you would probably be interested in the TraceEvent Library Documentation
Not Sure if you should use PerfView or TraceEvent?
See the scenarios document to determine which is the best choice for what you're trying to do.
Learning about PerfView
The PerfView User's Guide is part of the application itself. In addition, you can click the
Users Guide link
to see the GitHub HTML Source File rendered in your browser. You can also simply
download PerfView using the instructions above and select the Help -> User's Guide menu item.
Asking Questions / Reporting Bugs
When you have question about PerfView, your first reaction should be to search the Users Guide (Help -> User's Guide) and
see if you can find the answer already. If that does not work you can ask a question by creating a new PerfView Issue.
State your question succinctly in the title, and if necessary give details in the body of the issue, there is an issue tag
called 'question' that you should use as well that marks your issue as a question rather than some bug report.
If the question is specific to a particular trace (*.ETL.ZIP file) you can drag that file onto the issue and it will be downloaded.
This allows those watching for issues to reproduce your environment and give much more detailed and useful answers.