分析进程转储
有时,例如在生产 Web 服务器的情况下,可能无法在计算机上安装分析器并获取常规内存快照。 通常,在这种情况下,最后的手段是获取原始内存转储。 dotMemory 允许您将转储导入并作为常规快照进行分析:包括所有产品功能,例如自动检查和保留图。
支持的框架 | 支持的操作系统 |
|---|---|
|
|
获取进程内存转储
您可以使用多种工具获取内存转储。 最常用的两个工具是任务管理器(随操作系统提供)和 Process Explorer。
重要提示:使用任务管理器获取 32 位应用程序的转储时,请确保使用工具的 32 位版本。 您可以在 C:\Windows\SysWOW64\taskmgr.exe 中找到它。
dotMemory 支持使用
gcore和dotnet-dump工具创建的内存转储。 例如,要获取具有 1234 PID 的进程的转储:sudo gcore 1234或者
dotnet-dump collect -p 1234
导入进程内存转储
在 主页 页面上,在左侧面板中点击 导入进程转储。
在打开的对话框中,选择所需的工作区文件并点击 打开。
之后,导入的转储将被转换为常规的 dotMemory 工作区。
个无法访问的对象
在获取内存快照之前,dotMemory 会强制执行完整的垃圾回收。 相比之下,使用任务管理器或其他工具获取内存转储时不会执行垃圾回收。 因此,内存转储将包含无法从 GC 根访问的对象。 通常,这些对象已经准备好进行垃圾回收,但尚未被回收。 在某些情况下,这些对象可能对分析有意义。 dotMemory 允许您将此类对象作为单独的对象集打开。
打开一组不可达对象
导入并打开内存转储。
打开 检查 视图。
在 堆碎片 部分中,点击链接 个无法访问的对象。
