我正在开发一个应用程序,它目前已经创建了数百个对象。
可以确定(或近似)对象(类实例)分配的内存吗?
发布于 2009-01-08 23:05:59
发布于 2009-04-25 14:49:43
一种粗略的方法可能是这样--如果你想知道一个特定对象发生了什么
// Measure starting point memory use
GC_MemoryStart = System.GC.GetTotalMemory(true);
// Allocate a new byte array of 20000 elements (about 20000 bytes)
MyByteArray = new byte[20000];
// Obtain measurements after creating the new byte[]
GC_MemoryEnd = System.GC.GetTotalMemory(true);
// Ensure that the Array stays in memory and doesn't get optimized away
GC.KeepAlive(MyByteArray);
可以像下面这样获得整个过程的内容
long Process_MemoryStart = 0;
Process MyProcess = System.Diagnostics.Process.GetCurrentProcess();
Process_MemoryStart = MyProcess.PrivateMemorySize64;
希望这能有所帮助;)
发布于 2009-01-08 23:05:17
ANTS memory profiler会准确地告诉你为每个对象/方法等分配了多少。
https://stackoverflow.com/questions/426396
复制相似问题