在活动监视器中释放更多文件高速缓存,如PURGE命令

时间:2015-02-24 02:09:03

标签: objective-c macos unix caching memcached

我发现应用程序具有清洁记忆功能。

enter image description here

我认为它使用了原始的PURGE功能,但在检查后(使用Activity Monitor),我发现它可能比Purge命令更自由文件缓存(或者它可以独立于PURGE命令运行) 。请参考下面的实验。

我的问题:

  1. 它使用什么技术来制作清洁记忆功能(我有一周的研究https://opensource.apple.com/但没有找到相关信息)?
  2. (可选)Clean Memory功能和PURGE命令之间的区别?

1 个答案:

答案 0 :(得分:1)

不要这样做。这并没有做任何有用的事情,但驱逐了帮助您的计算机更好地运行的缓存。任何声称清洁记忆的程序都只是蛇油。以这种方式思考,如果记忆真的是免费的,为什么一开始就烦恼,这只是浪费权力;相反,你希望它可以从磁盘中保存你可能需要的东西,因为你可以随时将它用于其他东西。

但是,要回答你的问题:purge在system_cmds中。 10.10中的源代码位于:https://opensource.apple.com/source/system_cmds/system_cmds-643.1.1/purge.tproj/purge.c您可以在xnu源代码中查找该系统调用的实现。

就你发布的屏幕截图的工具而言,它可能会使用各种糟糕的黑客来让它看起来像已经释放了内存。它可以分配一堆内存,导致文件缓存被丢弃以腾出空间,然后释放内存。或者也许将文件放在磁盘上并疯狂()。如果您想确切知道,可以使用调试工具进行内省。例如,samplespindump工具将向您显示堆栈,您可以从堆栈中告诉它正在进行的系统/库调用。或者,使用dtrace(可能通过dtruss脚本),您可以获得应用程序正在进行的系统调用列表。