【发布时间】:2014-06-13 22:39:02
【问题描述】:
在 .NET 应用程序的生命周期中,在给定的时间点,我想了解以下内容: 1. 内存中存活的对象列表是什么? 2. 每个物体的确切尺寸是多少? 3. 谁持有每个对象的引用?
另外,在 .NET 应用程序的执行过程中,无论何时创建任何对象,我都会立即想知道它。同时,我也想知道它的尺寸是多少?
【问题讨论】:
-
这不是您“想要”某些东西的网站。这是一个您无法尝试并需要帮助的网站。那么到目前为止,您自己尝试了什么?
-
我用谷歌搜索了所有活着的物体,我发现了以下。 [link]stackoverflow.com/questions/3912683/… 是否需要分析器或调试器?
-
这些是您可以通过使用 SOS 调试器扩展的 Windbg 找到的内容。你需要一个很好的理由来做这件事,学习曲线相当陡峭。专用的 .NET 内存分析器总是更友好的工具。从您自己的程序中草拟任何想法来执行此操作,GC 内部是禁止的,程序无法自行调试。
-
问题 1-3 可以通过 SOS 调试器扩展来回答。可以通过 CLR 事件跟踪分配。但是,请记住,这些问题的答案数据量很大。与其尝试收集您能想到的所有数据,不如专注于您要解决的特定问题。
标签: .net