有没有办法选择哪些应用程序进入虚拟内存?

有没有办法选择哪些应用程序进入虚拟内存?

我理解的虚拟内存是,当应用程序在一段时间内未被使用时,正在使用的内存会被写入磁盘。当我使用某个应用程序 (netbeans) 时,当我在执行其他操作(例如,浏览网页)大约十分钟后返回时,它似乎非常慢。

我的问题是,首先,我对虚拟内存的看法是否正确,如果正确,其次,是否有办法指定某个内存是否比其他内存更长时间地保持其 RAM?还是我必须购买更多 RAM?我使用的是 Windows 8.1 64 位

(或者下载更多 RAM)(笑话)

答案1

在普通 Windows 中无法完成您要做的事情。如果 RAM 不足,Windows 将自动允许页面错误率较高的程序使用更多 RAM,并减少其他程序的 RAM。

可能存在一个实用程序,它可以监视分配给各个进程的 RAM,并尝试通过使用 VirtualLock 和 SetProcessWorkingSetSize API 等来阻止其中一些进程进行分页。

但是,这种方法存在很多限制,即使有好处,也起不了多大作用。一个主要限制是 VirtualLock 是通过地址范围完成的,这样的程序无法“知道”目标进程中哪些地址范围是需要锁定的。(您不能锁定所有内容;空间不够。)这些 API 主要用于进程自身,或一组协作(和共同了解)进程,而不是用于调整其他随机进程。

(注:可以通过从目标进程中通过 CreateRemoteThread 创建的线程调用 VirtualLock 来实现跨进程操作。)

相关内容