用poolmon来查找内存泄露
poolmon C:\WinDDK\7600.16385.1\tools\Other\i386\poolmon.exe
gflags C:\WinDDK\7600.16385.1\Debuggers\gflags.exe
[步骤]:
1).修改注册表
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
GlobalFlag 0x000400
2).gflags.exe
勾选 Enable pool tagging
3).重启系统
4).打开poolmon 看到详细的内存分配释放信息
P - 切换分页非分页内存
D - 按分配与未释放的差来排列
5).设置命令行窗口
右键 - 属性 - 选项 - 编辑选项 - 勾选快速编辑模式
还可以把缓冲区大小调大点
6).鼠标左键选择全部内容,回车
7).打开记事本,CTRL+V
Memory: 3136424K Avail: 2672512K PageFlts: 2504 InRam Krnl: 2864K P:58704 Commit: 305964K Limit:5065664K Peak: 598068K Pool N:14872K P:63108 Tag Type Allocs Frees Diff Bytes Per Alloc NtFs Paged 22354 ( 0) 16458 ( 0) 5896 310656 ( 0) 52 MmSt Paged 8892 ( 3) 3049 ( 25) 5843 11600216 (-17480) 198 CMVa Paged 497244 ( 243) 491734 ( 155) 5510 275648 ( 3528) 50 Ntf0 Paged 39087 ( 32) 33784 ( 32) 5303 184280 ( 0) 34 MmSm Paged 5049 ( 0) 456 ( 0) 4593 293952 ( 0) 64 FSim Paged 3971 ( 0) 61 ( 0) 3910 500480 ( 0) 128 IoNm Paged 400361 ( 645) 396911 ( 723) 3450 501632 ( -7424) 145 NtfF Paged 3430 ( 0) 727 ( 0) 2703 2551632 ( 0) 944 Ntfo Paged 31970 ( 64) 29291 ( 64) 2679 267424 ( 0) 99 Ntff Paged 10264 ( 0) 7616 ( 0) 2648 2203136 ( 0) 832 CMNb Paged 565888 ( 224) 563791 ( 272) 2097 117432 ( -2024) 56 CMDa Paged 58237 ( 27) 56171 ( 45) 2066 259568 ( -1464) 125 Sect Paged 53359 ( 206) 51324 ( 229) 2035 177640 ( -2072) 87 CMVI Paged 69712 ( 36) 68199 ( 75) 1513 53048 ( -112) 35 NtFL Paged 1426 ( 1) 0 ( 0) 1426 57040 ( 40) 40 Ntfc Paged 3789 ( 73) 2384 ( 97) 1405 101160 ( -1728) 72 SYSA Paged 6191 ( 0) 4871 ( 0) 1320 152056 ( 0) 115 ......
这样,通过连续多次记录相隔一定时间的poolmon输出信息并比较它们的差别,可以找出存在内存泄露的程序
[参考资料]:
http://support.microsoft.com/kb/177415/zh-cn
http://blog.csdn.net/moreorless/article/details/3369525
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
2013-07-11 C/C++ 函数压栈方式
2008-07-11 Utm10问