如何使用 IntelliTrace Standalone Collector 检测生产 .Net 应用程序中的内存泄漏?

Posted

技术标签:

【中文标题】如何使用 IntelliTrace Standalone Collector 检测生产 .Net 应用程序中的内存泄漏?【英文标题】:How to use IntelliTrace Standalone Collector to detect memory leaks in production .Net applications? 【发布时间】:2012-07-06 21:57:28 【问题描述】:

Visual Studio 2012RC 能够使用 IntellitTrace Standalone Collector 收集的 IIS 应用程序池数据的外部收集跟踪文件。我知道在我的生产应用程序中存在某种内存泄漏,经过几个小时的监控就会很明显。

我现在准备好插入 VS2012 的大型 iTrace 文件,但想知道如何找到有问题的对象。

我也在使用调试器工具并遵循these 说明。但是,在尝试执行 .load SOS 或任何其他命令时遇到错误,表明未加载适当的 CLR 文件(或类似文件)。

我希望在 IntelliTrace 分析器中看到类似的地址列表和消耗的内存 - 这可能吗?

我们将不胜感激。

【问题讨论】:

【参考方案1】:

Intellitrace 仅分析事件和方法调用。您不会获得有关单个对象或内存泄漏的信息,因为它没有跟踪内存。也没有为对象创建/销毁提供任何事件,因此在任何情况下您都无法推断。

要跟踪内存,您必须在应用程序上使用分析工具,但不要将它们附加到您的生产服务器!为它使用一个测试环境,看看你是否可以复制这个问题。

【讨论】:

以上是关于如何使用 IntelliTrace Standalone Collector 检测生产 .Net 应用程序中的内存泄漏?的主要内容,如果未能解决你的问题,请参考以下文章

IntelliTrace(智能跟踪)

IntelliTrace调试

调试器和 Intellitrace 在长 SqlCommand.CommandText 的文本查看器中显示截断的文本

推荐Visual Studio 2010新功能-IntelliTrace(智能跟踪)

Elastic Beanstalk Passenger-Standalone Rails 不提供静态资产

vs2013调试的时候卡顿