A new beta build of ANTS Performance Profiler 6 is now available!
You can download build 1308
here. This build will expire on 14th July 2010. Please post any feature requests or bug reports in this forum.
Changes in this version
Build 1285 had a lingering reference to the timebomb that caused it to expire early, which is now removed.
This build contains fixes to various small issues that were discovered in the previous beta.
New features
We're working on a number of new features for this release of ANTS. This build has eight of them to play with:
.NET 4 support
This version fully supports new .NET 4 features, such as side-by-side execution. Most interestingly, on Windows Vista or later, the profiler now supports attaching to running .NET 4 processes.
(Previous versions of the profiler do have limited .NET 4 support, but run in compatibility mode)
Silverlight 4 support
This version supports method-level profiling of Silverlight 4 processes. Line-level profiling is not currently supported as the technique we use with desktop .NET is incompatible with Silverlight's security model.
System events monitoring
For users running Vista or later, we've added the ability to monitor file I/O and SQL Server events that occur on the same machine as the profiled application. These features can be combined with the timeline to correlate the activity with that of the target application.
This is especially useful with technologies such as ORM or Linq, where tools like the SQL Profiler provide little insight into the .NET code that was generating the slow queries.
Profiling by sampling
All previous versions of ANTS have been instrumenting profilers, which measure timings at every function call. This can have the effect of slowing the target application down considerably and will cause a bias in the results if the profiler is not set to correct for this.
In sampling mode, ANTS will instead take snapshots of threads at frequent intervals and statistically work out the time spent in each method. This is very much faster than instrumenting and does not need to be corrected for any bias.
The disadvantage is that the detail captured is much, much lower than when instrumenting. There's no way to get hit counts from this data, and the shortest event that this mode can capture is 10 milliseconds or more (instrumenting mode can time down to nanoseconds in some cases). This makes this mode very good for capturing an overview of performance but may be limiting when investigating more complicated issues.
Sampling mode is available from the drop-down of profiling modes in the session setup dialog.
Blocking
The profiler now provides more details about the reason that a thread was blocked (file I/O, network I/O, sleeping, synchronisation, etc). This should help make it easier to diagnose performance issues caused by excessive blocking.
Hints
With previous versions of ANTS, we've observed that it's quite easy to set options such as wallclock time which can make it hard to read the results. Newer builds of ANTS 6 can detect these situations and provide hints on how to resolve them.
'Method events'
We're quite likely to change the name of this feature before release, as the user interface is very preliminary in this version. This feature makes it possible to see not just how long a method was executing but also when it was running. Simply choose a method in the call tree or methods grid and the timeline will highlight the points in the program when it was running.
Command line tool
We've added a command line profiling tool to this release. This makes it possible to profile an application and generate reports (as text, XML, CSV or profiler results formats in this release) without the need to fire up the main user interface. This is intended for scenarios where automating the profiler is necessary, for example to integrate profiling into a continuous integration build process.
Miscellany
We've been adding a few small features and minor enhancements to this build. In particular, users of Windows 7 will note that this build of the profiler takes advantage of the new task bar features.
You can download build 1308 here. This build will expire on 14th July 2010. Please post any feature requests or bug reports in this forum.
Changes in this version
Build 1285 had a lingering reference to the timebomb that caused it to expire early, which is now removed.
This build contains fixes to various small issues that were discovered in the previous beta.
New features
We're working on a number of new features for this release of ANTS. This build has eight of them to play with:
.NET 4 support
This version fully supports new .NET 4 features, such as side-by-side execution. Most interestingly, on Windows Vista or later, the profiler now supports attaching to running .NET 4 processes.
(Previous versions of the profiler do have limited .NET 4 support, but run in compatibility mode)
Silverlight 4 support
This version supports method-level profiling of Silverlight 4 processes. Line-level profiling is not currently supported as the technique we use with desktop .NET is incompatible with Silverlight's security model.
System events monitoring
For users running Vista or later, we've added the ability to monitor file I/O and SQL Server events that occur on the same machine as the profiled application. These features can be combined with the timeline to correlate the activity with that of the target application.
This is especially useful with technologies such as ORM or Linq, where tools like the SQL Profiler provide little insight into the .NET code that was generating the slow queries.
Profiling by sampling
All previous versions of ANTS have been instrumenting profilers, which measure timings at every function call. This can have the effect of slowing the target application down considerably and will cause a bias in the results if the profiler is not set to correct for this.
In sampling mode, ANTS will instead take snapshots of threads at frequent intervals and statistically work out the time spent in each method. This is very much faster than instrumenting and does not need to be corrected for any bias.
The disadvantage is that the detail captured is much, much lower than when instrumenting. There's no way to get hit counts from this data, and the shortest event that this mode can capture is 10 milliseconds or more (instrumenting mode can time down to nanoseconds in some cases). This makes this mode very good for capturing an overview of performance but may be limiting when investigating more complicated issues.
Sampling mode is available from the drop-down of profiling modes in the session setup dialog.
Blocking
The profiler now provides more details about the reason that a thread was blocked (file I/O, network I/O, sleeping, synchronisation, etc). This should help make it easier to diagnose performance issues caused by excessive blocking.
Hints
With previous versions of ANTS, we've observed that it's quite easy to set options such as wallclock time which can make it hard to read the results. Newer builds of ANTS 6 can detect these situations and provide hints on how to resolve them.
'Method events'
We're quite likely to change the name of this feature before release, as the user interface is very preliminary in this version. This feature makes it possible to see not just how long a method was executing but also when it was running. Simply choose a method in the call tree or methods grid and the timeline will highlight the points in the program when it was running.
Command line tool
We've added a command line profiling tool to this release. This makes it possible to profile an application and generate reports (as text, XML, CSV or profiler results formats in this release) without the need to fire up the main user interface. This is intended for scenarios where automating the profiler is necessary, for example to integrate profiling into a continuous integration build process.
Miscellany
We've been adding a few small features and minor enhancements to this build. In particular, users of Windows 7 will note that this build of the profiler takes advantage of the new task bar features.