1. 概述
- 遇到 win10 的内存泄露
- 32G 内存都能给吃光
2. 思路
-
rammap
- 对整体内存做一个诊断
- 主要是内存分配
- 用途
- 状态
- 主要是内存分配
- 对整体内存做一个诊断
-
poolmon
- 确认内存的用途
- 比 rammap 更精确
- 问题
- 这玩意哪里找啊
- 确认内存的用途
3. poolmon 安装
-
思路
- poolmon 是 wdk(windows develop kits) 里的工具
- 安装 wdk, 需要先安装 Visual Studio
-
ref
- 官网文档
https://docs.microsoft.com/en-us/windows-hardware/drivers/devtest/poolmon
- 资源页面
https://docs.microsoft.com/zh-cn/windows-hardware/drivers/download-the-wdk
- 官网文档
1. 安装 Visual Studio
-
下载安装包
- 从
资源页面
里下载 Visual Studio 的安装包 - 我选择的是 vs2019 community (社区版)
- 下载的时候, 只有一个小下载器, 后面的内容需要边下边装, 建议准备 10G 磁盘
- 从
-
安装
- 工作负载
- 勾选: 使用 C++ 的桌面开发
- 勾选: 通用 Windows 平台开发
- 选择路径
- 我选在了 E 盘
- 这个路径会影响后面 wdk 的路径
- 安装
- 工作负载
-
安装完毕
- 需要重启
2. 安装 wdk
-
下载 wdk
-
安装 wdk
- 选择路径
- 我安装的时候, 路径只能选到 E 盘
- 想来想去, 估计和 安装 vs 与关系
- 我安装的时候, 路径只能选到 E 盘
- 安装 vs 拓展
- 安装完毕后会询问是否安装拓展
- 建议安装
- 反正我装了
- 选择路径
4. 打开 poolmon
-
概述
- 安装完毕后即可使用
-
路径
- 这个根据安装配置, 可能略有不同
- 工具下会有 x64, x86 甚至 arm 的版本
- 我的路径
E:Windows Kits10Toolsx64
-
打开
- 鼠标双击即可
- cmd 命令
- 建议此种方式
- 命令行有参数可以做进一步筛选
ps
-
处理结果
- 因为重启, 内存得问题暂时没有了
- 所以如果要诊断, 得等到下次问题出现了吧
- 因为重启, 内存得问题暂时没有了
-
poolmon
- 文档全是英文, 可能需要想办法看看
- pool 的各项参数, 都需要理解
- 趁机学学 内存知识
- 每行的那个 tag, 是内存用途(暂时这么理解吧)的一个标识
- 虽然只有四个字母, 但是组合有点多, 也需要有一个参考
- https://blog.csdn.net/sdhongjun/article/details/51964581