dotMemory 2025.2 Help

分析进程转储

有时,例如在生产 Web 服务器的情况下,可能无法在计算机上安装分析器并获取常规内存快照。 通常,在这种情况下,最后的手段是获取原始内存转储。 dotMemory 允许您将转储导入并作为常规快照进行分析:包括所有产品功能,例如自动检查和保留图。

支持的框架

支持的操作系统

  • Windows:.NET Framework 4.5 或更高版本,.NET Core 1.0 或更高版本,.NET 5 或更高版本

  • Linux:.NET Core 3.1 或更高版本,.NET 5 或更高版本

  • macOS:不支持

  • Windows:x86,x64

  • Linux:x64,arm64

  • macOS:不支持

获取进程内存转储

  • 您可以使用多种工具获取内存转储。 最常用的两个工具是任务管理器(随操作系统提供)和 Process Explorer。

    重要提示:使用任务管理器获取 32 位应用程序的转储时,请确保使用工具的 32 位版本。 您可以在 C:\Windows\SysWOW64\taskmgr.exe 中找到它。

  • dotMemory 支持使用 gcoredotnet-dump 工具创建的内存转储。 例如,要获取具有 1234 PID 的进程的转储:

    sudo gcore 1234

    或者

    dotnet-dump collect -p 1234

导入进程内存转储

  1. 主页 页面上,在左侧面板中点击 导入进程转储

  2. 在打开的对话框中,选择所需的工作区文件并点击 打开

    之后,导入的转储将被转换为常规的 dotMemory 工作区。

个无法访问的对象

在获取内存快照之前,dotMemory 会强制执行完整的垃圾回收。 相比之下,使用任务管理器或其他工具获取内存转储时不会执行垃圾回收。 因此,内存转储将包含无法从 GC 根访问的对象。 通常,这些对象已经准备好进行垃圾回收,但尚未被回收。 在某些情况下,这些对象可能对分析有意义。 dotMemory 允许您将此类对象作为单独的对象集打开。

打开一组不可达对象

  1. 导入并打开内存转储。

  2. 打开 检查 视图。

  3. 堆碎片 部分中,点击链接 个无法访问的对象

    个无法访问的对象
最后修改日期: 2025年 9月 27日