Page Comparison - Getting Started with Timeline Profiling (v.38 vs v.39)

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

What Is Timeline Profiling?

Since the version 6.0, dotTrace offers a new method of profiling your apps called timeline profiling. What’s that What is timeline profiling and why do you need it?

Unlike “classic” 'classic' performance profiling in dotTrace 5.5 and earlier, during timeline profiling , dotTrace collects temporal call stack and thread state data. Thus, you You get the same data about call times, but now these data is bound to the a timeline. This gives you a great opportunity to way, you can analyze not only typical “what is the slowest method?” issues, but also the ones where the order of events does matter: , such as UI freezes, excessive garbage collections, uneven workload distribution, insufficient file I/O, and othersso on.
Using To start timeline profiling is simple: all you need is to , simply choose the Timeline profiling type when configuring a session. To analyze collected timeline profiling snapshots, you should use a separate dotTrace component called Timeline Viewer.

What Next?

In this “Getting Started” Getting Started tutorial, we will take a detailed look at the main key profiling steps , acquaint with and introduce you to the Timeline Viewer user interface and even try to solve . We will also profile a sample app and try to determine why its UI freezes, which is a very common task – finding a reason of UI freezes in an appprofiling task.

Contents

Sample App
Running the Profiler and Getting a Snapshot
First Look at the Timeline’s Timeline User Interface
Analyzing a Snapshot in Timeline
Conclusion

Sample App
Anchor
Sample App
Sample App

...

As an example, we’ll use a small app Our sample app is used to reverse lines (in text files, e.g., "ABC" > "CBA") in text files. Briefly: With the Select Files button, a user specifies chooses one or more text files to be processed. The Process Files button runs a separate BackgroundWorker thread which reverses lines in the files. The progress of file processing Progress is displayed in a label on the main the left-hand corner of the window. After the processing is finished, the label shows the "says All files were successfully processed" message.
The source code of the for this app is available here.

Note
iconfalse

* The algorithm of fixing UI freezes shown in this tutorial contains some unnecessary steps and may will likely seem suboptimal to you suboptimal. This is made done intentionally as the main goal of the tutorial is to fully acquaint you with Timeline Viewer as maximally as possible.

The app has a serious drawback. After starting file processing, users experience long UI lags that last until the processing is over.
Let’s use timeline profiling to determine the cause of find out why these freezes happen!*

Running the Profiler and Getting a Snapshot
Anchor
Step 1
Step 1

...