C#-是否可以迭代GC堆?我不确定以下问题是否有效。为了教育自己,我只是问。(1)我能否以编程方式遍历所有代的GC堆?(2)是否可以通过启动线程来观察GC是如何对我的组件进行操作的?您的问题的答案是:不幸的是,您不能。CLR的垃圾收集器以标记、扫描、紧凑模式工作,因此在运行之间没有关于堆的信息(堆的大小或当前生成的特定类型的实例除外),这将允许您迭代其中的所有对象。监控GC的最佳方法是使用perfmon并观察(或记录)CLR内存计数器。我刚刚在网上搜索了同一问题的答案,但没有找到任何以编程方式迭代GC堆的方法。如果只是需要查看此信息进行调试,则可以启动WinDbg并加载SOS扩展。你可以使用它!dumpheap扩展命令查看GC堆上的确切对象。如果可用,您还可以使用dotTrace的内存分析模式。以上就是C#学习教程:C#-IsitpossibletoiteratetheGCheap?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
