Skip to content

Commit 5af618d

Browse files
authored
Merge pull request #2082 from MarkMcGeeAtAquent/profiling-may21
[Profiling] Sentence casing, remove H2 bookmarks, etc.
2 parents f6a9378 + b9ca774 commit 5af618d

21 files changed

+135
-155
lines changed

docs/profiling/targetclr.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ VSPerfCmd.exe {/Launch:AppName | /Attach:PID} /TargetCLR[:ClrVersion] [Options]
2626
`ClrVersion`
2727
The version number of the CLR. Use the version format **vN.N.NNNNN**.
2828

29-
## Required Options
29+
## Required options
3030
The **TargetCLR** option can only be used with the **Launch** or **Attach** options.
3131

3232
**Launch:** `AppName`

docs/profiling/thread-details-view-contention-data.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@ manager: douge
1515
ms.workload:
1616
- "multiple"
1717
---
18-
# Thread Details View - Contention Data
18+
# Thread Details view - contention data
1919
The Thread Details view presents a timeline graph of the blocking events in the selected thread of a profiling run that were caused by contentions over resources. A blocking event occurs when the thread is forced to suspend execution because another thread has locked access to a resource.
2020

21-
This view represents the execution timeline of the thread as a horizontal bar and the blocking events as vertical bar on a horizontal timeline for the thread. When necessary, you can zoom in on a section of the timeline to view the individual events. To view the execution path of the functions that led to the event, click the event bar. The functions appear in the Call Stack window. When the source code for a function is available, you can click the function name to edit the source file in the Visual Studio IDE.
21+
This view represents the execution timeline of the thread as a horizontal bar and the blocking events as vertical bar on a horizontal timeline for the thread. When necessary, you can zoom in on a section of the timeline to view the individual events. To view the execution path of the functions that led to the event, click the event bar. The functions appear in the **Call Stack** window. When the source code for a function is available, you can click the function name to edit the source file in the Visual Studio IDE.
2222

23-
## Navigating the Timeline
23+
## Navigate the timeline
2424

2525
#### To zoom in on a timeline segment
2626

@@ -36,17 +36,17 @@ The Thread Details view presents a timeline graph of the blocking events in the
3636

3737
#### To view the call stack of an event
3838

39-
- In the timeline graph, click the vertical bar that represents the event..
39+
- In the timeline graph, click the vertical bar that represents the event.
4040

4141
#### To view or edit the source code of a function in the call stack
4242

43-
- In the Call Stack window, click the function name.
43+
- In the **Call Stack** window, click the function name.
4444

4545
The function source code must be part of the current project.
4646

4747
#### To view the contention events of a resource in all threads in the profiling run
4848

49-
- In the timeline graph, click the name or id of the resource.
49+
- In the timeline graph, click the name or ID of the resource.
5050

5151
The [Resource Details View](../profiling/resource-details-view-contention-data.md) appears for the selected resource.
5252

docs/profiling/thread-ready-connector.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@ manager: douge
1515
ms.workload:
1616
- "multiple"
1717
---
18-
# Thread Ready Connector
18+
# Thread ready connector
1919
When you click a blocking segment to see a call stack and its unblocking stack, the thread ready connector may also appear. If the unblocking event occurred on another thread in the current process, the thread ready connector visually identifies the thread and execution segment that enabled the blocked thread to resume execution.

docs/profiling/threadon-and-threadoff.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ The VSPerfCmd.exe **ThreadOff** and **ThreadOn** subcommands are only available
2424

2525
- **ThreadOn** immediately sets the Thread Start/Stop Count to 1 and therefore resumes profiling.
2626

27-
For more information, see [Profiling Tools APIs](../profiling/profiling-tools-apis.md).
27+
For more information, see [Profile tools APIs](../profiling/profiling-tools-apis.md).
2828

2929
## Syntax
3030

@@ -37,7 +37,7 @@ VSPerfCmd.exe /{ThreadOff|ThreadOn}:TID [Options]
3737
`TID`
3838
The integer identifier of the thread to start or stop.
3939

40-
## Valid Options
40+
## Valid options
4141
**ThreadOn** and **ThreadOff** can be specified on command lines that also contain the following subcommands.
4242

