You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

64位Windows 10中如何限制分页池内存大小以解决音频驱动引发的内存泄漏问题?

64位Windows 10中如何限制分页池内存大小以解决音频驱动引发的内存泄漏问题?

首先得明确告诉你:64位Windows 10没有官方支持的手动限制分页池大小的方法。你在《Windows Internals》(第1版)第363页看到的PagedPoolLimit等注册表项,确实仅适用于32位操作系统,64位系统根本不会识别这些设置。

关于64位系统的分页池上限,《Windows Internals》第7版第384页有明确说明:

Windows 10和Server 2016将全局变量移到了全局内存管理结构(MI_SYSTEM_INFORMATION)名为MiState的字段中。其中包含一个名为Vs的_MI_VISIBLE_STATE类型变量,分页池相关的大小信息就存储在这里。全局变量MiVisibleState也指向该Vs成员。同时文中提到,64位Windows 10的分页池最大上限为15.5TB。

这个上限是系统内部计算的参数,没有公开的修改入口——微软这么设计是因为64位系统的内存寻址空间极大,默认的分页池上限已经足够应对绝大多数场景,强行修改反而容易导致系统稳定性问题,比如关键服务因内存不足崩溃。

而且更重要的是:限制分页池大小并不是解决内存泄漏的根本方案。你已经通过PoolMon(WDK工具)和Windows Performance Analyzer(Windows SDK工具)确认是音频驱动导致的泄漏,那应该从根源入手解决,给你几个实际可行的方案:

  • 优先更新音频驱动:别用Windows自动推送的通用驱动,直接去你的音频硬件厂商(比如Realtek、Creative、Intel等)官网下载对应型号的最新驱动,很多内存泄漏问题都是驱动bug导致的,新版本通常会修复这类问题。
  • 回滚到稳定驱动版本:如果更新到最新驱动后泄漏依然存在,试试回滚到之前用着没问题的旧版本,有时候新驱动反而会引入新bug。
  • 禁用音频高级功能:比如音频增强、Dolby Atmos、虚拟环绕声这类额外的音频处理功能,很多时候这些模块会引发内存泄漏,关闭它们看看问题是否缓解。
  • 临时缓解方案:如果暂时找不到合适的驱动,可以设置一个定时重启任务(比如每周自动重启一次),避免分页池持续耗尽导致系统卡顿或崩溃。

另外你提到的IBM文章没有标注32位限制,但实际测试下来,那些设置在64位Windows 10上完全不起作用,就别浪费时间尝试了。

备注:内容来源于stack exchange,提问作者bananakid

火山引擎 最新活动