c# - 如何在.Net中列出堆中的所有托管对象?

标签 c# .net memory memory-management heap-memory

是否可以列出存储在堆中的所有对象。 我想做这样的事情:

IEnumerable<GCHandle> listOfObjectsInHeap = GetListOfObjectsFromHeap();

最佳答案

使用 ClrMD 库,您可以连接到自己的进程并检查堆。

但是,众所周知,对正在运行的进程使用 ClrMD 会限制可用信息,因为堆可能会在您尝试遍历它时发生变化。

http://blogs.msdn.com/b/dotnet/archive/2013/05/01/net-crash-dump-and-live-process-inspection.aspx

关于c# - 如何在.Net中列出堆中的所有托管对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2934392/

相关文章:

c - C 中带有指针的结构的内存开销

python - 为什么 elementtree.ElementTree.iterparse 使用这么多内存?

c# - 如何从 boo 调用在 c# 中定义的函数?

c# - 如何在对象中保存 session 变量?

c# - 如何在 .NET 中处理 HTTP 连接?

.net - 除了 'set' 和 'get' 之外的其他属性访问器?

asp.net mvc 内存泄漏

c# - 在另一个用户的凭据下启动进程

c# - 列中的 NULL 值出现 Dapper Cast 异常

c# - 表单的C#形式在单独的线程上