在本文中,我们可以帮助您识别并找到Windows环境中Poolmon的内存泄漏。
在许多问题中,您可能会面对Windows生态系统,可能需要注意的一个紧迫问题是内存泄漏问题。内存泄漏可能有很多类型。您可能遇到的一个标准错误包括内核级记忆泄漏问题。您将如何解决?我们将在今天的教程中指导您完成整个过程。
什么是内存泄漏?
在正常情况下,一个过程从分页或未分类池分配记忆。但是,有时可能无法释放内存。虽然分配了新的进程,但分配给先前过程的较旧内存不会释放回操作系统。
这会导致池的有限记忆随着时间的流逝而耗尽。结果,您的系统开始放慢速度。当池中的内存完全用尽时,它会导致系统的完全故障。查找内存泄漏和解决的过程涉及的过程一定需要记忆泄漏的确切根本原因并解决。
有关的:Windows 10中的非每页池错误是什么?如何更改或修复它?
理想情况下,内存泄漏可以以两种方式发生:内核模式内存泄漏和用户模式内存泄漏。根据问题的原因,采用多种方法来解决内存泄漏问题。
如果您怀疑设备中的内核模式内存泄漏,则可以使用它的最佳选择是使用它池子。Poolmon是一个实用程序,可以通过其标签名称跟踪游泳池的内存使用情况。
Poolmon包含在您的Windows驱动程序套件中,通常称为WDK。这是您如何使用Poolmon来解决内核模式内存泄漏的问题。
这是您可以遵循的步骤,以通过Poolmon在内核模式下识别内存泄漏。
启用Poolmon实用程序
如果您在Windows XP或Windows 2000上,则需要启用它。如果您在Windows的后期版本上,则默认情况下会发现它已经启用。
这是您可以在Windows XP和Windows 200上启用Poolmon的方式 -
- 您需要先使用GFLAGS启用Poolmon。
- 您可以在dWindows的ebugging工具。
- 发射
- 去系统注册表
- 检查框启用池标签
- 完成所有这些设置后,请单击
重新启动计算机,以获取生效的所有更改。
使用Poolmon查找内存泄漏
Poolmon在其标题中显示了分页和未分类的池字节。每隔几秒钟就会更新信息。
在此处遵循该过程以查找系统中的内存泄漏 -
- 发射Poolmon
- 确保您知道系统中确切的内存泄漏问题。如果您确定内存泄漏发生在非分类池中,请按P一次。如果您相信内存泄漏是由分类池引起的,请按P两次。如果您不确定,则可以离开应用程序而无需按P。这将包括所有游泳池。
- 现在,按B。这将以最大字节的使用顺序显示字节
- 进行屏幕截图并保存。最好用时间标签命名以进行轻松跟踪。
- 每半小时继续进行一次屏幕截图。
- 比较屏幕截图。这将使您了解导致更高内存使用量的标签。
停止测试并在一段时间后重复测试。检查发布了多少内存。理想情况下,应用程序应以恒定速率分配和自由记忆。如果您找到一个应用程序以比释放更快的速度分配内存的应用程序,则表明证明有内存泄漏。
Poolmon命令
如果您使用的是Poolmon,则应注意一些命令,以便可以适当地使用它。这是Poolmon使用的命令列表。
命令 | 它做什么 |
p | 按分页,非分类和混合类型的标签列表对标签列表进行分类。反复按P循环循环浏览选项 |
b | 根据最大字节用法对标签列表进行排序 |
m | 根据最大字节分配对标签列表进行排序 |
t | 按字母顺序排列基于标签名称的标签列表 |
e | 显示底部的分页,非分类和总标签。使用命令循环浏览选项。 |
一个 | 根据分配大小对标签进行排序 |
f | 根据免费操作的类型对标签进行排序 |
s | 根据分配的和释放内存之间的差异对标签列表进行排序 |
问 | 戒烟 |
您如何解决泄漏?
请注意,Poolmon只是一个监视实用程序。它将监视池标签和它们处理的内存使用情况。因此,您可以使用它们来指导哪些标签使用大量内存,因此导致内存泄漏。它不能用来解决内存泄漏的问题。
确定与内存泄漏关联的标签后,您可以使用其他工具来确定确定内存泄漏实例的确切原因。内核调试器可以成为在这方面有帮助的工具之一。但是,解释这些工具超出了本文的范围。但是,如果您面临内存泄漏问题并试图对其进行整理,Poolmon可能是您最好的选择。
分开的想法
Poolmon确实是在内核级别识别设备上的内存泄漏问题的绝佳选择。内存泄漏问题会严重降低系统的性能,因此需要及时解决。我们假设我们已经能够以正确的方式指导您使用Poolmon来识别Windows系统上内存泄漏的发生。一旦找到了泄漏的存在和引起泄漏的标签,则可以很容易地通过其他方式查看解决方案。