wpf - Finding the true memory footprint of a Windows application -


I have participated in some outsourced exceptions with my C # / WPF application and I am trying to get some confusing data running my memory usage profile

when the app is usually running, then made bounced a bit in Windows Task Manager memory usage to approximately 34 MB (objects and garbage collected) Shows When I run the Memory Profiling application and as such, they show total memory usage in about 1.2 MB.

Why this huge discrepancy? What does the task manager see that these profiles do not?

Update: I added some diet code in my application to print many memory information every time through process data.

During my app running, I set a rule to dump the memory in case of an exception. I forced an exception to be made and the memory dumped. At this point, the memory usage of my app (shown by the task manager) jumped from 32 MB to 145 MB and remained there.

You can see this jump in the table below (Workingset 64). I am still trying to understand all types of memory information provided by the process class. How does an external application work my app grow like this?

Some of the diagnostic tools used here have been used, plus (which is a lot of money) let me leak Found the source.

  1. The WPF bitmap may cause leak of the FAFST class. Alternative "Impact" section fixes the leak,
  2. Aksamel the merged resource Dikshniks can cause leakage,
  3. "working set of an application" memory footprint (Task Manager Memory shown by) is not a good indicator of the footprint of your process. External applications can have an impact on this.

    Memory profiling tool helped me to know that the leaks were mostly in unmanaged code, so that it was a real pain to track it. As well as dealing with these leaks, things have been cleared up in better understanding of Windows Memory (Personal vs. Work Set).

Comments