清理内存(也许是win32 api)?

时间:2012-06-21 17:31:09

标签: c++ c winapi memory ram

我经常看到“加速你的电脑”程序提供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(),但看看该函数的文档看起来不太合理。

2 个答案:

答案 0 :(得分:3)

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

它基本上一次性分配了大量的RAM,然后将其释放。

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

答案 1 :(得分:3)

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