2009-10-04 13 views
5

Incluso cuando solo uso la plantilla de la aplicación basada en Windows, que no hace literalmente nada, los instrumentos (monitor de actividad) dicen que el proceso de mi aplicación usa 8.14MB de Memoria real! Incluso con este método:iPhone dev - ¿Por qué usa 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)); 
    } 
} 

Todavía es ~ 8.14 MB! Entonces parece que los instrumentos son correctos, pero ¿por qué una ventana de UI ocuparía tanta memoria?

+2

¿Quizás la arquitectura de Apple no es tan buena como la gente lo cree? :) – LiraNuna

Respuesta

2

Supongo que las bibliotecas de tiempo de ejecución de Objective-C ocupan todo ese espacio, en lugar de su UIWindow. Sin embargo, todas las aplicaciones utilizan una copia de estas bibliotecas, el iPhone OS puede ser lo suficientemente inteligente como para compartir esa memoria entre todas las aplicaciones que se ejecutan (aunque, por supuesto, solo las aplicaciones del sistema pueden ejecutarse en segundo plano).