You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* Scenario Documentation.
Describe to would-be users whether they should start with PerfView or
TraceEvent based on their ultimate goal.
* README clean-up pass.
* Remove extra spaces.
Copy file name to clipboardexpand all lines: README.md
+15-31
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,11 @@ PerfView requires .NET Framework 4.7.2 or later, which is widely available for a
13
13
14
14
### Are you here about the TraceEvent Library?
15
15
16
-
PerfView is built on a library called Microsoft.Diagnostics.Tracing.TraceEvent, that knows how to both collect and parse Event Tracing for Windows (ETW) 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](documentation/TraceEvent/TraceEventLibrary.md)
16
+
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](documentation/TraceEvent/TraceEventLibrary.md)
17
+
18
+
### Not Sure if you should use PerfView or TraceEvent?
19
+
20
+
See the [scenarios](documentation/Scenarios.md) document to determine which is the best choice for what you're trying to do.
17
21
18
22
### Learning about PerfView
19
23
@@ -26,7 +30,7 @@ download PerfView using the instructions above and select the Help -> User's Gui
26
30
27
31
When you have question about PerfView, your first reaction should be to search the Users Guide (Help -> User's Guide) and
28
32
see if you can find the answer already. If that does not work you can ask a question by creating a [new PerfView Issue](https://github.com/Microsoft/perfview/issues/new).
29
-
State your question succinctly in the title, and if necessary give details in the body of the issue, there is a issue tag
33
+
State your question succinctly in the title, and if necessary give details in the body of the issue, there is an issue tag
30
34
called 'question' that you should use as well that marks your issue as a question rather than some bug report.
31
35
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.
32
36
This allows those watching for issues to reproduce your environment and give much more detailed and useful answers.
@@ -58,15 +62,13 @@ to download Visual Studio 2022 Community Edition if you don't already have Visua
58
62
PerfView is mostly C# code, however there is a small amount of C++ code to implement some advanced features of PerfView
59
63
(The ETWCLrProfiler dlls that allow PerfView to intercept the .NET Method calls; see .NET Call in the Collect dialog).
60
64
If you downloaded the Visual Studio 2022 Community Edition, it does not install the C++ compilation tools by default and
61
-
it also does not include the Windows 10 SDK by default (we build PerfView so it can run on Win8 as well as Win10). Thus
62
-
when you install Visual Studio 2022 check the 'Desktop Development with C++' option and then look the right pane to see
65
+
it also does not include the Windows 10 SDK by default. Thus
66
+
when you install Visual Studio 2022 check the 'Desktop Development with C++' option and then look in the right pane to see
63
67
the optional sub-components, and make sure the Windows 10 SDK is also checked (it typically is not). Installing the latest version should be OK. If you have
64
-
already installed Visual Studio 2022, you can add these options by going to Control Panel -> Programs and Features -> Visual Studio 2022, and click 'Modify'. This will get you to the place where you can selecte the Desktop Development with C++ and the Windows 10 SDK.
68
+
already installed Visual Studio 2022, you can add these options by launching the Visual Studio Installer and modifying the installation. This will get you to the place where you can select the 'Desktop Development with C++' and the 'Windows 10 SDK' options.
65
69
If you get any errors compiling the ETWClrProfiler* dlls, it is likely associated with getting this Win 10.0 SDK. See
66
70
the troubleshooting sections below for more if you need it.
67
71
68
-
The .NET Core SDK should be part of the default Visual Studio 2022 installation now, but if not it can be installed easily from [here](https://www.microsoft.com/net/download/windows).
69
-
70
72
### Cloning the PerfView GitHub Repository.
71
73
72
74
The first step in getting started with the PerfView source code is to clone the PerfView GitHub repository.
@@ -84,11 +86,10 @@ PerfView is developed in Visual Studio 2022 using features through C# 6.
84
86
The build follows standard Visual Studio conventions, and the resulting PerfView.exe file ends up in
85
87
src/PerfView/bin/*BuildType*/PerfView.exe. You need only deploy this one EXE to use it.
86
88
87
-
* The solution consists of 11 projects, representing support DLLs and the main EXE. To run PerfView in the
89
+
* The solution consists of several projects, representing support DLLs and the main EXE. To run PerfView in the
88
90
debugger **you need to make sure that the 'Startup Project' is set to the 'PerfView' project** so that it launches
89
91
the main EXE. If the PerfView project in the Solution Explorer (on the right) is not bold, right click on the PerfView project
90
92
and select 'Set as Startup Project'. After doing this 'Start Debugging' (F5) should work.
91
-
(It is annoying that this is not part of the .sln file...).
92
93
93
94
### Deploying your new version of Perfview
94
95
@@ -128,8 +129,7 @@ among other things a PerfView.exe. This one file is all you need to deploy.
128
129
* If you get an error "MSB8036: The Windows SDK version 10.0.17763.0 was not found", Or you get a 'assert.h' not found error, or
129
130
frankly any error associated with building the ETWClrProfiler dlls, you should make sure that you have the Windows 10.0.17763.0
130
131
SDK installed. Unfortunately this library tends not to be
131
-
installed with Visual Studio anymore unless you ask for it explicitly. To fix it
132
-
* windows-Key -> type Control panel -> Programs and Features, and right click on your VS2019 and select 'Modify'. Then look under the C++ Desktop Development and check that the Windows SDK 10.0.17763.0 option is selected. If not, select it and have the setup install this. Then try building PerfView again.
132
+
installed with Visual Studio anymore unless you ask for it explicitly. To fix it launch the Visual Studio Installer, modify the installation, and then look under the C++ Desktop Development and check that the Windows SDK 10.0.17763.0 option is selected. If not, select it and continue. Then try building PerfView again.
133
133
134
134
### Running Tests
135
135
@@ -141,17 +141,12 @@ the debugger to figure out what went wrong.
141
141
142
142
### Check in testing and code coverage statistica
143
143
144
-
This repository uses [AppVeyor](https://www.appveyor.com/) and Azure DevOps to automatically build and test pull requests, which allows
145
-
the community to easily view build results. Code coverage is provided by [codecov.io](https://codecov.io). The build and
146
-
coverage status reflected here is the AppVeyor and Azure DevOps build status of the **main** branch.
144
+
This repository uses Azure DevOps to automatically build and test pull requests, which allows
145
+
the community to easily view build results. The build and status reflected here is the Azure DevOps build status of the **main** branch.
> :warning: Builds produced by AppVeyor and Azure DevOps CI are not considered official builds of PerfView, and are not signed or otherwise
149
+
> :warning: Builds produced by Azure DevOps CI are not considered official builds of PerfView, and are not signed or otherwise
155
150
> validated for safety or security in any way. This build integration is provided as a convenience for community
156
151
> participants, but is not endorsed by Microsoft nor is it considered an official release channel in any way. For
157
152
> information about official builds, see the [PerfView Download Page](documentation/Downloading.md) page.
@@ -184,15 +179,4 @@ The code is broken into several main sections:
184
179
heap using Microsoft.Diagnostics.Runtime APIs. This allows getting heap dumps from debugger process dumps.
185
180
* Global - An example of using PerfView's extensibility mechanism
186
181
* CSVReader - old code that lets PerfView read .ETL.CSV files generated by XPERF (probably will delete)
187
-
* Zip - a clone of System.IO.Compression.dll so that PerfView can run on pre V4.5 runtimes (probably will delete)
188
-
189
-
### Other Documentation
190
-
191
-
These docs are for specialized scenarios
192
-
193
-
*[Updating SupportFiles](documentation/MakingSupportFilesNugetPackages.md) PerfView uses some binary files that it
194
-
does not build itself. We created two nuget packages to hold these. This document tells you how to update this
195
-
nuget package when these files need to be updated. Very few people should care about these instructions.
196
-
197
-
*[Internal Docs](https://devdiv.visualstudio.com/DevDiv/_git/perfview?_a=preview&path=%2Fdocumentation%2Finternal%2FinternalDocs.md&version=GBmain) This is documentation that is only
198
-
useful for internal Microsoft users. By design the link will not work for most people.
182
+
* Zip - a clone of System.IO.Compression.dll so that PerfView can run on pre V4.5 runtimes (probably will delete)
Not sure which you should use? This document aims to point you in the right direction.
4
+
5
+
## Start With PerfView If Your Goal Is To...
6
+
- Collect an adhoc Event Tracing for Windows (ETW) trace to analyze program behavior or a performance issue.
7
+
- Collect an adhoc heap snapshot to analyze a managed memory issue such as a managed memory leak.
8
+
- Use the flight recorder mode to capture an ETW trace of hard to reproduce behavior.
9
+
- Perform adhoc analysis of a previously collected performance trace.
10
+
- Diff two performance traces to or managed memory heap snapshots to root cause a performance issue.
11
+
- Use a GUI-based performance analysis tool.
12
+
13
+
## Start With TraceEvent If Your Goal Is To...
14
+
- Have programmatic access to trace collection and/or trace processing and analysis.
15
+
- Implement a service that captures or processes traces at scale.
16
+
- Build collection and/or processing capabilities into an existing application.
17
+
18
+
## PerfView Limitations
19
+
- PerfView is not designed to be used as a capture or processing agent in services. It is designed for use in user-interactive sessions.
20
+
- PerfView is not supported on operating system SKUs such as nanoserver that do not have GUI libraries installed. See PerfViewCollect if you need to capture adhoc traces on these SKUs.
0 commit comments