【问题标题】:Clean up RAM (Maybe win32 api)?清理 RAM(也许是 win32 api)?
【发布时间】:2012-06-24 00:09:19
【问题描述】:

我经常看到提供 RAM 清理功能的“加速你的电脑”程序。

他们声称像垃圾收集器或其他东西一样对未使用的内存进行碎片整理和释放......不确定。

这里有一些例子:

http://www.softpedia.com/get/Tweak/Memory-Tweak/Clean-Ram.shtml

http://download.cnet.com/Instant-Memory-Cleaner/3000-2086_4-10571833.html

http://www.uniblue.com/software/speedupmypc/

如果有人知道的话,我有兴趣了解他们正在使用的 Win32 C API。

我听说过 advapi32.dll 中的 ProcessIdleTasks() 技巧,但查看有关该函数的文档并不太合法。

【问题讨论】:

  • 分配一大块内存,几乎和 RAM 一样大,提交(触摸)它,释放它。享受你的空内存和所有其他程序如何从交换中恢复内存。
  • 供参考,在SuperUser上讨论此类东西的实用性:superuser.com/questions/214526/…
  • 我严重怀疑这样的程序能否完成任何有用的事情。我能想象它们的唯一用途是作为编写糟糕程序的创可贴。
  • 所有这些应用程序都与 Windows 的内存管理混为一谈,实际上它本身就做得很好。
  • 大部分可能是骗局。

标签: c++ c winapi memory ram


【解决方案1】:

如果你真的坚持这样做,你可以枚举进程,打开每个进程的句柄,并为每个进程调用SetProcessWorkingSetSize(process_handle, -1, -1);(但你真的不想这样做)。

【讨论】:

  • 把它给了你,因为它给了一个 win32 api 来做被问到的事情(即使 no1 shud)
【解决方案2】:

我不知道这些特定程序是如何工作的,但过去我看到过类似程序的源代码。

它基本上是一次性分配大量内存,然后释放。

系统 RAM 被“释放”,因为其他程序必须交换到磁盘。

【讨论】:

  • @Naszta:然而,可能只有一个。我不得不处理不断的交换,这并不好玩。那时我的 RAM 翻了两番。
猜你喜欢
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多