dotMemory 是一个 .NET 内存分析器,可以直接从 Visual Studio 启动,既可以作为 JetBrains Rider 的插件使用,也可以作为独立工具使用。
使用 dotMemory,您可以分析基于任何受支持版本的 .NET Framework、.NET Core、.NET、ASP.NET Web 应用程序、IIS、IIS Express、Windows 服务、通用 Windows 平台应用程序等的应用程序。 在 macOS 和 Linux 上,dotMemory 只能作为 JetBrains Rider 的一部分或命令行分析器使用。
dotMemory 允许您导入使用任务管理器或进程资源管理器获取的原始 Windows 内存转储,并将它们作为常规内存快照进行分析。 这样,您可以充分利用自动检查、保留图和其他复杂的 dotMemory 功能。
了解内存如何在应用程序中保留对于成功优化内存至关重要。 在此视图中,支配项(在内存中专门保留其他对象的 对象)的层次结构显示在旭日图上。
只需快速查看图表,就可以找出哪些对象对您的应用程序至关重要,并评估最大的结构:支配项保留的内存越多,中心角越大。
要获取特定支配项的保留路径,请点击相应的弧。 双击支配项将放大图表,允许您更详细地查看此支配项保留的对象。
dotMemory 与 JetBrains Rider 集成,允许您进行实时内存分配跟踪、指定时间间隔的分配分析,等等。 需要时,您可以直接从 Visual Studio 启动内存分析会话。
稍后,您可以从 dotMemory 对象集中的某个类型导航到 Visual Studio 中的类型声明。
有时,您可能只有当某个条件成立时才有兴趣抓取快照。 因此,dotMemory 可以自动完成抓取快照的过程。 当应用程序的内存消耗大幅增加,或手动抓取快照变得棘手时,这尤其有用。 只需设置特定条件,并在满足条件后自动收集快照。
监控应用程序消耗的内存,获取快照并一键进行比较。
虽然内存分析一直以来都只是专业人士的地盘,但 dotMemory 独特的用户界面大大降低了这项工作的门槛,使内存分析变得简单明了。 您只需从上到下,从一组对象向下移动到特定实例,直到找出内存问题的真正原因。
过多分配和垃圾回收可能意味着显著的内存管理开销。 使用流量视图可以了解在应用程序中最频繁创建/收集的对象,以及导致此内存流量的函数。
dotMemory 可以自动扫描快照,查找有无常见类型的内存问题,例如,字符串重复、稀疏数组、泄漏事件处理程序或 WPF 绑定。 如果您不知道从哪里开始,这些检查可以成为分析快照的良好起点。
dotMemory 绑定了 dotMemory.exe 命令行分析器。 使用此工具自动完成分析:使分析成为持续集成生成的一部分,或者简单地加速分析例程(例如,如果您必须定期分析相同的应用程序,并且不希望每次都启动 dotMemory 用户界面)。
可免费试用 30 天