我正在使用Mac应用。在我运行我的应用程序时,最初监控Xcode的内存报告显示内存只是疯狂增加。我使用了仪器并将我的应用程序分析为分配和泄漏。事实证明,由于强大的参考周期等原因,没有多少泄漏的内存。但是有很多被遗弃的内存。通过跟踪导致我的代码的堆栈跟踪,我使用自动释放池等固定了70%。剩下的30%的废弃内存似乎指向系统调用。
现在我有两个问题,基于我有两个问题
1)我想修复剩余的30%。我怎样才能摆脱遗弃的记忆?我已经使用过Instruments并确切知道这些系统调用的确切位置,但仍然不知道如何清理内存。 (使用ARC没有手动保留/释放和自动释放似乎不会产生差异。)
2)在我知道我的应用程序正在做什么已经完成并且不需要任何内存(就像应用程序首次启动)之后我想要摆脱我的应用程序已用完的所有内存。我计划用它来作为一种强力方法来清理所有内存,就像用户关闭应用程序或关闭系统时的系统一样。
基本上如果我知道我的应用程序内存在文件系统中的位置,我只是以编程方式调用purge命令或类似的东西。因为在这一点上,我100%确定应用程序不需要内存,除了第一次启动应用程序时所期望的第一个屏幕。