在Activity Monitor中释放更多非活动或文件高速缓存内存

时间:2015-03-07 22:56:00

标签: ios objective-c macos memory memory-management

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

enter image description here

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

  1. 以下是“活动监视器”中的第一个信息
  2. enter image description here

    1. 然后,我使用Clean Memory功能(FREE UP 600+ MB文件缓存)
    2. enter image description here

      1. 最后,我使用PURGE命令(FREE UP UP 400+ MB文件缓存)
      2. enter image description here

        我的问题: 请参阅free mem as function of command 'purge'
        1.它使用什么技术来制作清洁记忆功能(我有一周研究https://opensource.apple.com/但是没有找到相关信息)?
        2.(可选)Clean Memory功能和PURGE命令之间的区别?

2 个答案:

答案 0 :(得分:2)

Memory Clean应用程序似乎只是分配内存并释放它。如果你有Xcode,你可以运行仪器并跟踪Memory Clean的分配。一旦你点击"清洁记忆"按钮,你会在仪器中看到分配的"总字节数"几乎与显示为"可用内存和#34;在记忆清洁。您也可以在活动监视器中看到相同的内容。

关于purge命令,它似乎使用不同的机制。使用dtrussdtruss purge)跟踪它会在最后一行显示以下结果:

vfs_purge(0x7FFF5320CDE8, 0x7FFF5320CDF8, 0x7FFF5320CE48)        = 0 0

根据vfs_syscalls的来源,更具体地说是评论:

  

/ *    *清除缓冲区缓存以模拟冷启动    * /

毋庸置疑,清除文件缓存是一个坏主意,它只有一个很好的应用程序 - 基准测试磁盘。

答案 1 :(得分:0)

我找到了解决办法。

这是简单的创建数据,然后将其释放。