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.
Inroduction
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.
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.
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 CamelCase abbreviations is supported for faster search results.
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.
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. The lookup window provides a summary of function statistics with respect to the selected call and to all calls in the current tab.
Filtering
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
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.
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.
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.
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.
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.