【发布时间】:2016-07-31 10:19:45
【问题描述】:
我一直在寻找 .NET 内存泄漏检测工具和 .NET 分析器 - 在互联网上有很多,但是 - 它们都是商业工具。我想检查是否有任何开源替代方案,它们的开发状态是什么(什么是有效的,什么是无效的),以及是否有可能 - 是否有人可以指出我使用哪些 API 来“挂钩”。 NET 垃圾收集器。
此外,我还了解到引用分析并非微不足道 - 如果 GC 不收集内存 - 那么这意味着有人引用了该数据 - 因此反过来需要某种引用回溯 - 还有什么 API 和技术也很有趣存在以分析参考。
我希望代码是低级的——最好是 C/C++——我怀疑它与 C++/COM 未记录的 API 有关。但如果还有 C# 接口来执行内存分析 - 我也可以使用它们。
如果可能的话:
- 您能否在此处发布链接到开放源代码项目/挂钩 .NET 内存管理的代码。
- 您能否发布与挂钩内存管理相关的 API 文档的链接。
【问题讨论】:
-
VS 2015 有内置分析器。不知道,社区版里有没有,不如去看看吧?
-
我对底层技术很感兴趣——所以想创建类似于 Visual Studio 的内存分析器/分析器。我已经实现了本机内存泄漏检测工具,想更深入地分析一下如何将支持扩展到托管端。
-
如果您真的对技术本身感兴趣,请务必访问 Microsoft 在 GitHub 上发布的 CoreCLR 和 CoreFX 存储库。这向您展示了所有实现细节,您应该能够找出可以挂钩的内容。
-
任何使用这些 API 接口的示例项目?您可以将此添加为答案,因为它部分回答了我的问题。
标签: c# .net memory-management memory-leaks garbage-collection