Nearly one year ago, we started building a new tool for SharpDevelop: a profiler. It will make
it easier to analyze and improve the performance of applications developed
using SharpDevelop. In the next few weeks we are going to give you an overview
of all the different aspects of the profiler, its usage and we will shed some
light on its implementation and technical details.
Using the Profiler
To start a new profiler session just go to “Quality Tools” > “Profiler” and then you
can decide whether to profile the currently opened project or you can select a
program to run.
During execution of the application, performance data is collected. On program end,
SharpDevelop will automatically open up the session and display the collected
data.

In the “Overview” tab, all threads and all calls are listed. In the “Top 20” tab 20 methods, in which most time is spent during run time, are listed. On the right side you can see
the ring diagram. The concept of the ring diagram was taken from the Ubuntu “Disk
Usage Analyzer”. It can be used to easily navigate to deep levels of the call
tree. Just click on a call to move there. If you want to go back to the call
you had selected before, just click inside the gray circle in the middle.
To show details on a call in the ring diagram simply move the mouse over it and a tool
tip with important information will be displayed. The gray circle represents
the call currently selected in the tree view. The innermost ring is a pie chart
showing the children of the selected call. The size of each piece is
proportional to the time spent inside that call. The other rings represent the
deeper levels of the call tree.
In the next post we will show you the “merge” feature, which allows you to view multiple
parts of the call tree at once. The “merge” feature is used by the “Top 20” tab
and the timeline too.