【发布时间】:2011-08-29 22:16:12
【问题描述】:
感谢您的宝贵时间 我正在使用:
- XCode 4.0 Build 4A304a
- IOS 4.3.1
- 在 iPhone 4 上运行
我刚刚使用导航模板创建了一个项目。
该应用程序什么都不做,表格只有一行,当您点击这一行时,它会检查应用程序使用了多少内存并将结果写入detailTextLabel。
这个应用程序使用 4MB。这正常吗?
这是我用来获取内存信息的代码:
- (float) reportUsedMemoryInBytes {
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;
} else {
NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
return -1.0;
}
}
标签被填满了
cell.detailTextLabel.text = [NSString stringWithFormat:@"%.2f Mb",
[self reportUsedMemoryInBytes] / 1024.0 / 1024.0];
当使用带有内存监视器的 Instrument 时,如果我向下滚动,我会看到名为 MemTest 的进程。
- 在 Real Memory 列中保持 4.58 Mb
- 在虚拟内存列中保持 75.78 Mb
但是,如果我使用 Allocations 并检查第一行 all Allocations 那么
- 在 Live Bytes 列中保持 631.51 Kb
- 在总字节数列中保持 1.26 Mb
这个简单的应用程序现在使用的正确内存量是多少? 我只想知道我的应用程序使用了多少内存,而不知道框架和 IOS 库使用的东西。
感谢每个机构的帮助。
【问题讨论】:
-
您可能希望为此使用 Instruments。
-
我认为您的意思是 MiB(兆字节,2^20 字节),而不是 MB(兆字节,10^6 字节),绝对不是 Mb(兆比特,10^6 位)。
标签: ios