有没有办法设置进程可以在Windows XP中使用的系统范围的内存限制?我有几个不稳定的应用程序,大部分时间都可以正常工作,但可以点击一个错误,导致在几秒钟内吃掉整个记忆(或者至少我认为就是这样).这导致硬复位,因为Windows变得完全没有响应,我失去了工作.
我希望能够像Linux上的/ etc/limits那样做 - 例如设置M90(为单个用户设置90%的最大内存来分配).因此,无论如何,系统都会获得剩余的10%.
使用Windows 作业对象.作业就像进程组一样,可以限制内存使用和进程优先级.
使用Microsoft 的Application Verifier(AppVerifier)工具.
在我的情况下,我需要模拟内存不再可用,所以我在工具中执行了以下操作:
添加了我的申请
未选中基本
检查低资源模拟
将TimeOut更改为120000 - 我的应用程序将在任何生效之前正常运行2分钟.
将HeapAlloc更改为100 - 100%堆分配错误的可能性
将Stacks设置为true - 堆栈将无法增大
保存
开始我的申请
2分钟后,我的程序无法再分配新的内存,我能够看到一切都是如何处理的.