【问题标题】:What is a high iOS memory usage?什么是高 iOS 内存使用率?
【发布时间】:2014-03-14 22:52:13
【问题描述】:

我在通过 Xcode 和仪器运行的设备上测试了我的应用程序,以监控 CPU 和内存水平。我的应用程序在某些视图上运行动画,我注意到即使在离开该页面后,内存水平仍然很高并且会建立在顶部。在某一时刻,内存级别约为 90MB。

这正常吗?

我已检查自动引用计数是否已打开。内存不应该自己清除吗?

谢谢。

这是占用大量内存的动画之一。

-(IBAction)start:(id)sender
{
   animation.animationImages = [NSArray arrayWithObjects:
                                     [UIImage imageNamed:@"1.png"],
                                     [UIImage imageNamed:@"2.png"],
                                     [UIImage imageNamed:@"3.png"],
                                     [UIImage imageNamed:@"4.png"],
                                     [UIImage imageNamed:@"5.png"], nil];
    [animation setAnimationRepeatCount:0];
    animation.animationDuration = 2.5;
    [animation startAnimating];
}

这是前面的分配和泄漏工具。 “#生活”是我需要担心的吗?

【问题讨论】:

    标签: ios memory


    【解决方案1】:

    您需要发布代码。如果离开页面后内存没有清除,则意味着有东西在保留它。 90MB 可能有点高 - 您是在为大型磁盘加载图像制作动画吗?

    ARC 不是垃圾回收——你仍然需要小心你持有的东西

    【讨论】:

    • 图片或动画假设你需要发布信息,那是怎么做的呢?我用动画的代码编辑了帖子。
    • 还添加了仪器报告@davbryn
    • 你的记忆被那些 png 文件占用了。它们都是一次加载的,因为它们归动画对象所有,所以它们同时都在内存中。但是,忽略总字节数 - 这是总共分配的内存(包括释放的内存),你有 11 MB 的活动字节,这很好。您没有使用 97MB
    【解决方案2】:

    根据您的应用程序的用途,90MB 可能很多。 ARC 并不神奇,虽然它对内存管理有很大帮助,但保留周期会导致内存构建而无法正确释放。您应该使用分配和内存泄漏工具来查看哪些对象没有正确释放。

    【讨论】:

      猜你喜欢
      • 2016-06-02
      • 2016-05-05
      • 1970-01-01
      • 2012-05-31
      • 1970-01-01
      • 2011-03-31
      • 1970-01-01
      • 2017-09-24
      • 2011-09-19
      相关资源
      最近更新 更多