类似保留
类似保留 视图按对象保留路径的相似性对对象进行分组。 对于每个对象集,视图显示到根的两条最短路径。 请注意,在所有最短路径中,dotMemory 仅选择两条彼此最不同的路径。
类似保留 视图使您能够区分相同类型的对象在逻辑上属于何处。 例如,数组中的多个 整数 变量将具有相同的保留路径,这与任何其他 整数 数组的变量不同。
您还可以使用 类似保留 来确定对象为何仍在内存中。 例如,当调查由多个路径上保留的对象引起的潜在内存泄漏时,这可能会有所帮助(有关详细信息,请参阅 按支配者分组)。
为其构建图表的对象列表包括以下列:
名称 | 描述 |
|---|---|
类型 | 类型名称. |
对象数量 | 具有相同保留路径的对象数量。 |
字节 | 对象的总大小(以字节为单位)。 |
示例

筛选对象
您可以通过类型筛选掉对分析无关的对象。
缩小列表范围
开始输入所需的字符串模式。 JetBrains Rider 将高亮显示匹配的字符串。
您可以通过以下提示使搜索更高效:
使用 CamelHumps。 例如,
fo将返回System.Drawing.Font和MS.Utility.FrugalObjectList类型的对象。使用 特殊符号 ,例如通配符和其他符号。 完整列表显示在下表中。
- 特殊符号和筛选示例
Symbol
描述
示例
*通配符
*
集合中的所有对象sys.*.data
所有匹配模式的类型和命名空间。 例如,System.Data、System.Windows.Controls.Datagrid和System.Windows.Data.Binding。sys.*.data.
仅匹配模式的命名空间。 例如System.Windows.Data.Binding,但 不是System.Windows.Controls.Datagrid。数组
[]仅保留数组
str[]
包含str的类型或命名空间中的数组。 例如字符串[]。[,[,,...
或[,][,,]...仅保留指定维度或更高维度(如果括号未闭合)的数组
str[,,
包含str的类型或命名空间中维度为 3 或更高的数组。 例如字符串[,,]和字符串[,,,]。str[,,]
包含str的类型或命名空间中的三维数组。 例如字符串[,,]。!a从结果中排除数组
!a str
包含str的类型或命名空间中(不包括数组)的对象。 例如字符串,但 不是字符串[]。泛型类型参数
<仅保留具有泛型类型参数的类型
str<
仅包含str的类型或命名空间并具有泛型类型参数的对象。 例如FileStreamStorage<Char>,但 不是List<String>。<str
仅包含str的泛型类型参数中的对象。 例如List<String>,但 不是FileStreamStorage<Char>。<,<,,...
或<,><,,>...仅保留具有指定数量泛型类型参数的对象
fun<,,>
包含有趣吗的类型或命名空间并具有三个泛型类型参数的对象。 例如Func<String, Object, Object>。fun<str,,task
包含有趣吗的类型或命名空间并具有三个或匹配模式的泛型类型参数的对象。 例如Func<Stream, IAsyncResult, TaskResult, EventArgs>。!g从搜索范围中排除泛型类型参数
!g str
包含str的类型或命名空间中(不具有泛型类型参数)的对象。 例如字符串,但 不是List<String>。#c#结构体#m#ns按类型、值类型、方法或命名空间搜索。
#ns Feature
包含功能的命名空间中的对象。
选择对象以进行进一步分析
在 类似保留 视图中,您可以选择以下主题进行进一步分析:
选择以相同方式保留的特定类型对象
双击列表中的相应类型。
之后, [Type_name] 具有相同的保留路径 主题将被添加到左侧的分析路径中,并且所需对象的列表将显示在 按类型分组 视图中。
选择仅由已分析对象集独占保留的对象
点击
由此集合保留的未关闭对象 按钮。之后, 独占保留的对象 主题将被添加到左侧的分析路径中,并且所需对象的列表将显示在 按类型分组 视图中。