2009-10-04 3 views
5

文字通り何もしないWindowベースのアプリケーションテンプレートを使用しても、私のアプリケーションのプロセスでは、8.14MBのリアルメモリを使用しています。この方法でも:iPhone dev - なぜ8MBを使用していますか?

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はその多くの記憶を取りますか?

+2

おそらく、Appleのアーキテクチャは人々がそれを考えているほど良くはありませんか? :) – LiraNuna

答えて

2

あなたのUIWindowではなく、そのスペースをすべて占有しているのはObjective-Cランタイムライブラリだと思います。しかし、すべてのアプリケーションでこれらのライブラリのコピーを使用すると、iPhone OS は実行中のすべてのアプリケーション間でそのメモリを共有するほどスマートになることがあります(ただし、バックグラウンドで実行できるシステムアプリのみです)。

関連する問題