profiling - What tools and techniques can I use to detect and isolate high memory usage in .NET applications which call into significant unmanaged code? -


Assume that I've written the WinForms .NET application in C #. This application allocates large amounts of memory from both managed and unmanaged piles. I can understand the allocation details (who, when, how much, etc.) by using (relatively) easily managed objects (which I have not used). Or

Where I am getting worried when managed objects use important basic resources (for example image or large COM objects) or when I call unmanaged third party libraries with significant memory needs So far I have to actually do some detective work 1) It is a managed or unmanaged code which is a memory hog and 2) using a very unmanaged pile Are there.

The only technology I currently have to do is set a performance counter that compares management vs unmanaged pile size, allocation, etc. If managed without a heap stack managed, the managed map is stable, I know that start looking at unmanaged libraries and / or .NET objects that consume basic resources.

What is the best combination of tools and techniques to help developers manage significant amounts of unmanaged code and ?

UPDATE: To be more clear, how would I like to know about memory problems (high usage, leaks) in unmanaged code called from managed code? Dot trace like product, I believe, only track managed objects.

You can use several memory profiling tools are some of the compatible with .NET applications as follows:

1)

2)

3)


Comments