views:

198

answers:

0

We are having a memory issue with one of our application running under Windows CE 5 (.Net 2.0 SP2). I have started using the .NET Compact Framework Remote Performance Monitor. However, the outcome is not really clear to me.

Here are the information I got (at a particular time):

GC Heap ________________________________ 5'193'728  
JIT Heap _______________________________ 2'225'560  
App Domain Heap ________________________ 3'848'192  
Process Heap _____________________________ 378'848  
Short Term Heap _______________________________104

To have a correct usage of the memory really used by the managed application, I have to add:

64KB/Thread Stack  
(assumed 15 threads) ______________________975'000  
TheExe.exe (my exe size) ___________________81'000  
64 kB guard section ________________________64'000  


Total usage:____________________________12'766'432

At the same time, I have call the "GlobalMemoryStatus" API to get the memory usage:

Memory Load      [%]:    93  
Total Physical  [KB]: 41320  
Avail Physical  [KB]:  2920  
Total Page File [KB]:     0  
Avail Page File [KB]:     0  
Total Virtual   [KB]: 32768  
Avail Virtual   [KB]:  3584

So my question: Is this correct to say that: [(32'768'000 - 12'766'432) - 3'584'000 = ] 16'417'568 Bytes of my Virtual Memory are currently used by native dlls?

If this is not the case, can someone explain me what am I missing to get the correct picture?

Thanks, José