当应用程序在前台或后台运行时,我需要知道 iPhone 使用了多少内存。如果它每 5 秒显示一次内存使用情况会更好。是否可以编写代码来显示正在使用的内存?任何建议都会被采纳
问问题
1959 次
2 回答
4
首先在 .h 文件中包含方法 report_memory 然后导入
#import <mach/mach.h>
这个到 .m 文件
之后在要打印内存使用值的地方写下这一行
[NSTimer scheduledTimerWithTimeInterval:5.0 target:self selector:@selector(report_memory) userInfo:nil repeats:YES];
然后添加这个
-(void) report_memory {
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 usage: %.4lf MB", info.resident_size/1024.0/1024.0);
} else {
NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
}
}
.m 文件的方法
于 2012-08-27T17:56:11.670 回答
2
用户 NSTimer 计划以 5 秒的间隔运行。要获取已用内存的值,这里有一些代码
#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));
}
}
于 2012-08-27T17:44:46.373 回答