升级到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
Real Mem = 32M
使用分配
Live Byte = 2.5M(崩溃在2.5M左右)
使用Leak
当拿走admob时没有发现泄漏
使用admob时发现了一点泄漏,但我认为这并不重要
使用VMTracker
居民人数= 82.43MB
Dirty Size = 40MB开头,但增加到72MB,并继续接收低内存警告和崩溃,如果我不使用admob,应用程序可以运行超过1小时没有任何问题。< / p>
对于admob我使用最新的6.2.0,我尝试使用中介ID /发布者ID,两者都给出相同的结果。使用6.0.1会得到相同的结果。
我也用其他广告替换admob(例如inmobi)它会持续更长时间,但有时仍会崩溃(启动后10分钟)
请问任何人可以就此问题给我任何想法吗?这次崩溃只发生在IOS6,在IOS5中一切都很好。我再次使用ARC。
答案 0 :(得分:3)
我的应用程序使用ARC开始在iOS6上非常糟糕地泄漏内存,而它在iOS5上完美运行。当我说“泄漏”时,我的意思是分配内存,然后当我从可变数组中删除对象时不能正确释放内存,导致应用程序的内存使用量急剧增加。
经过多次挫折之后,我设法通过在违规部分周围设置@autoreleasepool {...}来解决这个问题。
我怀疑iOS6与iOS5相比,我的应用程序的线程不同,因为曾经是一个覆盖该过程的@autorelease池。
我希望能有所帮助。祝你好运解决问题。
答案 1 :(得分:1)
通过监控我的应用程序内存,我发现在iOS6上,与iOS5相比,可用内存(RAM)更少。我想iOS6需要更多内存。因此,应用程序可用内存较少,内存警告更频繁。