【发布时间】:2013-01-12 02:47:21
【问题描述】:
我正在为 App Store 开发一个应用程序,但在内存管理方面遇到了奇怪的问题。
我正在使用 ARC。
在连接到 Instruments 的未越狱的 iPod touch 4G 6.0.1 上测试我的应用程序时,一切似乎都很顺利 - 我的应用程序使用的内存不到 5mb时间,没有泄漏。然而,经过长时间的使用,尽管仍然在仪器中被监控为 杀死。我在后台没有任何打开的应用程序,所以我假设我的应用程序正在泄漏内存,仪器无法跟踪。怎么会这样?
此外,我开始使用一个函数来跟踪内存使用情况,特别是:
struct task_basic_info info;
mach_msg_type_number_t size = sizeof(info);
kern_return_t kerr = task_info(mach_task_self(),
TASK_BASIC_INFO,
(task_info_t)&info,
&size);
if( kerr == KERN_SUCCESS ) {
return info.resident_size/1024.0/1024.0;
} else {
return -1.0;
}
它似乎报告了我的应用程序行为可能预期的内存使用范围 (60-70Mb)。我在 Instruments 中同时进行测量,它仍然显示 ~3-4Mb。这是怎么回事?
【问题讨论】:
标签: iphone ios objective-c memory instruments