ANTS Profiler 3   

Frequently Asked Questions

See Also

Does ANTS Profiler take the profiling overhead into account?

Yes. ANTS Profiler is able to calculate, with a high degree of accuracy, the overhead it has introduced into your application during profiling. For performance results, this means that the timings reported for a method or line indicate the time that would be taken if you were not profiling your application.

What impact does profiling an application have on its performance?

ANTS Profiler has been designed so that the impact of profiling on the performance of your application is minimized. However, collecting profiling results does take a small amount of time.

When you are profiling performance in detailed mode on a 3.4 Ghz processor, executing 1 million lines of code takes approximately 0.5 seconds; executing 1 million method calls takes around 3.5 seconds. In fast mode, executing 1 million lines of code takes approximately 2 ms; executing 1 million method calls takes around 0.7 seconds. The same code without the profiler running takes approximately 2 ms, and the method calls take 6 ms.

Which versions of the .NET Framework does ANTS Profiler support?

ANTS Profiler supports applications written for the following Frameworks:

ANTS Profiler does not support the .NET 1.0 Framework, .NET Compact Framework, or CTP versions of the .NET Framework.

Can I profile unmanaged applications?

No. ANTS Profiler can profile only applications that run against the .NET Framework. Unmanaged applications are compiled into machine code and therefore are not visible to the profiler.

Can I profile 'unsafe' code?

Yes. If you write some 'unsafe' methods in C# or Visual Basic .NET, ANTS Profiler treats them just like all other methods. This happens because 'unsafe' methods are still compiled into an intermediate language representation.

Can I profile multithreaded applications?

Yes. ANTS Profiler has been designed to work with multithreaded applications. For performance profiling you can filter the results to examine the data for a particular thread. For memory profiling, the Thread column in the All objects panel shows the thread that was used to create an object.

Can I profile applications that run in more than one process?

No. ANTS Profiler can profile only applications that run in a single process.

Can I profile .NET applications that use COM components?

Yes. When you program against a COM component from .NET you access the managed interop layer. ANTS Profiler will display all the methods in the interop layer if you select All .NET methods in the Choose what code to profile page of the Profiler Project Wizard. However, you will not see the details of the code within the COM component as it is not managed code.

Note that if you are profiling a 64-bit application on Windows Vista, you must run ANTS Profiler as an administrator, so that you can stop and start the service.

Can I profile applications written in NUnit?

Yes. To do this, you profile the NUnit graphical user interface, and run your tests in the usual way. Note that the application you are testing must run in a single process.

Can I profile a Web site using SSL?

Yes. However, if you experience problems profiling a Web site using SSL, a workaround is to set IIS to run in isolation mode.

Can I attach the profiler to an application that is already running?

No. ANTS Profiler makes use of the profiling API that is supplied by Microsoft as part of the .NET Framework. The profiling API can be initialized only when a process starts.

Can I profile the dlls that my application uses?

Yes. ANTS Profiler automatically profiles all managed code running in the same process, including any .dll files.

Can ANTS Profiler generate line-level timings for XBAP applications?

No. To generate line-level timings, ANTS Profiler needs to call certain native methods from the managed code. XBAP applications run with restricted permissions in a sandbox and cannot call unmanaged code.

 

 

 


© Red Gate Software Ltd 2007. All Rights Reserved.