2010-01-28 2 views
0

iPhone에서 특정 프로그램의 메모리 사용량을 얻을 수 있습니까? 예를 들어, 계측기 툴을 사용하지 않고 프로그램이 얼마나 많은 메모리를 사용하는지 알고 싶습니다.iPhone의 특정 프로그램 메모리

미리 감사드립니다. 알렉스

답변

1

메모리 모니터 장비를 사용하여 특정 응용 프로그램의 메모리 사용을 추적하는 것이 좋습니다.

다음과 같은 기능을 통해 시스템 전체 메모리 사용 통계를 얻을 수 있습니다 :

#import <mach/mach.h> 
#import <mach/mach_host.h> 

static void print_free_memory() { 
    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_statistics_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"); 

    /* Stats in bytes */ 
    natural_t mem_used = (vm_stat.active_count + 
          vm_stat.inactive_count + 
          vm_stat.wire_count) * pagesize; 
    natural_t mem_free = vm_stat.free_count * pagesize; 
    natural_t mem_total = mem_used + mem_free; 
    NSLog(@"used: %u free: %u total: %u", mem_used, mem_free, mem_total); 
} 

이 코드는 랜든 풀러의 post on the topic에서 복사됩니다. Noel Llopis도 응용 프로그램 내에서 메모리 사용을 조사하는 데 a nice writeup을 사용합니다. 안타깝게도 응용 프로그램 자체에서 응용 프로그램의 메모리 사용량을 쉽게 알 수있는 것처럼 보이지는 않습니다.

0

이것은 까다 롭습니다. 인스 트루먼 트가 정말로 여기에 갈 길입니다. 또는 iPhone을 탈옥시킨 다음 Cydia에서 top 명령을 설치하십시오.

또한 sysctl으로 얻을 수있는 몇 가지 값이 있지만 그 것은 응용 프로그램이 아닌 전체 메모리 사용량이라고 생각합니다.

관련 문제