【发布时间】:2010-10-14 11:44:02
【问题描述】:
.net 2005 ide 中是否有办法找出函数内变量的内存使用情况以及垃圾收集器何时释放它们的内存。
【问题讨论】:
标签: .net
.net 2005 ide 中是否有办法找出函数内变量的内存使用情况以及垃圾收集器何时释放它们的内存。
【问题讨论】:
标签: .net
你看过this question,它有几种方法,包括
System.Runtime.InteropServices.Marshal.SizeOf(...)
你可以看GC.RegisterForFullGCNotification看看如何看垃圾收集器
【讨论】:
我不确定你在这里问什么。如果您正在寻找特定对象的内存占用,最好的方法是 WinDbg 和 SOS 扩展。
http://msdn.microsoft.com/en-us/library/bb190764.aspx
这可以为您提供有关对象堆的大量信息,包括大小和世代信息。
这里的这篇文章详细介绍了如何使用 WinDbg 来获取对象图的大小。这可能就是你要找的东西
【讨论】:
对于您问题的第一部分:
您可以使用多种工具来分析应用程序的内存占用量 - 直至单个代码行。我可以推荐以下工具:
第二部分: .net 中的 GC 不是确定性的。当应用程序没有可用内存时,它会自动调用。没有工具可以告诉您 GC 何时将内存释放回空闲存储区。
【讨论】: