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
Background JIT compilation is a feature that was introduced in Version 4.5 of the .NET runtime. The basic idea is to take advantage of multiple processors available on most machines to speed up startup time by doing Just in Time (JIT) compilation on a background thread. Note that the .NET runtime's preferred solution to the cost o JIT compilation is to precompile the code with NGEN. This reduces the cost of JIT compilation to 0, where background JIT compilation cannot do nearly as well (it tends to reduce it by half), so using NGEN as part of application deployment should be considered first. However if using the
Copy file name to clipboardExpand all lines: src/PerfView/SupportFiles/PerfViewWebVideos.htm
+17-17Lines changed: 17 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -35,13 +35,13 @@ <h1>PerfView Videos</h1>
35
35
</p>
36
36
<h2>Getting the Latest PerfView Videos</h2>
37
37
<p>
38
-
The videos listed below are those that existed at the time this version of PerfView was released. Since more videos are being added all the time, you should check the <ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/">PerfView Tutorial Series</a>
38
+
The videos listed below are those that existed at the time this version of PerfView was released. Since more videos are being added all the time, you should check the <ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/">PerfView Tutorial Series</a>
39
39
for the latest additions.
40
40
</p>
41
41
<h2>Getting PerfView</h2>
42
42
<ol>
43
43
<li>
44
-
<ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/0-getting-perfview">Getting PerfView from the Internet</a> -(2 min) -
44
+
<ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/0-getting-perfview">Getting PerfView from the Internet</a> -(2 min) -
45
45
PerfView is REALLY easy to get. If you have an internet connection you are about 4 clicks
46
46
away from running perfView. This QUICK video shows you how.
47
47
</li>
@@ -55,13 +55,13 @@ <h2>Time Investigations</h2>
55
55
<h3>Collecting Data for Investigations into Time </h3>
56
56
<ol>
57
57
<li>
58
-
<ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/1-collecting-data-run-command">Collecting Data with the PerfView 'Run' Command</a> -(5 min) - Before you can
58
+
<ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/1-collecting-data-run-command">Collecting Data with the PerfView 'Run' Command</a> -(5 min) - Before you can
59
59
investigate, you first have to collect. If your scenario can be run from the
60
60
command line easily, you shoud use the 'Collect -> Run' command to collect the
61
61
data. You can be finished collecting in less than a minute.
62
62
</li>
63
63
<li>
64
-
<ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/11-data-collection-server-scenarios">Collecting Data For Services</a> -(7 min) - When investigating services it is convinient
64
+
<ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/11-data-collection-server-scenarios">Collecting Data For Services</a> -(7 min) - When investigating services it is convinient
65
65
to explicitly start and stop the trace. It is also very common to want to collect data on
66
66
one machine (often by asking someone else to collect the data) and then analyze it on another
67
67
machine. This video shows you some of your options for server-scenario data collection.
<ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/2-simple-cpu-performance-investigation">A Simple CPU Investigation</a> (16 min) - Typically the first investigation you
80
+
<ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/2-simple-cpu-performance-investigation">A Simple CPU Investigation</a> (16 min) - Typically the first investigation you
81
81
do is to check on CPU usage. This totorial is longer than most, but that is
82
82
because it covers a lot of important 'background' information need to be a
83
83
productive investigator. If you watch only one video, this should be it.
84
84
</li>
85
85
86
86
<li>
87
-
<ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/3-resolving-symbols">Symbol Resolution</a> (5 min) - By default Perfview only resolves 'easy'
87
+
<ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/3-resolving-symbols">Symbol Resolution</a> (5 min) - By default Perfview only resolves 'easy'
88
88
symbols (which include many managed methods). If you need symbol (.pdb)
89
89
files to resolve addresses to names you typically need to ask PerfView to
90
90
do this explicitly. This video shows you what the process is where PerfView
91
91
looks by default, and where to start if you have problems getting symbols.
92
92
</li>
93
93
<li>
94
-
<ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/4-grouping-folding">Grouping And Folding</a> (13 min) -
94
+
<ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/4-grouping-folding">Grouping And Folding</a> (13 min) -
95
95
Something that sets PerfView apart from most other profiling tools is its
96
96
ability to hide a large amount of irrelevant detail while also allowing you to
97
97
have high detail on the parts of the application that matter to you.
<p>Typically if you aredoing a time investigation, you are concerned about wall clock time (not CPU time). Thus you can argue that wall clock time investigations are more important that CPU investigations. However wall clock time is more harder to investigate because every thread in your process has its own wall clock time, and what you are intersted in is the CRITICAL PATH among these threads. CPU is nice because it TENDS to be on the critical path (even if the flow of control hops from thread to thread), which means ANY CPU time is probably important. This is NOT true for wall clock time and is part of what makes it harder to analyze. These videos walk you through what you need to know in order to do a successful wall clock time investigation. </p>
120
120
<ol>
121
-
<li><ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/tutorial-12-wall-clock-time-investigation-basics">Wall Clock Time Investigation Basics</a> (16 min) - This video walks through a wall clock investigation on a very simple scenario (a disk bound sequential program). It covers how you should collect the data (the Thread Time checkbox), as well as using a method frame to isolate time to a particular thread and time interval for analysis.</li>
122
-
<li><ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/tutorial-13-leveraging-tasks-make-sense-of-parallelasynchronous-programs">Leveraging Tasks make sense of Parallel/Asynchronous programs</a> (16 min) - This video walks through a more complex scenario where operations are happening in parallel and shows you that if you used System.Diagnostics.Threading.Tasks to do the parallel activity, PerfView can 'roll up' the costs of the paralllel/async activity in a way that allows parallel/async programs to be analyzed like the simpler sequential case. </li>
123
-
<li><ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/tutorial-14-investigating-wall-clock-responce-time-in-aspnet-scenarios">Investigating Wall Clock Response Time of ASP.NET scenarios</a> (16 min) In this video we show how to analyze the wall clock response time of an ASP.NET application. I also discuss this scenario in<adata-mce-href="http://blogs.msdn.com/b/vancem/archive/2012/11/28/video-wall-clock-time-analysis-of-asp-net-applications-using-perfview.aspx" href="http://blogs.msdn.com/b/vancem/archive/2012/11/28/video-wall-clock-time-analysis-of-asp-net-applications-using-perfview.aspx">this blog entry</a>.</li>
121
+
<li><ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/tutorial-12-wall-clock-time-investigation-basics">Wall Clock Time Investigation Basics</a> (16 min) - This video walks through a wall clock investigation on a very simple scenario (a disk bound sequential program). It covers how you should collect the data (the Thread Time checkbox), as well as using a method frame to isolate time to a particular thread and time interval for analysis.</li>
122
+
<li><ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/tutorial-13-leveraging-tasks-make-sense-of-parallelasynchronous-programs">Leveraging Tasks make sense of Parallel/Asynchronous programs</a> (16 min) - This video walks through a more complex scenario where operations are happening in parallel and shows you that if you used System.Diagnostics.Threading.Tasks to do the parallel activity, PerfView can 'roll up' the costs of the paralllel/async activity in a way that allows parallel/async programs to be analyzed like the simpler sequential case. </li>
123
+
<li><ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/tutorial-14-investigating-wall-clock-responce-time-in-aspnet-scenarios">Investigating Wall Clock Response Time of ASP.NET scenarios</a> (16 min) In this video we show how to analyze the wall clock response time of an ASP.NET application. I also discuss this scenario inthis blog entry (archived).</li>
Using the data in the tutorial example, we describe the basic funtionality of
139
139
the Event Viewer, which is mostly about filtering events (by name, time,
140
140
process, and text) as well as deciding which fields to display.
141
141
Also shown are features for accessing the stacks associated with particular
142
142
events and the ability to export the view as a CSV (Excel file) for further processing.
143
143
</li>
144
144
<li>
145
-
<ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/7-using-event-viewer-in-aspnet-scenarios">The Event Viewer in ASP.NET Scenarios</a>
145
+
<ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/7-using-event-viewer-in-aspnet-scenarios">The Event Viewer in ASP.NET Scenarios</a>
146
146
(6 min) - ASP.NET is a common sceanrio for many server workloads, and ASP.NET
147
147
can log ETW events that are very helpful in isolating the processing of one
148
148
request from all the other processing that is happening on the server.
@@ -155,7 +155,7 @@ <h3>Using System.Diagnostics.Tracing.EventSource to Log Your Own Events</h3>
155
155
When doing any time based investigation, it is very useful to know what the program is doing at a 'high level', so that you can easily zoom into these logical regions and focus on just certain aspects of your applications performance. This is especially important in server scenarios as well any scnearios that use asynchronous I/O (because Async I/O makes it harder to use the stack of your program to do the same thing). There is a class in Version 4.5 of the .NET Framework called System.Diagnostics.Tracing.EventSource that lets you do just this. Using this class it is trivial to make your .NET program log ETW events with whatever payload you desire. These videos show you how.
156
156
</p>
157
157
<ol>
158
-
<li><ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/8-generating-your-own-events-eventsources">Generating Your own Events with EventSource</a> (12 min). This video is an introduction to using EventSource, showing you how to write the code, how to turn on your event source and how to view the resulting log messages in the PerfView Event Viewer (see Event Viewer Basics above). There is also a <ahref="http://blogs.msdn.com/b/vancem/archive/2012/07/09/logging-your-own-etw-events-in-c-system-diagnostics-tracing-eventsource.aspx">companion blog entry</a> that has links to a version of EventSource that works on versions of the .NET Framework before V4.5. </li>
158
+
<li><ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/8-generating-your-own-events-eventsources">Generating Your own Events with EventSource</a> (12 min). This video is an introduction to using EventSource, showing you how to write the code, how to turn on your event source and how to view the resulting log messages in the PerfView Event Viewer (see Event Viewer Basics above). There is also a companion blog entry (archived) that has links to a version of EventSource that works on versions of the .NET Framework before V4.5. </li>
<ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/9-net-memory-investigation-basics-of-gc-heap-snapshots">Basics of GC Heap Snapshots</a> (9 min) - The first
168
+
<ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/9-net-memory-investigation-basics-of-gc-heap-snapshots">Basics of GC Heap Snapshots</a> (9 min) - The first
169
169
step in doing .NET Memory investigation is first determine whether .NET
170
170
Memory is your problem and take a heap snapshot. This tutorial shows
171
171
you how to determine how much of your process's memory is GC heap and (if that
172
172
is your problem) shows you how to take a snapshot of the GC heap.
173
173
</li>
174
-
<li><ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/tutorial-10-investigating-net-heap-memory-leaks-part1-collecting-data">Investigating .NET Heap Memory Leaks: Part 1: Collecting the Data</a> (8 min) This is the first of a two part video of step-by-step instructions for using PerfView to investigate a 'Leak' in the .NET GC heap. This first part goes through the mechanics of collecting the data which involves taking two heap snapshots at appropriate times. </li>
175
-
<li><ahref="https://docs.microsoft.com/en-us/shows/perfview-tutorial/tutorial-11-investigating-net-heap-memory-leaks-part2-analyzing-data">Investigation .NET Heap Memory Leaks: Part 2: Analyzing the Data </a>(11 min). In this second part we take the two snapshots collected in part 1 and walk though the mechanics of doing a 'diff' of the two memory heaps to determine how the heap grew between the two points in time. This lets us home in on places where we were not dropping references to objects (which caused them to 'leak'). </li>
174
+
<li><ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/tutorial-10-investigating-net-heap-memory-leaks-part1-collecting-data">Investigating .NET Heap Memory Leaks: Part 1: Collecting the Data</a> (8 min) This is the first of a two part video of step-by-step instructions for using PerfView to investigate a 'Leak' in the .NET GC heap. This first part goes through the mechanics of collecting the data which involves taking two heap snapshots at appropriate times. </li>
175
+
<li><ahref="https://learn.microsoft.com/en-us/shows/perfview-tutorial/tutorial-11-investigating-net-heap-memory-leaks-part2-analyzing-data">Investigation .NET Heap Memory Leaks: Part 2: Analyzing the Data </a>(11 min). In this second part we take the two snapshots collected in part 1 and walk though the mechanics of doing a 'diff' of the two memory heaps to determine how the heap grew between the two points in time. This lets us home in on places where we were not dropping references to objects (which caused them to 'leak'). </li>
0 commit comments