2

我注意到当我运行 Xcode 时,特别是开始运行 Interface builder。Mac osx 占用内存迅速增加。不仅是xcode,还有一些其他的应用程序运行一段时间后也会导致内存占用过多。甚至我的mac内存是4GB,有时我不得不使用工具来释放内存。在我开发的 mac 应用程序中发生这种情况的原因是什么以及如何避免这种情况?

欢迎任何评论

4

1 回答 1

0

我刚刚在我的 Qt 应用程序中经历了类似(但可能不一样)的事情。

我正在读取和校验大量文件并且可用内存不断下降,尽管我的应用程序“真实内存”保持在稳定的 50 ish MB。然而,“非活动记忆”的数量不断攀升。

发生的事情是我读取的每个文件都被添加到磁盘缓存中。磁盘缓存消耗的内存明显标记为“非活动”,根据苹果( http://support.apple.com/kb/HT1342 ) ,它应该与“空闲”内存一样可用,但这并没有停止当“免费”达到 50ish MB 以下时,OSX 开始交换。

在 C 中:

  #include "fnctl.h"
  fcntl(f.handle(),F_GLOBAL_NOCACHE,1);

似乎通过绕过该文件描述符的磁盘缓存来解决这个问题。

释放非活动内存(如果这确实是您的问题)也可以使用“purge”命令从命令行完成。

于 2012-06-22T13:05:57.593 回答