
Enable low impact profiling
This setting enables the low-impact profiling mode. This mode can be used to increase the performance of the profiled process or when information about native memory is more important than information about managed memory. When low impact profiling is enabled, no allocation stacks are traced, no dispose information is collected, and, under .NET Framework 1.x, no roots are identified. On the other hand, no profiling code is injected into the JITted methods, which allows normal code sharing to take place. It is also possible to collect a snapshot using only a single generation #0 garbage collection, which allows the native memory view to more accurately show the layout of the managed heaps.
Enable dispose tracker
This setting enables the dispose tracker, which allows information about disposable instances to be collected. Code will be injected in certain methods to allow the instances to be tracked. However, the performance penalty is very low and no additional memory is used, so it is recommended that the dispose tracker is enabled.
NOTE! The dispose tracker cannot be enabled if low impact-profiling is enabled.
For more information about the dispose tracker, see Dispose Tracker.
Enable root identification
This setting enables identification of root referrers, e.g., static fields, local variables, and method arguments, that reference instances. By identifying root referrers, the profiler can present the exact reason why an instance has not been garbage collected. It does this by showing a path from the instance to a root. If root referrer identification is disabled, all roots will be presented as <root>, with no further information about the type of root.
Under .NET Framework 1.x, there is a performance penalty when root identification is enabled, and an additional application domain is injected into the profiled process. If this poses any problems, then disable root identification; otherwise, it is recommended to enable identification.
NOTE! Due to a bug in .NET Framework 1.x, there are some problems with identifying roots in a domain-neutral process like ASP.NET. Therefore, root identification is disabled when profiling ASP.NET 1.x.
Another bug in the framework causes the identification to fail for modules that are loaded after another module has been unloaded. This only happens when the application uses dynamic application domains that are stopped.
Also, root identification cannot be used under .NET Framework 1.x if low impact profiling is enabled.
Enable heap utilization tracking
This setting allows heap utilization tracking to be enabled. Enabling heap utilization tracking will cause information about how the generational and large object heaps are used by the allocated instances. For more information, see Heap Utilization Tracker.
Enable delayed instance cleanup
This setting determines whether delayed instance cleanup is enabled or not. Delayed instance cleanup allows profiled processes that perform a large number of allocations of short-lived instances to run more efficiently. A side effect of using delayed cleanup is that the complete state of the garbage collected heap is not maintained all the time; instead, the state is updated when collecting heap snapshots. This influences the information presented by the Native memory page. For more information, see the Native Memory Page and Information about Delayed Instance Cleanup.
NOTE! Delayed instance cleanup cannot be enabled if real-time data are collected.
Disable inlining
This setting determines whether method inlining should be disabled. The default behaviour is to disable inlining in order to present accurate allocation call stacks; however, this has implications on the performance of the profiled process. If the performance of the profiled process is too low, you can try to clear this setting.
Enable unmanaged resources tracker
(Professional only)
If this option is checked, then the unmanaged resource tracker will be enabled, and information about unmanaged resources will be presented in the snapshot views and the real-time view.
For more information about the unmanaged resources tracker, see Unmanaged Resources Tracker.
|
.NET Memory Profiler User Manual © Copyright 2002-2009. SciTech Software AB. For information about .NET Memory Profiler, see the product site at http://memprofiler.com .NET Memory Profiler is developed by SciTech Software AB
|