即使我只使用基于Window的应用程序模板,它几乎没有任何东西,仪器(活动监视器)说我的应用程序的过程是使用8.14MB的真实内存!即使采用这种方法:
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));
}
}
它还是~8.14 MB!所以看来仪器是正确的,但为什么UIWindow会占用那么多内存?
答案 0 :(得分:2)
我的猜测是,占用所有空间的Objective-C运行时库,而不是你的UIWindow
本身。但是,所有应用程序都使用这些库的副本,iPhone OS 可能足够聪明,可以在所有正在运行的应用程序中共享该内存(当然,只允许系统应用程序运行背景)。