iPhone에서 특정 프로그램의 메모리 사용량을 얻을 수 있습니까? 예를 들어, 계측기 툴을 사용하지 않고 프로그램이 얼마나 많은 메모리를 사용하는지 알고 싶습니다.iPhone의 특정 프로그램 메모리
미리 감사드립니다. 알렉스
iPhone에서 특정 프로그램의 메모리 사용량을 얻을 수 있습니까? 예를 들어, 계측기 툴을 사용하지 않고 프로그램이 얼마나 많은 메모리를 사용하는지 알고 싶습니다.iPhone의 특정 프로그램 메모리
미리 감사드립니다. 알렉스
메모리 모니터 장비를 사용하여 특정 응용 프로그램의 메모리 사용을 추적하는 것이 좋습니다.
다음과 같은 기능을 통해 시스템 전체 메모리 사용 통계를 얻을 수 있습니다 :
#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을 사용합니다. 안타깝게도 응용 프로그램 자체에서 응용 프로그램의 메모리 사용량을 쉽게 알 수있는 것처럼 보이지는 않습니다.
이것은 까다 롭습니다. 인스 트루먼 트가 정말로 여기에 갈 길입니다. 또는 iPhone을 탈옥시킨 다음 Cydia에서 top
명령을 설치하십시오.
또한 sysctl
으로 얻을 수있는 몇 가지 값이 있지만 그 것은 응용 프로그램이 아닌 전체 메모리 사용량이라고 생각합니다.