配置分析会话
要配置分析会话,您需要:
指定 dotMemory 应如何运行您希望分析的应用程序。 您可以借助 运行配置来完成此操作。 如果您希望 分析已在运行的应用程序 ,则该步骤不是必需的。
1. 创建运行配置
运行配置是告诉 dotMemory 如何运行被分析应用程序的方式。 例如,独立 .NET 应用程序的运行配置将包括应用程序可执行文件的路径、命令行参数以及应用程序工作目录的路径。
如果您已经有了被分析应用程序的运行配置,请从 新进程运行 下的 选择您想要分析的内容 中选择此运行配置。 否则,请按照以下说明创建运行配置。
要创建运行配置
在 选择您想要分析的内容、 新进程运行 下,点击
添加运行配置。在 新建运行配置 向导中,选择应用程序类型并提供应用程序选项:
点击 保存。 这将创建并保存运行配置。 下次需要分析此应用程序时,从 新进程运行 列表中选择创建的配置。
2. 配置其他分析选项
- 收集分配数据
采样 (默认):与 完整 数据相比, 采样 数据的详细程度较低:快照仅包含有关分配对象的大致大小数据,不包括对象数量数据。 采样 模式的优点:
它不会减慢被分析的应用程序。
当将分析器附加到正在运行的应用程序时,您可以使用它。
完整 :dotMemory 将收集完整的内存分配数据。 这些数据包括精确的对象大小数据和对象数量数据。 完整 模式的缺点:
它会显著减慢被分析的应用程序。
当分析器附加到已在运行的应用程序时,您无法使用它。
重要提示:在分析会话期间,您可以随时通过 分配数据:采样 | 完整 开关切换数据收集模式,使用 分析控制。
- 如何控制分析
手动 (默认):您通过 分析控制控制分析会话。 例如,要生成一个快照,点击 获取快照。
使用 API :您直接从被分析应用程序的代码中控制分析。 例如,要在代码的确切位置生成快照,请调用
MemoryProfiler.GetSnapshot()函数。 在 通过 API 控制分析过程中了解更多关于使用 API 的信息。
3. (可选)配置进程过滤器
如果被分析的应用程序创建了多个进程,请使用 进程筛选器 设置来指定您想要分析的进程。 您可以选择预定义的过滤器或创建一个新的过滤器。
请注意,进程过滤器的工作方式取决于所选 运行配置中指定的应用程序类型。
应用程序类型 | 描述 |
|---|---|
dotMemory 将仅分析与指定过滤器匹配的进程。 过滤器适用于被分析进程的整个进程树(包括子进程)。 例如,您有一个托管进程,该进程创建了多个子进程。 您希望不仅分析主进程,还分析名称中包含 | |
在此模式下,启动分析会话不会启动被分析进程。 相反,dotMemory 会等待并附加到操作系统中启动的第一个托管进程。 当选择了某些 进程筛选器 时,dotMemory 将附加到第一个符合过滤器的进程。 例如,您创建了包含过滤器: | |
未应用进程过滤器。 |
选择进程过滤器
在 选择您要如何分析 下, 高级选项 ,打开 进程筛选器 列表。
选择所需的过滤器。
dotMemory 提供了两个预定义的过滤器:
默认 :未应用进程过滤器。
整个进程树 :dotMemory 将分析整个进程树,包括子进程。 如果选择了 .NET 进程运行配置,dotMemory 将附加到系统中启动的第一个托管进程并分析其所有子进程。

创建进程过滤器
在 选择您要如何分析 下, 高级选项 ,打开 进程筛选器 列表。
选择 添加筛选器。
指定过滤器设置:
名称 :过滤器名称。
分析整个进程树 :如果选中,dotMemory 将分析整个进程树,包括子进程。 仅当您为 .NET 进程 运行配置创建过滤器时,禁用此选项才有意义。 在这种情况下,dotMemory 将等待并附加到系统中与过滤器匹配的第一个进程,但不会分析此进程的子进程。
包含过滤器掩码, 排除过滤器掩码 :分别为包含和排除过滤器掩码。 掩码根据以下规则应用:
默认策略是“分析所有”。
首先应用包含掩码。 排除掩码应用于包含掩码过滤后的进程。
您可以使用星号
*通配符。
例如,要分析名称中包含
服务的所有子进程,但排除MyService,请添加*Service*包含掩码和MyService排除掩码。
点击 保存。