比较快照
SnapshotDifference 类型允许您比较由 dotMemory.Check 方法创建的两个内存检查点(快照),并获取有关在快照之间创建了多少对象以及回收了多少对象的数据。 例如,这可以帮助您确定无效的内存使用或内存泄漏。 SnapshotDifference 类型的对象是 GetDifference 方法的结果,该方法属于 Memory 类型。
示例
例如,以下代码断言 foo.Bar() 创建了 10 个或更少的字符串:
// Create first memory checkpoint
var memoryCheckPoint1 = dotMemory.Check();
foo.Bar(); // some user code
dotMemory.Check(memory =>
{
// Compare two checkpoints
Assert.That(memory.GetDifference(memoryCheckPoint1).GetNewObjects
(where => where.Type.Is<string>()).ObjectsCount, Is.LessThan(10));
});
SnapshotDifference 类
表示两个内存快照之间的差异。
SnapshotDifference 方法
名称 | 描述 |
|---|
GetNewObjects(Func<ObjectProperty, Query> query): ObjectSet
| 获取一组新对象——这些对象是在获取内存检查点的时间间隔内创建且未被回收的对象。 返回一个 ObjectSet 类型的实例。 如果指定了 query (可选),结果对象集将根据此查询中定义的条件进行过滤。 |
GetDeadObjects(Func<ObjectProperty, Query> query): ObjectSet
| 获取一组“死亡”对象——这些对象是在获取基础内存检查点之前创建,并在获取第二个检查点之前的时间间隔内被回收的对象。 返回一个 ObjectSet 类型的实例。 如果指定了 query (可选),结果对象集将根据此查询中定义的条件进行过滤。 |
GetSurvivedObjects(Origin from = Origin.NewSnapshot): ObjectSet
| 获取一组存活对象——这些对象是在获取基础内存检查点之前创建,并在获取第二个快照之前的时间间隔内未被回收的对象。 from 参数是 Origin 类型,指定了有关存活对象的数据来源——较新的或较旧的内存检查点。 返回一个 ObjectSet 类型的实例。 如果指定了 query (可选),结果对象集将根据此查询中定义的条件进行过滤。 |
Origin 枚举
表示用于比较的内存检查点(快照)。
值 | 描述 |
|---|
OldSnapshot
| 较旧(基础)的内存检查点。 |
NewSnapshot
| 较新的内存检查点。 |
最后修改日期: 2025年 9月 28日