memory - iOS 6,崩溃并出现内存不足警告

标签 memory crash ios6 memory-leaks

我的应用程序升级到 IOS 6.0 后不断崩溃。在控制台中,它显示内存不足警告,这在 IOS 4 和 IOS 5 中不会发生...我正在使用 ARC。我尝试查看崩溃报告,但什么也没告诉我,就是这里

=============================================
Incident Identifier: 06CF58AA-4C1A-4CA3-A522-F44881E8D301
CrashReporter Key:   69ed28238a860bdf99a77524c1b4b029516122e1
Hardware Model:      iPod4,1
OS Version:          iPhone OS 6.0 (10A403)
Kernel Version:      Darwin Kernel Version 13.0.0: Sun Aug 19 00:27:34 PDT 2012; root:xnu-2107.2.33~4/RELEASE_ARM_S5L8930X
Date:                2012-10-06 20:57:43 +0800
Time since snapshot: 63 ms

Free pages:        318
Active pages:      1626
Inactive pages:    1057
Throttled pages:   44479
Purgeable pages:   5
Wired pages:       15989
Largest process:   MJClub

Processes
     Name                    <UUID>                       rpages       recent_max       [reason]          (state)

      MobileMail <bff817c61ce33c85a43ea9a6c98c29f5>         1053             1053         [vm]         (resume) (continuous)
     MobilePhone <3fca241f2a193d0fb8264218d296ea41>          996              996         [vm]         (resume) (continuous)
            tccd <eb5ddcf533663f8d987d67cae6a4c4ea>          161              161         [vm]         (daemon)
          MJClub <ab7b5723f2023289927f68004c99544b>        17907            17907         [vm]         (frontmost) (resume)
            ptpd <04a56fce67053c57a7979aeea8e5a7ea>          588              588                      (daemon)
    mediaserverd <80657170daca32c9b8f3a6b1faac43a2>          442              442                      (daemon)
         syslogd <cbef142fa0a839f0885afb693fb169c3>          148              148                      (daemon)
      aosnotifyd <d4d14f2914c3343796e447cfef3e6542>          434              434                      (daemon)
     dataaccessd <2a3f6a518f3f3646bf35eddd36f25005>         1347             1347                      (daemon)
   iaptransportd <f784f30dc09d32078d87b450e8113ef6>          213              213                      (daemon)
       locationd <892cd1c9ffa43c99a82dba197be5f09e>          701              701                      (daemon)
           wifid <9472b090746237998cdbb9b34f090d0c>          297              297                      (daemon)
     SpringBoard <27372aae101f3bbc87804edc10314af3>         2462             2462                     
      backboardd <5037235f295b33eda98eb5c72c098858>         3475             3475                      (daemon)
         configd <4245d73a9e96360399452cf6b8671844>          368              368                      (daemon)
   fairplayd.N81 <335829f71dcd315fae46a042918d4716>          145              145                      (daemon)
       fseventsd <996cc4ca03793184aea8d781b55bce08>          317              317                      (daemon)
         imagent <1e68080947be352590ce96b7a1d07b2f>          353              353                      (daemon)
   mDNSResponder <3e557693f3073697a58da6d27a827d97>          204              204                      (daemon)
       lockdownd <ba1358c7a8003f1b91af7d5f58dd5bbe>          266              266                      (daemon)
          powerd <2d2ffed5e69638aeba1b92ef124ed861>          144              144                      (daemon)
  UserEventAgent <6edfd8d8dba23187b05772dcdfc94f90>          431              431                      (daemon)
     debugserver <185719f06f1631d4922c652bdd4c8529>            0                0                      (daemon)
springboardservi <ff6f64b3a21a39c9a1793321eefa5304>            0                0                      (daemon)
    syslog_relay <45e9844605d737a08368b5215bb54426>            0                0                      (daemon)
      DTMobileIS <23303ca402aa3705870b01a9047854ea>            0                0                      (daemon)
    syslog_relay <45e9844605d737a08368b5215bb54426>            0                0                      (daemon)
notification_pro <845b7beebc8538ca9ceef731031983b7>          131              131                      (daemon)
            afcd <b0aff2e7952e34a9882fec81a8dcdbb2>          136              136                      (daemon)
filecoordination <fbab576f37a63b56a1039153fc1aa7d8>          122              122                      (daemon)
       distnoted <a89af76ec8633ac2bbe99bc2b7964bb0>          106              106                      (daemon)
            apsd <94d8051dd5f5362f82d775bc279ae608>          316              316                      (daemon)
        networkd <0032f46009f53a6c80973fe153d1a588>          159              159                      (daemon)
      aggregated <8c3c991dc4153bc38aee1e841864d088>           94               94                      (daemon)
        BTServer <c92fbd7488e63be99ec9dbd05824f5e5>          300              300                      (daemon)
       securityd <dafed6d6d9843902a4a215ae04b0b530>          156              156                      (daemon)
         notifyd <51c0e03da8a93ac8a595442fcaac531f>          155              155                      (daemon)

**End**
===========================================================

我对仪器了解不多,不过也看了一下,这是仪器的一些数据

通过使用事件监视器

  • 虚拟内存=219M

  • 真实内存= 32M

通过使用分配

  • 实时字节 = 2.5M(在 2.5M 左右崩溃)

  • 通过使用 Leak

拿走admob后未发现泄漏

使用admob时发现了一点泄漏,但我认为这并不重要

通过使用 VMTracker

  • 驻留大小=82.43MB

  • 一开始Dir​​ty Size=40MB,后来增加到72MB,并且不断收到低内存警告和崩溃,如果我不使用admob,应用程序可以运行1个多小时没有任何问题。

对于 admob,我使用的是最新的 6.2.0,我尝试使用中介 id/发布者 id,两者给出相同的结果。使用 6.0.1 给出相同的结果。

我还用其他广告(例如 inmobi)替换了 admob,它会持续更长时间,但有时仍然会崩溃(启动后 10 分钟)

请问有人可以给我关于这个问题的任何想法吗?这个崩溃只发生在IOS6中,在IOS5中一切正常。我再次使用 ARC。

最佳答案

我使用 ARC 的应用程序在 iOS6 上开始严重泄漏内存,而在 iOS5 上运行得很好。当我说“泄漏”时,我实际上是指分配内存,然后当我从可变数组中删除对象时没有正确释放内存,导致应用程序的内存使用量急剧增加。

经过多次挫折后,我设法通过在有问题的部分周围设置一个 @autoreleasepool { ... } 来修复它。

我怀疑,与 iOS5 相比,iOS6 对我的应用程序的线程处理方式不同,因为曾经有一个 @autorelease 池覆盖该进程。

我希望这对某人有帮助。祝您好运,解决您的问题。

关于memory - iOS 6,崩溃并出现内存不足警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12760901/

相关文章:

linux - 多线程进程的内存布局

android创建对象和内存

c - 动态向 char * 添加单词

ios - 我的UIImageView的PNG图像没有出现,但是出现了另一个PNG图像

c - 我在此代码中收到错误 "invalid indirection"

android - Android上的loopj http库: Activity 处于后台时回调

objective-c - 崩溃的突然尖峰总是在同一行上

iOS:iOS 设备上的崩溃日志存储在哪个具体目录中?

iphone - 如何以编程方式创建自定义 View 类?

ios - NSMutableArray removeAllObjects 导致崩溃