Чтобы получить фактические байты памяти, которые использует ваше приложение, вы можете сделать что-то вроде примера ниже. Тем не менее, вам действительно следует ознакомиться с различными инструментами профилирования, а также с тем, чтобы они могли дать вам более полное представление об использовании в целом.
#import <mach/mach.h>
// ...
void report_memory(void) {
struct task_basic_info info;
mach_msg_type_number_t size = TASK_BASIC_INFO_COUNT;
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): %lu", info.resident_size);
NSLog(@"Memory in use (in MiB): %f", ((CGFloat)info.resident_size / 1048576));
} else {
NSLog(@"Error with task_info(): %s", mach_error_string(kerr));
}
}
В структуре info.virtual_size также есть поле, которое даст вам количество байтов доступной виртуальной памяти (или памяти, выделенной вашему приложению в качестве потенциальной виртуальной памяти в любом случае). Код, на который ссылается pgb, предоставит вам объем памяти, доступный для устройства, и тип памяти.