gpt4 book ai didi

windows - 我可以阻止 Windows 过度急切地回收物理内存吗?

转载 作者:可可西里 更新时间:2023-11-01 11:51:03 27 4
gpt4 key购买 nike

我正在编写一个服务器应用程序,我希望尽可能有效地使用机器的所有可用物理内存。计划是它将使用 AWE 分配物理页面,直到它检测到 99% 的物理内存并在 1% 空闲时停止,并且任何时候物理内存低于 1% 空闲时,它将释放它不需要的物理页面。

然而,当我将这个计划付诸实践时,Windows 似乎认为任何时候它有 99% 的 RAM 在使用中,释放更多物理内存是个好主意,因此它开始将各种内容分页到磁盘,我的系统崩溃了。

我如何告诉 Windows 使用 99% 的 RAM 是可以的,并且它不需要尝试将内容分页回磁盘,直到它达到其默认的理想使用水平(我想它会大约 90%...)

注意:Raymond 说“除非你设计的系统是计算机上唯一运行的程序,否则这是个坏主意。”

在此服务器场景中,此基本上旨在成为计算机上运行的唯一应用程序。但不幸的是,有一些操作系统/后台任务需要运行...

但我当然不希望计算机上有任何其他进程沉迷于这种“只使用 1% 的 RAM”行为...?

更新:我做了更多的实验,开始怀疑我是否问错了问题。我认为 Windows 过于急切的假设可能是错误的。也许问题应该改为“我如何才能确定我的进程可以安全使用多少物理 RAM 而不会影响机器的整体响应能力”?

最佳答案

你不能。 Windows 内存管理器运行在比您的程序更低的级别,并且对您的程序一无所知(即使知道,它也没有理由假定您的程序是您声称的好公民。如果您的程序崩溃,或者在 malloc 的循环中有一个差一错误?在你的程序运行时其他需要内存的程序怎么办?编写 Windows MM 的人在他们在写它?)

不要试图比 Windows 更聪明。更有效地利用您的时间是考虑您的应用程序是否确实需要预先分配 99% 的物理内存。

关于windows - 我可以阻止 Windows 过度急切地回收物理内存吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29548932/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com