Write out method to get ios memory usage

#import "ViewController.h"

// Get the header file of the available memory of the current device and the memory occupied

#import <sys/sysctl.h>

#import <mach/mach.h>


@interface ViewController ()


@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    double f1 = [self availableMemory];

    NSLog(@"%.f",f1);

    

    double f2 = [self usedMemory];

    NSLog(@"%.f",f2);


}



// Get the available memory of the current device ( unit: MB)

- (double)availableMemory

{

    vm_statistics_data_t vmStats;

    mach_msg_type_number_t infoCount = HOST_VM_INFO_COUNT;

    kern_return_t kernReturn = host_statistics(mach_host_self(), HOST_VM_INFO, (host_info_t)&vmStats, &infoCount);

    if (kernReturn != KERN_SUCCESS) {

        return NSNotFound;

    }

    return ((vm_page_size *vmStats.free_count)/1024.0)/1024.0;

}


// Get the memory occupied by the current task (unit: MB )

- (double)usedMemory

{

    task_basic_info_data_t taskInfo;

    

    mach_msg_type_number_t infoCount = TASK_BASIC_INFO_COUNT;

    

    kern_return_t kernReturn = task_info(mach_task_self(),TASK_BASIC_INFO,(task_info_t)&taskInfo, &infoCount);

    

    if(kernReturn!=KERN_SUCCESS) {

   

        return NSNotFound;

    }

    

    return taskInfo.resident_size / 1024.0 / 1024.0;

}


@end

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325770785&siteId=291194637