
2009年6月28日11:42:45
很少有软件可以限制程序进程的内存使用量. . . . . 野火从未见过. MemLimit是一种限制程序进程内存使用的软件. 它可以限制任何进程的物理内存使用量,并防止过多的内存使用量,这是Roger编写的.
MemLimit在此处进行软限制. 如果限制为10MB,则应用程序可以使用12M和18M,但是在很短的时间内它将返回到10M的状态. MemLimit的原理是每隔一段时间调用SetProcessWorkingSetSize. 如果该进程使用过多的物理内存,将被迫立即将其写入页面文件. 因此,为了使该限制生效,MemLimit必须一直运行. 当窗口最小化并双击以恢复时,它将自动隐藏在托盘中.

但是没有办法限制进程使用的虚拟内存量. 如果使用job(job)可能会有更多限制,例如CPU使用时间等,但这是一个硬限制,可能导致进程直接终止.
在进程中使用MemLimit如何限制软件占用内存,并且设置的限制值太小如何限制软件占用内存,可能导致频繁的页面交换,从而使进程响应变慢.
发生的最后一个问题是,当Roger认为所有内容都可以打包时,他突然发现直接运行MemLimit.exe(而不是在VC中启动它)会导致某些系统用户启动的进程使OpenProcess失败. 这是因为VC本身具有se_debug_name权限,该权限将在启动MemLimit时继承其权限,从而导致奇怪的结果. 解决方案是在程序初始化期间向memLimit进程授予me_debug_name权限.

管理员还必须启动另一个麻烦的事情,并且仅在xp下进行了测试.
限制前的屏幕截图1:


截图2受限制后:

[下载地址]: MemLimit_1.0.1.zip(7KB)

——————————————————————————
作者: roger
博客:
电子邮件: roger99707@163.com
欢迎本文转载和引用,请保留此说明并注明出处
——————————————————————————
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/ruanjian/article-253937-1.html
驸马都尉是武汉大学中文出身的文科生