dotMemory 2025.2 Help

类似保留

类似保留 视图按对象保留路径的相似性对其进行分组。 对于每个对象集,视图显示到根的两条最短路径。 请注意,在所有最短路径中,dotMemory 仅选择两条彼此最不同的路径。

类似保留 视图使您能够区分相同类型的对象在逻辑上属于何处。 例如,数组中的多个 int 变量将具有相同的保留路径,这与任何其他 int 数组的变量不同。

您还可以使用 类似保留 确定对象为何仍在内存中。 例如,这在调查由多个路径保留的对象引起的潜在内存泄漏时可能会有所帮助(有关详细信息,请参阅 按支配者分组)。

用于构建图表的对象列表包括以下列:

名称

描述

类型

类型名称.

对象数量

具有相同保留路径的对象数量。

字节

对象的总大小(以字节为单位)。

示例

按相似保留分组示例

筛选对象

您可以通过类型筛选掉对分析无关的对象。

缩小列表范围

  • 开始输入所需的字符串模式。 dotMemory 将高亮显示匹配的字符串。

您可以通过以下提示使搜索更高效:

  • 使用 CamelHumps。 例如, fo 将返回 System.Drawing.FontMS.Utility.FrugalObjectList 类型的对象。

  • 使用 特殊符号 ,例如通配符和其他符号。 完整列表显示在下表中。

特殊符号和筛选示例

符号

描述

示例

*

通配符

*
集合中的所有对象

sys.*.data
所有匹配模式的类型和命名空间。 例如, System.DataSystem.Windows.Controls.DatagridSystem.Windows.Data.Binding

sys.*.data.
仅匹配模式的命名空间。 例如, System.Windows.Data.Binding ,但 不是System.Windows.Controls.Datagrid

数组

[]

仅保留数组

str[]
包含 str 的类型或命名空间中的数组。 例如, String[]

[,
[,,
...

[,]
[,,]
...

仅保留指定维度或更高维度(如果括号未闭合)的数组

str[,,
包含 str 的类型或命名空间中维度为 3 或更高的数组。 例如, String[,,]String[,,,]

str[,,]
包含 str 的类型或命名空间中的三维数组。 例如, String[,,]

!a

从结果中排除数组

!a str
包含 str 的类型或命名空间中的对象(不包括数组)。 例如, String ,但 不是String[]

泛型类型参数

<

仅保留具有泛型类型参数的类型

str<
仅包含 str 的类型或命名空间并具有泛型类型参数的对象。 例如, FileStreamStorage<Char> ,但 不是List<String>

<str
仅包含 str 的泛型类型参数中的对象。 例如, List<String> ,但 不是FileStreamStorage<Char>

<,
<,,
...

<,>
<,,>
...

仅保留具有指定数量泛型类型参数的对象

fun<,,>
包含 fun 的类型或命名空间并具有三个泛型类型参数的对象。 例如, Func<String, Object, Object>

fun<str,,task
包含 fun 的类型或命名空间并具有三个或更多匹配模式的泛型类型参数的对象。 例如, Func<Stream, IAsyncResult, TaskResult, EventArgs>

!g

从搜索范围中排除泛型类型参数

!g str
包含 str 的类型或命名空间中不具有泛型类型参数的对象。 例如, String ,但 不是List<String>

#c
#struct
#m
#ns

按类型、值类型、方法或命名空间搜索。

#ns Feature
包含 Feature 的命名空间中的对象。

选择对象以进行进一步分析

类似保留 视图中,您可以选择以下主题以进行进一步分析:

选择以相同方式保留的特定类型对象

  • 双击列表中的相应类型。

    之后, [Type_name] 具有相同的保留路径 主题将被添加到 分析路径 中,并且所需对象的列表将在 按类型分组 视图中显示。

选择仅由分析对象集独占保留的对象

  • 点击 打开保留的对象打开由此集合保留的对象 按钮。

    之后, 独占保留的对象 主题将被添加到 分析路径 中,并且所需对象的列表将在 按类型分组 视图中显示。

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