代码之家  ›  专栏  ›  技术社区  ›  mk12

iPhone开发人员-为什么使用8MB?

  •  5
  • mk12  · 技术社区  · 15 年前

    即使我只是使用基于窗口的应用程序模板(实际上什么都不做),instruments(activity monitor)说我的应用程序的进程使用了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.14MB!看来仪器是对的,但为什么UIWindow会占用那么多内存呢??

    1 回复  |  直到 15 年前
        1
  •  2
  •   David    15 年前

    我猜想是Objective-C运行库占用了所有的空间,而不是您的 UIWindow 它本身但是,所有应用程序都使用这些库的副本,即iPhone操作系统 要足够聪明,在所有正在运行的应用程序之间共享内存(当然,只有系统应用程序才允许在后台运行)。