在运行时动态确定内存使用情况

时间:2012-05-09 03:30:22

标签: iphone objective-c ipad

有没有办法查看您的应用在运行时使用了多少内存?然后,您可以有条件地选择是否允许用户加载更多资产。例如,根据导入照片的大小,您可以根据所导入照片的大小组合照片拼贴的应用程序,不同项目的照片总数可能会有所不同。

1 个答案:

答案 0 :(得分:1)

使用以下函数可以在运行时使用内存。您可以在代码中的某些分配之前和之后调用此函数。所以它会给你一些分配的内存使用,你可以知道内存在哪里增加。

void memory_report(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));
        }
    }

希望,这会对你有帮助..