4343
**Start:** `Method`
@@ -64,8 +64,8 @@ VSPerfCmd /Shutdown
6464
6565
```
6666

67-
## See Also
67+
## See also
6868
[VSPerfCmd](../profiling/vsperfcmd.md)
69-
[Profiling Stand-Alone Applications](../profiling/command-line-profiling-of-stand-alone-applications.md)
70-
[Profiling ASP.NET Web Applications](../profiling/command-line-profiling-of-aspnet-web-applications.md)
71-
[Profiling Services](../profiling/command-line-profiling-of-services.md)
69+
[Profile stand-alone applications](../profiling/command-line-profiling-of-stand-alone-applications.md)
70+
[Profile ASP.NET web applications](../profiling/command-line-profiling-of-aspnet-web-applications.md)
71+
[Profile services](../profiling/command-line-profiling-of-services.md)

docs/profiling/threads-view-parallel-performance.md

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ manager: douge
1515
ms.workload:
1616
- "multiple"
1717
---
18-
# Threads View (Parallel Performance)
18+
# Threads View (parallel performance)
1919
The **Threads View** is the most detailed and feature-rich view in the Concurrency Visualizer (choose **Analyze** > **Concurrency Visualizer** to start the concurrency visualizer). By using this view, you can identify whether the threads are executing or blocking because of synchronization, I/O, or some other reason.
2020

2121
During profile analysis, the Concurrency Visualizer examines all operating system context-switch events for each application thread. Context switches can occur for many reasons, such as these:
@@ -49,7 +49,7 @@ The **Threads View** is the most detailed and feature-rich view in the Concurren
4949

5050
- Understand dependencies among worker threads and critical paths of execution.
5151

52-
## Examining Specific Time Intervals and Threads
52+
## Examine specific time intervals and threads
5353
The Threads View shows a timeline. You can zoom and pan within the timeline to examine specific intervals and threads of your application. On the x-axis is time and on the y-axis are several channels:
5454

5555
- Two I/O channels for each disk drive on the system, one channel for reads and one for writes.
@@ -73,18 +73,18 @@ Threads View
7373

7474
When you have selected an interval of time and some threads in it, you can start your performance analysis.
7575

76-
## Analysis Tools
76+
## Analysis tools
7777
This section describes reports and other analysis tools.
7878

79-
### Thread-Blocking Details
79+
### Thread-blocking details
8080
To get information about a blocking event in a particular region on a thread, rest the pointer on that region to display a tooltip. It contains information such as category, region start time, blocking duration, and a blocking API if there is one. If you select the blocking region, the stack at that point in time is displayed in the bottom pane, together with the same information that's displayed in the tooltip. By examining the call stack, you can determine the underlying reason for the thread-blocking event. You can find additional process and thread information by selecting the segment and examining the Current tab.
8181

8282
A path of execution may have multiple blocking events. You can examine these by blocking category so that you can find problem areas more quickly. Just choose one of the blocking categories in the legend on the left.
8383

84-
### Dependencies Between Threads
84+
### Dependencies between threads
8585
The Concurrency Visualizer can show dependencies between threads in your process so that you can determine what a blocked thread was trying to do and learn what other thread enabled it to execute. To determine which thread unblocked another thread, select the relevant blocking segment. If the Concurrency Visualizer can determine the unblocking thread, it draws a line between the unblocking thread and the executing segment that follows the blocking segment. In addition, the **Unblocking stack** tab shows the relevant call stack.
8686

87-
### Thread Execution Details
87+
### Thread execution details
8888
In the timeline graph of a thread, the green segments show when it was executing code. You can get more detailed information about an execution segment.
8989

9090
When you select a point in an execution segment, the Concurrency Visualizer looks for that point in time on the relevant call stack and then displays a black caret above the selected point in the execution segment and displays the call stack itself on the **Current stack** tab. You can select multiple points on the execution segment.
@@ -94,53 +94,53 @@ Threads View
9494
9595
To get an execution profile for all enabled (unhidden) threads in the currently selected time range, choose the **Execution** button in the active legend.
9696

97-
### Timeline Graph
97+
### Timeline graph
9898
The timeline graph shows the activity of all threads in the process and all physical disk devices on the host computer. It also displays GPU activity and marker events. You can zoom in to view more detail or out to view a longer interval of time. You can also select points on the graph to get details about categories, start times, durations, and call stack states.
9999

100100
In the timeline graph, a color indicates the state of a thread at a given time. For example, green segments were executing, red segments were blocked for synchronization, yellow segments were preempted, and purple segments were engaged in device I/O. You can use this view to examine the balance of work among threads that are involved in a parallel loop or in concurrent tasks. If a thread is taking longer to complete than the others, the work might be unbalanced. You can use this information to improve the performance of your program by distributing work more evenly among the threads.
101101

102102
If only one thread is green (executing) at a point in time, the app may not be taking full advantage of the concurrency on the system. You can use the timeline graph to examine dependencies between threads and the temporal relationships between blocking and blocked threads. To rearrange threads, select a thread and then on the toolbar, choose the up or down button. To hide threads, select them and then choose the **Hide Threads** button.
103103

104-
### Profile Reports
104+
### Profile reports
105105
Below the timeline graph is a timeline profile and a pane that has tabs for various reports. The reports automatically update as you change the Threads View. For large traces, the reports pane might be unavailable while the updates are calculated. Each report has two filter adjustments: noise reduction and Just My Code. Use noise reduction to filter out call tree entries where little time is spent. The default filter value is 2 percent, but you can adjust it from 0 percent to 99 percent. To view only the call tree for your code, select the **Just My Code** check box. To view all call trees, clear it.
106106

107-
#### Profile Report
107+
#### Profile report
108108
This tab shows reports that correspond to the entries in the active legend. To display a report, choose one of the entries.
109109

110-
#### Current Stack
110+
#### Current stack
111111
This tab shows the call stack for a selected point on a thread segment in the timeline graph. The call stacks are trimmed to show only activity that is related to your program.
112112

113-
#### Unblocking Stack
113+
#### Unblocking stack
114114
To see which thread unblocked the selected thread, and at what line of code, choose the **Unblocking stack** tab.
115115

116116
#### Execution
117117
The Execution Report shows the breakdown of the time the application spent in execution.
118118

119-
To find the line of code in which execution time is spent, expand the call tree and then, on the shortcut menu for the call tree entry, choose **View Source** or **View Call Sites**. **View Source** locates the executed line of code. **View Call Sites** locates the line of code that called the executed line of code. If only one call site exists, its line of code is highlighted. If multiple call sites exist, you can select the one you want in the dialog box that appears and then choose the **Go to source** button to highlight the call site code. It's often most useful to locate the call site that has the most instances, the most time, or both. For more information, see [Execution Profile Report](../profiling/execution-profile-report.md).
119+
To find the line of code in which execution time is spent, expand the call tree and then, on the shortcut menu for the call tree entry, choose **View Source** or **View Call Sites**. **View Source** locates the executed line of code. **View Call Sites** locates the line of code that called the executed line of code. If only one call site exists, its line of code is highlighted. If multiple call sites exist, you can select the one you want in the dialog box that appears and then choose the **Go to source** button to highlight the call site code. It's often most useful to locate the call site that has the most instances, the most time, or both. For more information, see [Execution profile report](../profiling/execution-profile-report.md).
120120

121121
#### Synchronization
122-
The synchronization report shows the calls that are responsible for synchronization blocks, together with the aggregate blocking times of each call stack. For more information, see [Synchronization Time](../profiling/synchronization-time.md).
122+
The synchronization report shows the calls that are responsible for synchronization blocks, together with the aggregate blocking times of each call stack. For more information, see [Synchronization time](../profiling/synchronization-time.md).
123123

124124
#### I/O
125-
The I/O report shows the calls that are responsible for I/O blocks, together with the aggregate blocking times of each call stack. For more information, see [I/O Time (Threads View)](../profiling/i-o-time-threads-view.md).
125+
The I/O report shows the calls that are responsible for I/O blocks, together with the aggregate blocking times of each call stack. For more information, see [I/O time (Threads View)](../profiling/i-o-time-threads-view.md).
126126

127127
#### Sleep
128-
The sleep report shows the calls that are responsible for sleep blocks, together with the aggregate blocking times of each call stack. For more information, see [Sleep Time](../profiling/sleep-time.md).
128+
The sleep report shows the calls that are responsible for sleep blocks, together with the aggregate blocking times of each call stack. For more information, see [Sleep time](../profiling/sleep-time.md).
129129

130-
#### Memory Management
130+
#### Memory management
131131
The memory management report shows the calls where memory management blocks occurred, together with the aggregate blocking times of each call stack. You can use this information to identify areas that have excessive paging or garbage collection issues. For more information, see [Memory Management Time](../profiling/memory-management-time.md).
132132

133133
#### Preemption
134134
The Preemption report shows the instances where processes on the system preempted the current process and the individual threads that replaced threads in the current process. You can use this information to identify the processes and threads that are most responsible for preemption. For more information, see [Preemption Time](../profiling/preemption-time.md).
135135

136-
#### UI Processing
137-
The UI processing report shows the calls that are responsible for UI processing blocks, together with the aggregate blocking times of each call stack. For more information, see [UI Processing Time](../profiling/ui-processing-time.md).
136+
#### UI processing
137+
The UI processing report shows the calls that are responsible for UI processing blocks, together with the aggregate blocking times of each call stack. For more information, see [UI processing time](../profiling/ui-processing-time.md).
138138

139-
#### Per Thread Summary
140-
This tab shows a color-coded column view of the total time that each thread spent in the run, blocked, I/O and other states. The columns are labeled at the bottom. When you adjust the zoom level in the timeline graph, this tab is automatically updated. At some zoom levels, some threads might not be displayed. When this occurs, ellipses are displayed at the right. If the thread you want does not appear, you can hide other threads. For more information, see [Per Thread Summary Report](../profiling/per-thread-summary-report.md).
139+
#### Per thread summary
140+
This tab shows a color-coded column view of the total time that each thread spent in the run, blocked, I/O and other states. The columns are labeled at the bottom. When you adjust the zoom level in the timeline graph, this tab is automatically updated. At some zoom levels, some threads might not be displayed. When this occurs, ellipses are displayed at the right. If the thread you want does not appear, you can hide other threads. For more information, see [Per thread summary report](../profiling/per-thread-summary-report.md).
141141

142-
#### Disk Operations
143-
This tab shows which processes and threads were involved in disk I/O on behalf of the current process, which files they touched (for example, DLLs that were loaded), how many bytes were read, and other information. You can use this report to evaluate time that is spent in accessing files during execution, especially when your process seems to be I/O bound. For more information, see [Disk Operations Report](../profiling/disk-operations-report-threads-view.md).
142+
#### Disk operations
143+
This tab shows which processes and threads were involved in disk I/O on behalf of the current process, which files they touched (for example, DLLs that were loaded), how many bytes were read, and other information. You can use this report to evaluate time that is spent in accessing files during execution, especially when your process seems to be I/O bound. For more information, see [Disk operations report](../profiling/disk-operations-report-threads-view.md).
144144

145-
## See Also
145+
## See also
146146
[Concurrency Visualizer](../profiling/concurrency-visualizer.md)

docs/profiling/timeline-caret.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ manager: douge
1515
ms.workload:
1616
- "multiple"
1717
---
18-
# Timeline Caret
18+
# Timeline caret
1919
When you select a point on the timeline of an executing thread segment, a Timeline caret appears above it. The call stack that is displayed on the current stack tab is the one that is closest in time to where you clicked the segment. The caret is used to associate the call stack, which is displayed under the **Current** tab, with the instant when it was sampled. The caret shows the exact location of the call stack, which is the closest call stack to the location that the user selected.
2020

21-
## See Also
21+
## See also
2222
[Threads View](../profiling/threads-view-parallel-performance.md)

docs/profiling/timer.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ VSPerfCmd.exe /Start:Sample /Output:TestApp.exe.vsp
6262
VSPerfCmd.exe /Launch:TestApp.exe /Timer:1000000
6363
```
6464

65-
## See Also
65+
## See also
6666
[VSPerfCmd](../profiling/vsperfcmd.md)
67-
[Profiling Stand-Alone Applications](../profiling/command-line-profiling-of-stand-alone-applications.md)
68-
[Profiling ASP.NET Web Applications](../profiling/command-line-profiling-of-aspnet-web-applications.md)
69-
[Profiling Services](../profiling/command-line-profiling-of-services.md)
67+
[Profile stand-alone applications](../profiling/command-line-profiling-of-stand-alone-applications.md)
68+
[Profile ASP.NET web applications](../profiling/command-line-profiling-of-aspnet-web-applications.md)
69+
[Profile Services](../profiling/command-line-profiling-of-services.md)

0 commit comments

Comments
 (0)