【问题标题】:Swift app other processes eating up all RAM memorySwift 应用程序其他进程占用了所有 RAM 内存
【发布时间】:2016-03-24 11:21:10
【问题描述】:

我正在开发一个 iOS 视频播放器应用程序,我有 3 个视图控制器。第一个(VC1)有一个带有标题的集合视图,其中包含水平滚动视图中带有图片的轮播,第二个(VC2)包含一个带有标题的集合视图,其中包含图像,第三个(VC3)是播放器.

当我在 VC1 和 VC2 之间切换很多次(比如说 10 次)时出现问题,因为每次我加载 VC2 时,来自 Debug Navigator 的“其他进程”都会增长而不会丢弃任何大量 RAM 内存.

应用打开后的统计:

我打开 VC2 7 次后的统计数据(2-3 次之后它崩溃了 = 我失去了 Xcode 和我的 iPad 之间的连接):

我不知道为什么会发生这种情况,因为我每次回到 VC1 时都会弹出 VC2。

谢谢!

【问题讨论】:

  • @vikingosegundo 感谢您的编辑:D
  • @vikingosegundo 为什么你拒绝了我的编辑,而我正在关注 considered right
  • 是的,只是删除“谢谢”并没有什么进步。 meta.stackoverflow.com/a/267386/106435
  • 另一个答案:你所做的是有问题的。只是删除我们大多数人认为无害的内容,您正在填充编辑队列,浪费其他人时间查看此内容。您可以在更广泛的编辑中删除或不删除这样的句子。但如果它是唯一的变化,它会在系统中产生比离开它更多的噪音。尝试通过回答问题来获得声誉。 nit 从做 mass.edits。
  • @tod:尝试通过回答问题来达到 2000 年,而不是进行无用的编辑,让其他人忙得不可开交。

标签: ios objective-c swift


【解决方案1】:

由于某种原因,Apple 提供的 AVAsset 和可能的许多其他框架类在您的实际设备上运行时不包括在您的应用程序的内存使用量中。

我的猜测是内存是由其他进程在内部分配的。

然而,当 iOS 决定终止违规应用时,您的应用仍会导致内存泄漏。

您确定没有保留对所有以前的 AVAsset 和类似对象的引用吗?

如果您在模拟器中运行相同的软件,您应该会看到一个明显的泄漏图。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-20
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-04
    • 2016-11-09
    • 1970-01-01
    相关资源
    最近更新 更多