Any help is greatly appreciated!
The amount of native memory is greater when running under the profiler than it is when running the application the normal way. The runtime itself probably consumes more memory when profiling since it cannot perform certain optimizations and it might keep information available for the profiler that could otherwise be discarded.
Memory usage attributed to a dll only includes the memory used by the dll file itself, not memory that is allocated by code in the dll.
The current version of the profiler does not provide any additional information about this memory, but you can download the release candidate of .NET Memory Profiler 3.0 (from http://memprofiler.com/rc). This version contains an unmanaged resources tracker that might help you identify the "other data" memory.
If you unload classes from your application (e.g. by working with dynamic AppDomains), it is possible that some memory associated with the classes doesn't get released when running under the profiler. E.g. there is no possibility for the profiler to release memory allocated by the Dispose tracker, and this memory will show up as <Other>. The attach to feature of .NET Memory Profiler 3.0 can be used to get more accurate native memory information, since attaching to a process does not affect the memory usage of the process at all.
SciTech Software AB
Users browsing this forum: Google [Bot] and 11 guests