收集 .NET 内存分配数据和生存期数据

Visual Studio 分析工具支持收集 .NET 内存分配数据和对象生存期数据,这些数据可帮助您检测应用程序中与内存相关的性能问题。 

  • 有关 .NET 内存分配的数据包括所分配的 .NET Framework 内存对象的大小和数量。

  • 对象生存期数据包括在三代垃圾回收中回收的 .NET Framework 内存对象的大小和数量。

要求

  • Visual Studio 旗舰版, Visual Studio 高级专业版, Visual Studio 专业版

备注

在 Windows 8 增强的安全功能和 Windows server 2012 要求已在 Visual Studio 探查器将收集有关这些平台的数据的方式的重大更改。Windows 存储 app 还需要新的集合技术。请参见 分析 Windows 8 和 Windows Server 2012 应用程序

可以使用采样或检测分析方法收集数据。

  • 使用采样方法时,探查器跟踪所有已启动或附加到的过程所生成的 .NET 内存分配和对象。

  • 使用检测方法时,探查器仅跟踪被检测模块所生成的那些 .NET 内存分配和对象。

重要

使用采样方法收集 .NET 内存数据(分配和/或对象生存期)时,将忽略所有用户指定的采样事件,而使用相应的内存分配事件来收集数据。

如果允许分析 .NET 内存分配,则还要启用“分配”视图。 如果允许分析 .NET 生存期数据,则还要启用“对象生存期”视图。 有关更多信息,请参见.NET 内存分配视图“对象生存期”视图

有关如何使用分析工具命令行工具收集 .NET 内存数据的信息,请参见从命令行使用分析方法收集性能数据中的“使用 .NET 内存方法收集内存分配数据和对象生存期数据”。

收集 .NET 内存数据

  1. 在**“性能资源管理器”中,右击性能会话,然后单击“属性”**。

  2. 在 性能会话属性页 对话框中,单击 常规 选项卡,然后选择 收集 .NET 对象分配信息 复选框。

  3. 若要收集 .NET 对象生存期数据,请选中**“还收集 .NET 对象的生存期信息”**复选框。

常规任务

在性能会话的“性能会话 属性页”对话框中,可以指定其他选项。 打开此对话框:

  • 在**“性能资源管理器”中,右击性能会话名称,然后单击“属性”**。

下表中的任务说明在收集 .NET 内存数据时,可以在“性能会话 **属性页”**对话框中指定的选项。

任务

相关内容

“常规”页上,指定生成的分析数据 (.vsp) 文件的命名详细信息。

“启动”页上,选择代码解决方案中有多个 .exe 项目时要启动的应用程序。

“层交互”页上,向分析运行添加 ADO.NET 调用数据。

“Windows 事件”页上,指定要随采样数据收集的一个或多个 Windows 事件跟踪 (ETW) 事件。

“Windows 计数器”页上,指定要作为标记添加到分析数据的一个或多个操作系统性能计数器。

“高级”页上,指定在应用程序模块使用多个 .NET Framework 运行时版本时,要分析的运行时版本。 默认情况下分析加载的第一个版本。

检测任务

下表中的任务是使用检测方法进行分析时专用的**“属性页”**对话框中的选项。

任务

相关内容

“二进制文件”页上,指定检测的模块副本的位置。 默认情况下,原始二进制文件会移入备份文件夹。

“检测”页上,从分析中排除小型函数以减少分析开销,分析 ASP.NET 网页中的 JavaScript 代码,并指定在检测过程之前和之后要在命令提示符下运行的命令。

“CPU 计数器”页上,指定要添加到分析数据的一个或多个处理器性能计数器。

“高级”页上,指定所需的任何其他 VSInstr.exe 选项,如用于包含或排除特定函数的选项。 有关 VSInstr 选项的更多信息,请参见 VSInstr

请参见

任务

如何:选择收集方法

概念

为分析工具配置性能会话

性能会话属性