SetPriorityClass 函数潜在得32MB工作集内存限制

MSDN:

SetPriorityClass function (processthreadsapi.h) - Win32 apps | Microsoft Learn

当人们调用 SetPriorityClass 函数并且将 “dwPriorityClass” 参数设置为:PROCESS_MODE_BACKGROUND_BEGIN 时。

应用程序得工作集(Working Set)内存,开发人员必须控制在 32MiB,否则会导致大量得 “内存缺页异常”,因为操作系统会把多余得内存频繁得转储到 “PageSys” (虚拟内存页面)之中。

在谷歌得安装程序115版本之中,因为在浏览器之中后台更新时,执行了这行代码,导致了谷歌安装程序耗费了大量得硬件CPU性能,当然谷歌在116版本得安装器之中已经修复了这个BUG。

这个问题,在微软给定的 Windows ABI 文档之中,没有任何得表现形式,所以人们,很有可能掉入该陷进。

当然,上面提到了只有当 Working Set 超过 32MiB 时,才会导致这个问题得发生,如果程序并不涉及到这么多的工作集内存得话,比如:运行很长时间,也不过使用10MB资源,其实就没有必要去处理了。

  • 10
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值