Xcode 使用大内存,吃掉 ram 中的所有内存[已关闭]

问题描述 投票:0回答:6

我在我的 Mac 上使用 Xcode,它有 8GB 内存。 当我打开 Xcode 并且不打开任何项目并等待大约 2 分钟时,Xcode 会吃掉 ram 中的所有内存(4GB、5GB...)

有人可以告诉我为什么以及如何解决这个问题吗?

xcode macos
6个回答
14
投票

我也研究这个问题有一段时间了。我认为一种解决方案(我需要归功于用户 justin)是为 Xcode 设置几个配置值。当然应该在退出 Xcode 后完成。

在终端中执行以下命令:

defaults write com.apple.dt.XCode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4

defaults write com.apple.dt.XCode IDEIndexDisable 1

这将阻止索引并减少编译任务的数量。这让我的 Xcode 留下了一些 RAM 来实际做一些工作。

删除这些设置,例如索引:

defaults delete com.apple.dt.XCode IDEIndexDisable

如前所述,这已在这个问题中讨论过。

此外,清理 Xcode 缓存可以降低 RAM 消耗的速度。 (在 ~/Library/Developer/Xcode/DerivedData - 它位于您的主目录,而且它可能是隐藏的,因此更容易使用终端访问)。

编辑/更新:

显然,这有助于解决内存问题(尽管仍然需要定期重新启动 Xcode)。然而,您失去了一些不错的功能:即时错误检查、控制拖放 IBOutlet 添加到控制器标头(需要按照旧方法进行操作 - 输入然后连接),可能还有一些其他有用的功能带有索引。所以要注意。


2
投票

找到了临时解决方案这里

每隔一段时间运行该命令,它对我的 8GB 很有帮助


2
投票

我很惊讶我没有在这里阅读真正的答案/问题,尽管没有解决方案。我看到您提到您甚至不必打开项目,但通常在使用故事板时会出现问题。我已经确认了这一点,向苹果发送了示例,提交了错误报告,等待新版本的发布,但什么也没有。编辑情节提要视图时,某个地方会出现泄漏。如果您正在编辑原始代码,您将永远不会看到内存使用量增加,但当您开始编辑具有多个视图的故事板并继续时,问题就会出现。我目前运行 24GB 的内存,在编辑情节提要中的视图时不到一个小时就可以用完。正如其他人提到的,唯一的解决方案是重新启动 Xcode。仅仅关闭项目是不够的。


1
投票

我遇到了同样的问题,但与 Interface Builder 和 Storyboard 访问相关。

经过一番思考,很明显,当我的项目中的Storyboard文件扩大到一定数量(目前磁盘上大约1.5MB)时,XCode和IB出现了问题。

在更改某些(例如 IBLabel)对象中的文本时,每个字母大约需要 0.5 秒,而更改 6 个字符的单词需要 3 秒。这让我慢了很多。

XCode 重新启动有助于并释放所有占用的内存...直到下一个工作会话。

我有强烈的印象,IB 在每次更改后(例如更改单个字母)都会创建撤消缓冲区,因为每次更改后,内存占用量都会增加约 20 MB(可能是 RAM 中的 Storyboard 大小,磁盘上为 1.5 MB)。

XCode重启后,undo buffer消失了,一些内存也相应释放了。

我想知道一种限制撤消缓冲区大小的方法,并用较小的大小进行测试。

配置为:Mac Mini,4 GB RAM,OS X 10.8.3,XCode 4.6,XCode 4.6.1,XCode 4.6.2

我目前回到了 XCode 4.5,情况似乎好一点,但问题仍然存在。我认为这个版本的功能比 4.6 少,因此它使用的内存也更少。

好吧,看起来 XCode 4.5 实际上可以释放 Interface Builder 分配的一些内存。

2013年5月21日更新: 我从 4GB 升级到 Mac Mini 2011 8GB RAM,但尚未发现问题。


1
投票

XCode 是一个真正的内存怪物,如果您尝试使用其中一种“工具”,它会消耗更多。根据任务的不同,有些人不会遇到那么多问题,特别是如果他们有更多的内存。

就我个人而言,我从 2GB 开始,XCode 只是......痛苦

升级到 8GB 后,我只需要时不时地重新启动

我听说有16GB的人不会抱怨那么多,每天只需要重新启动XCode一两次即可。

我觉得很奇怪,你在 2 分钟后就用完了所有的记忆。我可能猜测您的某些设置导致所有 XCode 泄漏变得更加严重。您是否尝试过删除所有 ~/Library/Developer 文件夹和设置文件?


0
投票

这个问题没有真正的解决办法。

许多网站上都对此进行了讨论。帮助我解决这个问题的唯一解决方案是, 现在重新启动 XCode,然后重新启动。我认为这个问题不会有真正的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.