Sat*_*rom 5 c# windows handheld windows-ce .net-3.5
我是这个地方的新手,也是C#mobile的首发.现在,我正在研究C#手持设备平台.所以,我有一些问题要询问如何获取内存使用情况.我尝试了GC.GetTotalMemory()并获取GC使用的已分配内存.但是,我可以使用它来估计我的应用程序分配了多少内存.我想这可能不是实际的正确.然后我尝试谷歌搜索任何参考或类或任何用于检查Windows CE内存的东西,但我发现只在另一个平台不支持我正在做的事情.
先谢谢,Stoper
为此我道歉,我离开了这篇文章.
我非常感谢任何回答我的问题并留意这篇文章的人.
现在,通过在我的项目中实现"OpenNetCF"引用,我获得了所需的一切.
再次感谢 ;)
根据文档,GC.GetTotalMemory返回
一个数字,是当前在托管内存中分配的字节数的最佳可用近似值.
这对某些开发者来说有点误导/混淆,特别是那些来自本土世界的开发者.它会告诉你GC在内部分配了多少内存,但没有告诉你它从系统中分配给整个堆(即分配和未分配的托管内存)的实际内容.
它也不报告本机分配.如果您使用大量GDI对象(位图,画笔等),那么这可能是巨大的,因为它们也具有本机内存分配.在Bitmap的情况下,它的托管占用空间实际上比其原生占用空间小得多.
如果您对托管应用程序对整个系统资源的实际影响感兴趣,您需要查询操作系统并询问它有多少物理和虚拟内存来实际了解正在发生的事情(我发现GC.GetTotalMemory是事实上相对无用).P /调用GlobalMemoryStatus为您提供所需的内容.MSDN包含一个示例.