dotMemory 功能

dotMemory 是一个 .NET 内存分析器,可以直接从 Visual Studio 启动,既可以作为 JetBrains Rider 的插件使用,也可以作为独立工具使用。

dotMemory 主页视图

支持各种 .NET 应用程序

dotMemory 与 Windows、macOS 和 Linux 兼容,您可以基于任何受支持版本的 .NET Framework、.NET Core、.NET、IIS 或 IIS Express 对应用程序进行分析。这包括 ASP.NET Web 应用程序、Windows 服务、通用 Windows 平台应用程序等。

支持进程转储

支持原始内存转储

dotMemory 允许您导入使用任务管理器或进程资源管理器获取的原始 Windows 内存转储,并将它们作为常规内存快照进行分析。这样,您可以充分利用自动检查、保留图和其他复杂的 dotMemory 功能。

阳光图

阳光图

了解内存如何在应用程序中保留对于成功优化内存至关重要。在此视图中,支配项(在内存中专门保留其他对象的 对象)的层次结构显示在旭日图上。

只需快速查看图表,就可以找出哪些对象对您的应用程序至关重要,并评估最大的结构:支配项保留的内存越多,中心角越大。

要获取特定支配项的保留路径,请点击相应的弧。双击支配项将放大图表,允许您更详细地查看此支配项保留的对象。

从 Visual Studio 运行 dotMemory

Visual Studio 与 Rider 集成

dotMemory 与 JetBrains Rider 集成,允许您进行实时内存分配跟踪、指定时间间隔的分配分析,等等。需要时,您可以直接从 Visual Studio 启动内存分析会话。

稍后,您可以从 dotMemory 对象集中的某个类型导航到 Visual Studio 中的类型声明。

自动获得快照

自动快照

有时,您可能只有当某个条件成立时才有兴趣抓取快照。因此,dotMemory 可以自动完成抓取快照的过程。当应用程序的内存消耗大幅增加,或手动抓取快照变得棘手时,这尤其有用。只需设置特定条件,并在满足条件后自动收集快照。

时间线视图

带有实时数据采集的时间线视图

监控应用程序消耗的内存,获取快照并一键进行比较。

多个数据视图

多个数据视图

从多个视图检查堆中的对象。想知道对象如何相互关联?它们引用了什么对象以及通过哪些字段?想知道哪些调用创建了这些对象?没问题! dotMemory 提供了查看每种情况的视图。

比较内存快照

比较内存快照

比较两个快照是找出引起内存泄漏的对象的主要方法。使用比较视图可以查看在快照之间创建的对象数量以及收集的对象数量。

简单而全面的用户界面

简单而全面的 UI

虽然内存分析一直以来都只是专业人士的地盘,但 dotMemory 独特的用户界面大大降低了这项工作的门槛,使内存分析变得简单明了。您只需从上到下,从一组对象向下移动到特定实例,直到找出内存问题的真正原因。

分析内存流量

分析内存流量

过多分配和垃圾回收可能意味着显著的内存管理开销。使用流量视图可以了解在应用程序中最频繁创建/收集的对象,以及导致此内存流量的函数。

强大的自动检查

强大的自动检查

dotMemory 可以自动扫描快照,查找有无常见类型的内存问题,例如,字符串重复、稀疏数组、泄漏事件处理程序或 WPF 绑定。如果您不知道从哪里开始,这些检查可以成为分析快照的良好起点。

命令行分析器

命令行分析器

dotMemory 绑定了 dotMemory.exe 命令行分析器。使用此工具自动完成分析:使分析成为持续集成生成的一部分,或者简单地加速分析例程(例如,如果您必须定期分析相同的应用程序,并且不希望每次都启动 dotMemory 用户界面)。