2009-10-04 12 views
5

Anche quando uso il modello di applicazione basato su finestra, che non fa letteralmente nulla, gli strumenti (monitor dell'attività) indicano che il processo della mia applicazione utilizza 8,14 MB di memoria reale ! Anche con questo metodo:iPhone dev: perché utilizza 8 MB?

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)); 
    } 
} 

E 'ancora ~ 8,14 MB! Quindi sembra che gli strumenti siano corretti, ma perché un UIWindow occuperebbe così tanta memoria ??

+2

Forse l'architettura di Apple non è buona come la gente pensa che sia? :) – LiraNuna

risposta

2

La mia ipotesi sarebbe che sono le librerie di runtime Objective-C che occupano tutto lo spazio, piuttosto che lo stesso UIWindow. Tuttavia, tutte le applicazioni utilizzano una copia di queste librerie, l'iPhone OS potrebbe essere abbastanza intelligente da condividere quella memoria tra tutte le applicazioni in esecuzione (sebbene, naturalmente, solo le app di sistema possano funzionare in background).

Problemi correlati