About dotTrace

A profiling solution for profiling the performance of your .NET applications.

dotTrace profiles the performance of .NET applications, ASP.NET applications running on Internet Information Server and Windows services. You can compare any two performance snapshots of the same application with dotTrace. dotTrace program interface features effective navigation, easy filtering and smart search options. dotTrace also features source preview.

dotTrace Features:

  • Take advantage of efficient navigation, easy filtering, smart search and handy source preview.
  • Navigate from a function in snapshot directly to source file
  • Launch dotTrace from Visual Studio.
  • Profile CLR 4 applications
  • Profile Silverlight 4 applicationsly
  • Profile line-by-line
  • Find out line-level timings for your application's functions.
  • Use line-by-line profiling selectively if you like.
  • Every millisecond counts. Use the "High Accuracy" mode to account for the time spent inside the profiler.
  • Profile applications remotely with an automatic utility.
  • Profile Windows Mobile apps
  • Remote Profiling
  • Profile complex desktop and server applications.
  • Process snapshots of up to several hundred GB in size.
  • Apply textual annotations to selected functions.
  • Save annotations with snapshots to review them later on.
  • Immediately estimate how removing a bottleneck would affect overall performance -- without recalculating your snapshot.

Performance profiling features in dotTrace

  • Server-scale snapshot support - dotTrace Performance is able to profile huge applications and get snapshots of several hundred gigabytes while still working at an acceptable speed. That means, you can use dotTrace Performance for profiling complex desktop and server applications.
  • Tracing profiling is a very accurate way of profiling that involves getting notifications from the CLR whenever it enters or exits a function. The time between these two notifications is taken as the execution time of the function. Tracing profiling helps you learn precise timing information and the number of calls on the function level.
  • Sampling profiling is a profiling method which is up to 30 times faster than tracing profiling, but at the expense of lower accuracy. It is extremely useful for at least two profiling scenarios: first, quickly getting a general idea of your application's performance, and second, profiling for extensive periods of time, up to many hours long.
  • Line-by-line profiling collects timing information for every statement in a function that has source code available. This lets you collect detailed information about functions that perform significant algorithmic work. You can specify exactly which functions you want to be profiled line-by-line or profile all functions which dotTrace Performance is able to locate symbol information for. In addition, dotTrace Performance provides a 'High Accuracy' flag to account for the time spent inside the profiler. When every millisecond counts, dotTrace pays attention.
  • Local or remote profiling - dotTrace Performance Professional Edition can connect to a remote machine to profile a standalone or Web application, or a Windows service. You don't even have to install dotTrace there — just copy a couple of files.
  • Convenient data representation - A number of informative views (Call Tree, Hot Spots, Threads Tree 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, focus on relevant calls, and create profiling reports by saving views to an external file.
  • Instant estimation of performance gains - dotTrace Performance is able to recalculate a snapshot instantly — without reprofiling your application. It's like asking the profiler: "what if I optimize this function by 40%?". Just call Edit | Adjust Time and specify the new time for the function or for all functions in a particular class. Time values for the entire snapshots will be recalculated.
  • Comparing performance snapshots - dotTrace Performance 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 function 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 and formatting - dotTrace Performance lets you hide functions of little importance from a snapshot and highlight those that really make a difference. Filter out system calls and other non-essential functions with a combination of different filters. To emphasize important functions or classes of functions, use custom formatting rules.
  • Folding calls - In addition to filtering and formatting, dotTrace Performance provides another way to see all the data you want to see and none that you don't.
  • Fold filtered calls - Chains of filtered calls can be set to be folded by default or folded/unfolded manually. Recursive call chains can be folded to display the aggregate timings and call counts of all functions called recursively. You can hide functions that only call other functions but don't do any calculation on their own.
  • Annotating snapshots - During performance analysis, you may want to leave a comment about a function and its behavior. dotTrace Performance provides textual annotations for functions that are saved with the snapshot and can be reviewed later.
  • Search and navigate function calls - You can quickly locate functions and navigate to them. When searching for a function, you can type in the function name using CamelHumps, just like you do in ReSharper.  You can highlight all occurrences of the function in the current view and then navigate between them with a simple press of a key.
  • Visual Studio integration and source code preview - dotTrace Performance provides a two-way integration with Visual Studio allowing you to profile your applications right from the IDE, or view suspicious source code right from the profiler (and open it in Visual Studio for editing.) Run dotTrace Performance from Visual Studio: With a single button click, you can launch profiling or your startup project directly from Visual Studio. In addition, if you have ReSharper installed in your Visual Studio, you can easily start profiling unit tests from the code editor. Open a file from dotTrace Performance in Visual Studio — if your solution is opened in Visual Studio, you can click a button in the Preview Source tab to navigate to the corresponding source file in Visual Studio.