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.
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.
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.
* 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