dotMemory 2025.2 Help

首次了解用户界面

我们希望您将自己在 dotMemory 中的工作视为某种犯罪调查(在 dotMemory 中即内存分析)。 这里的主要思想是收集数据(一个或多个内存快照)并选择一些嫌疑对象(可能导致问题的分析对象)。 因此,您从一些嫌疑对象列表开始,并不断缩小这个列表。 一个嫌疑对象可能会引导您找到另一个,依此类推,直到您确定真正的问题所在。

basic_concepts_4.png

这种分析概念(从更大的实体逐步缩小研究范围)使得 dotMemory 与其他性能分析器截然不同。 与竞争对手不同,dotMemory 允许您不仅操作单个对象,还可以操作所谓的 对象集。 对象集是通过特定条件选择的一组对象。 为了便于理解,可以将对象集视为某种查询的结果(非常类似于 SQL 查询)。 例如,您可以告诉 dotMemory 类似于 “选择由调用 SomeCall(); 创建并提升到 Gen 2 的所有对象” ,或者 “选择由实例 A 保留在内存中的所有对象” ,等等。

用户界面

first_look_1.png

dotMemory 用户界面完全体现了逐步调查的理念。

pos_1.png 分析
在您收集了一个或多个内存快照后,您可以开始分析。 新分析会在 dotMemory 主窗口中的新选项卡中打开。 请注意,您可以对相同数据执行多个独立的分析(它们将在您点击 add_analysis.png 按钮后在其他选项卡中打开)。

pos_2.png 分析路径
在分析页面的左侧,您可以看到所谓的分析路径列表。 从字面上看,这就是显示您调查路径的列表。 您选择用于分析的任何对象(3)都会被添加到此列表中。 如果您发现调查陷入僵局,只需返回到分析路径中的某一步,您在该步选择了错误的决策(对象),然后选择另一个。

pos_3.png 分析对象
分析对象是您要分析的内容。 为了更容易理解,让我们回到缩小嫌疑对象列表的概念:您从调查一个大的对象开始,比如整个快照或内存流量,然后将研究范围缩小到更小的实体。 在这个层级,您操作的是对象集——通过特定条件选择的一组对象。 最终,您的调查可能会深入到更低的层级——分析单个对象实例。

pos_4.png 视图
每个分析对象都可以从不同的视角进行检查——视图。 例如, 支配者 视图将向您展示哪些对象将分析对象保留在内存中(防止其被回收); 调用树 视图将帮助您确定哪个调用创建了该分析对象,等等。 正如我们之前提到的,一个嫌疑对象可能会引导您找到另一个。 例如,对于 支配者 视图中的每个项目,您可以选择保留当前项目的对象或由其保留的对象子集。

了解更多关于如何在 分析结果章节中执行分析的内容。

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