Click here to Skip to main content
15,395,859 members
Articles / Web Development / ASP.NET
Posted 15 Jun 2007


10 bookmarked

dotTrace 3.0: The Complete Profiling Solution for .NET

15 Jun 20077 min read
The newest version of our intelligent profiler is out, offering an expanded arsenal of memory and performance profiling tools and ready to handle many more profiling scenarios

This article is in the Product Showcase section for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers.

Image 1

This is a showcase review for our sponsors at CodeProject. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.

What's new in version 3.0

Performance profiling enhancements

dotTrace 3.0 handles many more profiling scenarios, with two new profiling modes: Thread-time CPU profiling and Sampling CPU profiling. In the sampling mode, you are able to profile the performance of your application much faster, but at the expense of lower accuracy. With Thread-time profiling, you can measure the contribution of individual threads in multithreaded applications, reducing interference between threads. Other enhancements include individual tab saving and more support for filtering and folding function calls in several views.

Memory profiling enhancements

dotTrace 3.0 gives you another means for spotting memory leaks - finalized objects. You can now see all objects that were deleted by the finalizer and not properly disposed of in the code of your application. Among other enhancements is the possibility to merge strongly-connected objects in groups as well as navigation to classes' source in source preview. Also, information about held and reachable objects is now serialized to disk, eliminating the necessity to recompute it on each memory snapshot opening.

Other important improvements

With dotTrace 3.0, you can now do more with you ASP.NET applications. They can be profiled from Microsoft Visual Studio and also run using Visual Studio Development web-server (as an alternative to IIS). Individual tabs can now be saved as separate snapshots. Also, dotTrace helps you profile your older applications in those profiling modes which are not supported for the .NET 1.1 framework, by automatically creating an appropriate .config file.



JetBrains dotTrace is the complete profiling solution for .NET. It profiles:

  • the performance of .NET Framework 1.1 and 2.0 applications
  • the memory usage of .NET Framework 2.0 applications
  • ASP.NET applications running on Internet Information Server
  • Windows services

Convenience, speed and ease of use set dotTrace Profiler apart from the many profiling tools built for the Microsoft .NET platform. dotTrace lets you locate performance bottlenecks in your application, optimize memory usage, or find memory leaks – faster than you could ever imagine.

Detailed profiling results are conveniently stored in snapshots for easy inspection at any time, not just when you are profiling. Multiple snapshots can be taken and opened at the same time, letting you compare performance snapshots. A special memory profiling mode enables examining the difference between two application memory states. The friendly program interface features effective navigation, easy filtering, smart search options and a handy source view.

dotTrace Profiler Features

Memory profiling

With dotTrace you can quickly profile the memory usage of your .NET applications (framework 2.0 only). The profiling process is not only simple but fast, too. A wealth of profiling data is accurately recorded and presented in the form of memory snapshots, allowing thorough analysis of memory issues.

Image 2

Versatile memory profiling modes

Depending on your profiling needs, you can either dump memory at any time during profiling OR mark the start and the end of a time interval to see the difference between two application memory states.

Image 3

Convenient data representation

Each memory snapshot holds a wealth of data on all objects allocated in memory, from the roots to every single object allocated or deleted at any time during the profiling session.

A number of views are available to you for examining and analyzing memory snapshots, including Class List, Namespace Tree, Outgoing references, Shortest root path, and Allocation Tree. You can also focus on any subsystem of your application by opening it in a separate tab.

Find objects by class (Ctrl+N)

To help you locate a particular class of objects in memory, dotTrace provides the rapid Find objects by class search feature. The use of wildcards and CamelHump abbreviations is supported for faster search results.

Image 4

Performance profiling

dotTrace provides an extremely fast way to profile the performance of .NET applications (Frameworks 1.x or 2.0).

Convenient data representation

A number of informative views (Call Tree, Hot Spots and more) allow convenient inspection of profiling data stored in snapshots. The importance of each function call is represented with descriptive icons, along with precise execution times and other relevant information. You can open functions in individual tabs, easily navigate views with keyboard shortcuts, skip through unimportant or filtered calls, and create profiling reports by saving any view to an external file.

Image 5

Performance snapshot comparison

dotTrace is able to compare any two performance snapshots of the same application. It generates a comparison snapshot which shows the difference in the number of calls and times consumed by each function. Comparison snapshots can be viewed and analyzed the same way as regular performance snapshots.

Quick Info

You can look up Quick Info on any function from the Call Tree view. Just press Ctrl + Q, and the lookup window will provide a summary of function statistics with respect to the selected call and to all calls in the current tab.

Image 6


You can apply predefined and customizable filter patterns to focus on the functions most important to you. Filter out system calls and other nonessential functions with a combination of different Hide filters. Emphasize specific functions of selected classes with one or more Show filters.

Folding and advanced filtering

dotTrace 2.0 makes it much easier to see all the data you want to see and none that you don't.

  • Fold filtered calls
  • Fold recursive calls
  • Hide functions that consumed 0% of root time
  • More about folding

Find function

Quickly locate functions and navigate to them. Optimize the way you like to search: type in the function name or use the provided list of namespaces and classes to go through the hierarchy.

Image 7

General Features

Fastest profiling

dotTrace decisively outperforms its in-class competitors. This fact alone ensures that you save valuable time with its profiling speed and ease of use.

Source view

dotTrace automatically locates the underlying source code for selected functions.

Image 8

If your solution is currently opened, click the quick link in Source View to navigate to the corresponding source file in Visual Studio.

Multiple snapshots

dotTrace easily handles multiple snapshots, providing you with all-around profiling convenience. You can generate an unlimited number of snapshots during a single profiling session, as well as open several snapshots at the same time. You can open several snapshots, one next to another, to compare and contrast them for faster, more detailed analysis.

Profiling ASP.NET applications

dotTrace easily profiles ASP.NET applications running on IIS, versions 5.x and 6.0. Simply specify the start page URL of your web application and profile it the same way as a desktop program.

Windows services profiling

dotTrace lets you easily profile Windows services. Just select the service from the list of all available Windows services and profile it the same way as web applications.

Integration with Visual Studio

  • Run dotTrace from Visual Studio — you can profile the StartUp project of your solution in Visual Studio.
  • Open a file from dotTrace in Visual Studio — if your solution is opened in Visual Studio, you can click a quick link in Source View to navigate to the corresponding source file in Visual Studio.
  • More about integration with Visual Studio

Command line options

You can profile applications, open snapshots and generate reports from any batch script by using the command line options provided with dotTrace.

Profiling API

Use advanced profiling scenarios by controlling profiling functions from within the application being profiled, with the help of our Profiling API.


This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


About the Author

JetBrains s.r.o.
Czech Republic Czech Republic
No Biography provided
Group type: Organisation (No members)

Comments and Discussions

-- There are no messages in this forum --