Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在活动监视器中释放更多非活动或文件缓存内存_Ios_Objective C_Macos_Memory_Memory Management - Fatal编程技术网

Ios 在活动监视器中释放更多非活动或文件缓存内存

Ios 在活动监视器中释放更多非活动或文件缓存内存,ios,objective-c,macos,memory,memory-management,Ios,Objective C,Macos,Memory,Memory Management,我发现一个应用程序有干净的内存功能 我认为它使用了原始的PURGE功能,但在检查(使用活动监视器)之后,我发现它可能比PURGE命令更自由地缓存文件(或者它可以独立于PURGE命令运行)。请参考下面我的实验 下面是活动监视器中的第一个信息 然后,我使用清理内存功能(释放600+MB的文件缓存) 最后,我使用PURGE命令(释放更多400+MB的文件缓存) 我的问题: 参考 1.它使用了什么技术来实现干净的记忆功能(我研究了一周,但没有找到相关信息)? 2.(可选)清除内存功能和清除命令之

我发现一个应用程序有干净的内存功能

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

  • 下面是活动监视器中的第一个信息
  • 然后,我使用清理内存功能(释放600+MB的文件缓存)
  • 最后,我使用PURGE命令(释放更多400+MB的文件缓存)
  • 我的问题: 参考
    1.它使用了什么技术来实现干净的记忆功能(我研究了一周,但没有找到相关信息)?

    2.(可选)清除内存功能和清除命令之间的区别?

    内存清除应用程序似乎只是分配内存并释放内存。如果您有Xcode,您可以运行仪器并跟踪内存的分配。当您点击“清除内存”按钮时,您将在仪器中看到分配的“总字节数”几乎与内存清除中显示为“可用可用内存”的字节数相同。您也可以在活动监视器中看到相同的内容

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

    vfs_purge(0x7FFF5320CDE8, 0x7FFF5320CDF8, 0x7FFF5320CE48)        = 0 0
    
    根据来源,更具体地说,根据评论:

    /* *用于模拟冷启动的清除缓冲区缓存 */


    不用说,清除文件缓存是个坏主意,它只有一个好的应用程序-基准磁盘。

    我找到了解决方案


    创建数据然后发布数据很简单。

    Tks如需评论,您能否解释有关“分配内存并发布”的更多详细信息?怎么做?有很多方法可以做到这一点,但最快的方法可能是
    malloc()
    。你可以查一下电话号码。从NSData或NSMutableData中尝试malloc()、free()