ANTS Profiler
Latest version: 4.3
Notes & articles
How to profile a desktop application that hosts the .NET runtime (ANTS Profiler 3)
his article will explain how you can use ANTS Profiler 3 to profile either the performance or the memory of a native desktop application that hosts the .NET Common Language Runtime (CLR). Native or unmanaged applications can call .NET components using COM callable wrappers. (More details at http://msdn2.microsoft.com/en-us/library/ms973802.aspx.)
Typical examples of this type of development are .NET Visual Studio Add-ins, managed code extensions for Word and Excel, and managed code add-ins for Outlook.
We will see that profiling these types of applications is just as straightforward with ANTS Profiler as profiling standard .NET applications.
Setting up the profiler
We will work through setting up an ANTS Profiler project to profile the performance of a Word 2003 document that uses managed extensions. On the first step of the project wizard we select Performance profiler Detailed Mode. For the second screen we choose .NET desktop application (although we know that Word 2003 is not a .NET app).
On the second screen, we need to enter the file path for WINWORD.EXE for the executable path, and the full path of the Word document that we want to profile in the Start options/Arguments window.

We will leave the final screen on the default selection of Only .NET methods that have source code, as we have a debug build of our Visual Studio 2005 Word project. We are now ready to start profiling.
Starting the profiler
We now start profiling by hitting Finish and accepting the dialog that asks whether we want to profile WINWORD.EXE. We are presented with a dialog that warns us that WINWORD.EXE is not a .NET application. At this point we continue, as we know that WINWORD will be loading the .NET Framework to allow it to run the managed extensions.
Profiling now commences, and we should see our Word document appear. We also note that the status message at the bottom of ANTS Profiler reads Profiling performance of WINWORD.EXE.
Getting results
Once we are up and running with profiling, we can get a set of performance results by taking a snapshot. Once we are done, we can close down the Word document, to generate a final set of results and stop the profiling session. We can investigate the results in exactly the same fashion as we would any .NET application. This will quickly allow us to spot any big bottlenecks or areas of inefficient code.
Other applications
Exactly the same approach will work with all other hosting applications. For example, to profile a Visual Studio .NET add-in, the key step is to enter the full path to devenv.exe as the .NET application that you want to profile (typically C:\Program Files\Microsoft Visual Studio 8\Common7\IDE\devenv.exe for VS.NET 2005).
Conclusion
Hopefully, this short article will get you going with optimizing the performance and memory usage of your .NET hosting applications.
Was this article helpful?
ANTS Profiler
- Enabling logs to track the profiling session
- Changing the interprocess communications ports in version 4
- Double hit counts occurring on one line
- System.EntryPointNotFoundException (Versions: 3,4 only)
- Version 3.0 Unhandled startup exception on Windows Vista
- Version 3 add-in grayed out on non-English Visual Studio 2005 and 2008
- Methods in (ASCX) web controls may not appear
- Failed to CoCreate Profiler error profiling a Windows service
- Multiple-core portable computers may show inflated times (version 3)
- No .NET methods were profiled on web application
- ANTS Profiler code instrumentation method
- Profiling a single assembly in version 3
- Filtering results by individual thread
- Add-in fails to load when using RunAs to start Visual Studio as another user
- Profiling unit tests using Nunit
- Can I profile Compact Framework applications?
- Profiling a SharePoint 2007 Web Part
- Profiling an assembly in the Global Assembly Cache (GAC)
- Additional hidden statistics in the results grid (version 3)
- Multiple floating ANT icons in Visual Studio (version 3)
- ANTS Profiler overhead adjustments
- Profiling IIS web applications that need to run under the SYSTEM account
- Profiling a web application hosted in IIS on a fixed TCP port
- Add-in 'Object Reference not set to an instance of an object' error
- Profiling client-side XBAP .NET applications
- ANTS Profiler prompts for location of source code which is not your own source code
- ANTS menu remains in Visual Studio after uninstall of ANTS Profiler
- Profiling a web application needing to run as the Network Service account
- Abnormal termination caused by .NET 2.0 critical finalizer threads
- Cannot start COM+ application via Remote Desktop
- Fast mode and memory profiling options unavailable
- Finding the overall time taken to execute a thread
- Running an IIS application pool as a named identity
- IIS web application always loads default website
- Profiling BizTalk applications
- Profiling Microsoft Office managed-code add-ins
- The system cannot find the file specified
- Error Stopping IISAdmin profiling IIS web application on Windows XP
- ANTS Memory Profiler total size of all objects does not match the memory footprint of an application
- Lines of source code do not align with hit count, time data in version 3
- Creating a global debugging symbols (PDB) directory
- Profiling a SharePoint site collection
- Using the add-in to profile solutions containing more than one project
- Methods may be missing on multi-core systems in version 3
- ASP .NET 1.x application recycling causing incomplete results
- Ambiguous site selection message when profiling IIS applications
- Application recycling causes incomplete results and other errors when profiling ASP .NET
- Profiling WCF services hosted in IIS
- Cannot profile IIS 6 web application on port lower than 1024
- (version 5) Support for profiling Silverlight applications
- Couldn't open metabase error when profiling ASP .NET hosted in IIS
- Failed to coCreate Profiler on ASP .NET web application
- HTTP error 404.17 profiling ASP .NET 1.1 on IIS 7
- Performance counters missing from results
- Isolating single ASP .NET pages in ANTS Profiler results
- Missing hits for lines in the source code view
- ANTS Profiler restarts IIS
- Showing the amount of time taken for a method in one particular thread
- Common ASP .NET memory issues
- Please specify a valid URL message profiling ASP .NET
- Times on individual lines do not add up to method time
- Manually installing the add-in
- Error starting services running as "Local Service"
- Explanation of "thread blocked" methods in ANTS Profiler
- Call graph percentages do not add up exactly
- Operation could destabilize the runtime error profiling ASP .NET
- IIS ceases to work after profiling web applications
- Access to the Temp directory is denied error profiling web applications
- Problems with ANTS Visual Studio integration
- Unable to coCreate Profiler error profiling any application
all products
- Some Red Gate products identified as containing a trojan by Anti-Virus software
- Activation may fail with Unknown Error -1
- Product uses web help although a CHM file is available locally
- Argument exception resulting from missing environment variable
- Check for updates may fail when used through proxies
- 'Unidentified Publisher' error when repairing or uninstalling
- Licensing activates product as standard edition
- Moving Red Gate software products to another machine
- Red Gate tools log locations
- The application UI opening slowly when there is no internet access
ANTS Profiler
- Getting help offline
- Finding memory leaks using ANTS Profiler
- Identifying root objects with ANTS Profiler
- Performance profiling with ANTS 4: tips for ANTS 3 users
- How to profile a desktop application that hosts the .NET runtime (ANTS Profiler 3)
- How to profile the performance of a single .NET assembly (ANTS Profiler 3)
- Profiling ASP.NET applications (ANTS Profiler 3)
- How to reduce the number of topics you see in the "All objects" panel (ANTS Profiler 3)
- ANTS Profiler release notes - version 4.xx
- Why can't ANTS Profiler find my source code? (ANTS Profiler 3)
all products
- Red Gate product acknowledgements
- Activating your products
- Activating your products
- Red Gate bundle history
- Check for updates
- Troubleshooting Check for Updates errors
- Current versions
- Deactivating your products
- Installing Red Gate products from the .msi file
- Requesting additional activations
- Serial numbers for bundles
- Reactivating using a different serial number
- Extending your trial
- Finding your serial numbers
- Moving a serial number from one computer to another
- No response received for manual activation
- Licensing and activation resources
- Licensing and activation resources
- Troubleshooting licensing and activation errors
- Licensing and activation FAQs
- Red Gate tools log file locations
- Download old versions of products
- Download product prerequisites & utilities
- Support & upgrades
- Upgrading your software
- Upgrading FAQs

Using ANTS Performance Profiler