这已经困扰我很长时间了。我的应用程序运行占用大约 2.74MB 内存。没关系。但当它创建一个 UIWebView 时,它会增加到大约 5.87MB 并继续崩溃。这些是在我的第一代 iPad 上运行时仪器中的实时字节下给出的值。
我找不到崩溃日志。以下来自控制台:
MyApp[1205] <Warning>: Received memory warning. Level=1
MyApp[1205] <Warning>: applicationDidReceiveMemoryWarning
SpringBoard[30] <Warning>: Received memory warning. Level=1
MobileMail[1199] <Warning>: Received memory warning. Level=1
configd[26] <Notice>: jetsam: kernel memory event (95), free: 428, active: 1853, inactive: 1011, purgeable: 338, wired: 15122
configd[26] <Notice>: jetsam: kernel termination snapshot being created
com.apple.launchd[1] <Notice>: (UIKitApplication:com.apple.mobilemail[0x8966]) Exited: Killed: 9
com.apple.launchd[1] <Notice>: (UIKitApplication:com.MyApp.MyApp[0xdd4f]) Exited: Killed: 9
SpringBoard[30] <Warning>: Application 'Mail' exited abnormally with signal 9: Killed: 9
kernel[0] <Debug>: launchd[1207] Builtin profile: MobileMail (sandbox)
SpringBoard[30] <Warning>: Application 'MyApp' exited abnormally with signal 9: Killed: 9
configd[26] <Debug>: CaptiveNetworkSupport:UIAllowedNotifyCallback:70 uiallowed: false
ReportCrash[1206] <Error>: libMobileGestalt loadBasebandMobileEquipmentInfo: CommCenter error: 1:45
ReportCrash[1206] <Error>: libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary
ReportCrash[1206] <Error>: Saved crashreport to /Library/Logs/CrashReporter/LowMemory-2011-05-12-160645.plist using uid: 0 gid: 0, synthetic_euid: 0 egid: 0
我已经删除了对 imageNamed 的所有调用,将自动释放的内容更改为分配/释放。但我不明白为什么会发生这种情况,这让我发疯。
感谢您的帮助!
This has been annoying me for a long time. My app runs taking up about 2.74MB of memory. That's fine. But then when it creates a UIWebView it goes up to around 5.87MB and proceeds to crash. Those are the values given under Live Bytes in Instruments while running on my 1st gen iPad.
There is no crash log that I can find. The following is from the console:
MyApp[1205] <Warning>: Received memory warning. Level=1
MyApp[1205] <Warning>: applicationDidReceiveMemoryWarning
SpringBoard[30] <Warning>: Received memory warning. Level=1
MobileMail[1199] <Warning>: Received memory warning. Level=1
configd[26] <Notice>: jetsam: kernel memory event (95), free: 428, active: 1853, inactive: 1011, purgeable: 338, wired: 15122
configd[26] <Notice>: jetsam: kernel termination snapshot being created
com.apple.launchd[1] <Notice>: (UIKitApplication:com.apple.mobilemail[0x8966]) Exited: Killed: 9
com.apple.launchd[1] <Notice>: (UIKitApplication:com.MyApp.MyApp[0xdd4f]) Exited: Killed: 9
SpringBoard[30] <Warning>: Application 'Mail' exited abnormally with signal 9: Killed: 9
kernel[0] <Debug>: launchd[1207] Builtin profile: MobileMail (sandbox)
SpringBoard[30] <Warning>: Application 'MyApp' exited abnormally with signal 9: Killed: 9
configd[26] <Debug>: CaptiveNetworkSupport:UIAllowedNotifyCallback:70 uiallowed: false
ReportCrash[1206] <Error>: libMobileGestalt loadBasebandMobileEquipmentInfo: CommCenter error: 1:45
ReportCrash[1206] <Error>: libMobileGestalt copyInternationalMobileEquipmentIdentity: Could not get mobile equipment info dictionary
ReportCrash[1206] <Error>: Saved crashreport to /Library/Logs/CrashReporter/LowMemory-2011-05-12-160645.plist using uid: 0 gid: 0, synthetic_euid: 0 egid: 0
I have removed all calls to imageNamed, changed autoreleased stuff to alloc/release. But I cannot work out why this is happening and it's driving me insane.
Thanks for any help!
发布评论
评论(3)
几乎可以肯定,您使用的内存比您想象的要多得多。
要了解应用程序真正使用的内容,您必须做什么并不明显,但是一旦您执行几次,您就会记住。
然后您将看到脏内存(在我的屏幕截图中当前为 20.34MB)。
这应该可以让您更好地了解应用程序退出的原因。您可能发生了一些大的泄漏。
祝你好运!
You are almost certainly using a lot more memory than you think.
It's not obvious what you have to do to see what your app is really using, but once you do it a couple times, you'll remember.
Then you will see your Dirty memory (currently 20.34MB in my screenshot).
This should give you a much better picture of why your app is getting quit. You probably hav some large leaking happening.
good luck!
我有两件事需要补充,可能会有所帮助:
如
查看操作系统分配给您的应用程序的内存量。这是您应用程序正在使用的内存的更准确数字。 (您需要#import“mach/mach.h”)
干杯!
I have two things to add that may help:
As mentioned in this answer use the following code
to see the amount of memory the operating system has assigned your app. That is more accurate number on the memory you app is using. (You will need to #import "mach/mach.h")
cheers!
您快速按该菜单按钮 2 次,您将看到该应用程序,单击所有应用程序的 x,然后打开您需要的应用程序。
You press that menu button 2 times fast you will see the app click the x for all the apps then open the ones you need.