2014-10-13 8 views
5

So finden Sie Speicherverbrauch wie eine Aktivitätsmonitoranzeige in Osx 10.9 und höher. Ich habe folgenden Code verwendet, um Speicherauslastung abzurufen.Wie finde ich die Speichernutzung in Mac OSX?

aber es gibt einen Unterschied zwischen dem, was es im Aktivitätsmonitor zeigt und was ich durch diesen Code finde.

mach_port_t host_port; 
mach_msg_type_number_t host_size; 
vm_size_t pagesize; 
host_port = mach_host_self(); 
host_size = sizeof(vm_statistics64_data_t)/sizeof(integer_t); 
host_page_size(host_port, &pagesize); 
vm_statistics_data_t vm_stat; 
if (host_statistics(host_port, HOST_VM_INFO, (host_info_t)&vm_stat, &host_size) != KERN_SUCCESS) 
{ 
    NSLog(@"Failed to fetch vm statistics"); 
} 
float free_count = vm_stat.free_count * pagesize; 

float active_count=vm_stat.active_count *pagesize; 

float inactive_count=vm_stat.inactive_count * pagesize; 

float wire_used=vm_stat.wire_count *pagesize; 

float zero_fill_count=vm_stat.zero_fill_count * pagesize; 

float reactivations=vm_stat.reactivations *pagesize; 

float pageins=vm_stat.pageins *pagesize; 

float pageouts=vm_stat.pageouts *pagesize; 

float faults=vm_stat.faults *pagesize; 

float cow_faults=vm_stat.cow_faults * pagesize; 

float lookups=vm_stat.lookups *pagesize; 

float hits=vm_stat.hits * pagesize; 

float purgeable_count=vm_stat.purgeable_count * pagesize; 

float purges=vm_stat.purges *pagesize; 

float speculative_count=vm_stat.speculative_count *pagesize; 

frage ich mich auch, was ich als App-Speicher, Cache-Dateien, verkabelt Speicher und Druckspeicher in Betracht ziehen sollten.

Hier ist die Anzahl der Kabel, die ich benutze, mit diesem Code identisch mit der Anzeige in einem Aktivitätsmonitor.

Kann mir jemand hier helfen. Danke

+0

+1 Tks. Ehrfürchtige Frage :). –

Antwort

0

Sie finden App-Speicher mit dieser appMemory = vm_page_size * (vm_stat.internal_page_count - vm_stat.purgebable_count);

+0

Wie finde ich vm_stat.internal_page_count? – mac