dotMemory 2025.2 Help

配置分析会话

要配置分析会话,您需要:

  1. 指定 dotMemory 应如何运行您希望分析的应用程序。 您可以借助 运行配置来完成此操作。 如果您希望 分析已在运行的应用程序 ,则该步骤不是必需的。

  2. 如有必要,配置 其他分析选项进程过滤器

1. 创建运行配置

运行配置是告诉 dotMemory 如何运行被分析应用程序的方式。 例如,独立 .NET 应用程序的运行配置将包括应用程序可执行文件的路径、命令行参数以及应用程序工作目录的路径。

如果您已经有了被分析应用程序的运行配置,请从 新进程运行 下的 选择您想要分析的内容 中选择此运行配置。 否则,请按照以下说明创建运行配置。

要创建运行配置

  1. 选择您想要分析的内容新进程运行 下,点击 添加运行配置添加运行配置

  2. 新建运行配置 向导中,选择应用程序类型并提供应用程序选项:

  3. 点击 保存。 这将创建并保存运行配置。 下次需要分析此应用程序时,从 新进程运行 列表中选择创建的配置。

2. 配置其他分析选项

收集分配数据
  • 采样 (默认):与 完整 数据相比, 采样 数据的详细程度较低:快照仅包含有关分配对象的大致大小数据,不包括对象数量数据。 采样 模式的优点:

    • 它不会减慢被分析的应用程序。

    • 当将分析器附加到正在运行的应用程序时,您可以使用它。

  • 完整 :dotMemory 将收集完整的内存分配数据。 这些数据包括精确的对象大小数据和对象数量数据。 完整 模式的缺点:

    • 它会显著减慢被分析的应用程序。

    • 当分析器附加到已在运行的应用程序时,您无法使用它。

重要提示:在分析会话期间,您可以随时通过 分配数据:采样 | 完整 开关切换数据收集模式,使用 分析控制

如何控制分析
  • 手动 (默认):您通过 分析控制控制分析会话。 例如,要生成一个快照,点击 获取快照

  • 使用 API :您直接从被分析应用程序的代码中控制分析。 例如,要在代码的确切位置生成快照,请调用 MemoryProfiler.GetSnapshot() 函数。 在 通过 API 控制分析过程中了解更多关于使用 API 的信息。

3. (可选)配置进程过滤器

如果被分析的应用程序创建了多个进程,请使用 进程筛选器 设置来指定您想要分析的进程。 您可以选择预定义的过滤器或创建一个新的过滤器。

请注意,进程过滤器的工作方式取决于所选 运行配置中指定的应用程序类型。

应用程序类型

描述

独立

.NET 和 .NET Core

dotMemory 将仅分析与指定过滤器匹配的进程。 过滤器适用于被分析进程的整个进程树(包括子进程)。

例如,您有一个托管进程,该进程创建了多个子进程。 您希望不仅分析主进程,还分析名称中包含 service 的子进程。 为此,请添加 *service* 包含过滤器。

外部 .NET 进程

在此模式下,启动分析会话不会启动被分析进程。 相反,dotMemory 会等待并附加到操作系统中启动的第一个托管进程。 当选择了某些 进程筛选器 时,dotMemory 将附加到第一个符合过滤器的进程。

例如,您创建了包含过滤器: *service*。 dotMemory 将附加到系统中名称中包含 service 的第一个进程。

IIS

IIS Express

Windows 服务

WCF 服务

WinRT

MAUI

未应用进程过滤器。

选择进程过滤器

  1. 选择您要如何分析 下, 高级选项 ,打开 进程筛选器 列表。

  2. 选择所需的过滤器。

    dotMemory 提供了两个预定义的过滤器:

    • 默认 :未应用进程过滤器。

    • 整个进程树 :dotMemory 将分析整个进程树,包括子进程。 如果选择了 .NET 进程运行配置,dotMemory 将附加到系统中启动的第一个托管进程并分析其所有子进程。

    选择预定义的过滤器

创建进程过滤器

  1. 选择您要如何分析 下, 高级选项 ,打开 进程筛选器 列表。

  2. 选择 添加筛选器

  3. 指定过滤器设置:

    • 名称 :过滤器名称。

    • 分析整个进程树 :如果选中,dotMemory 将分析整个进程树,包括子进程。 仅当您为 .NET 进程 运行配置创建过滤器时,禁用此选项才有意义。 在这种情况下,dotMemory 将等待并附加到系统中与过滤器匹配的第一个进程,但不会分析此进程的子进程。

    • 包含过滤器掩码排除过滤器掩码 :分别为包含和排除过滤器掩码。 掩码根据以下规则应用:

      • 默认策略是“分析所有”。

      • 首先应用包含掩码。 排除掩码应用于包含掩码过滤后的进程。

      • 您可以使用星号 * 通配符。

      例如,要分析名称中包含 服务 的所有子进程,但排除 MyService ,请添加 *Service* 包含掩码和 MyService 排除掩码。

  4. 点击 保存

最后修改日期: 2025年 9月 27日