Instruments'Allocations模板在'All Allocations - Live Bytes'下显示应用程序的当前内存使用情况。
根据这个帖子Programmatically retrieve memory usage on iPhone,我还可以使用以下代码获取应用程序的内存使用情况:
#import <mach/mach.h>
// ...
void report_memory(void) {
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 ) {
NSLog(@"Memory in use (in bytes): %u", info.resident_size);
} else {
NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
}
}
但是当'Live Bytes'显示7 + MB时,上面的代码给出40 + MB。他们不应该在同一个地方吗?