简体   繁体   中英

How to get Memory usage information in ios programatically?

我需要获取内存使用信息,例如(可用RAM,可用内部存储器)。

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

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);
}

use this method in appdelegate and calls when you want to check...cheers

You can check in Xcode IDE after running the application.

By selecting the debug navigator you can able to see Memory Usage in the form of graph or percentage how much it is using.

Below code should help you to get what you are looking for.

- (NSNumber*) totalMemory
{
   //Return the current device total memory
    return [[UIDevice currentDevice] totalMemory];
}


- (NSNumber*) userMemory
{
   //Return the current device non-kernel memory
    return [[UIDevice currentDevice] userMemory];
}


- (NSNumber*) freeMemory
{
   //Return the current device free memory
    return [[UIDevice currentDevice] freeMemory];
}


- (NSNumber*) totalDiskSpace
{
   //Return the current device total disk space
    return [[UIDevice currentDevice] totalDiskSpace];
}


- (NSNumber*) freeDiskSpace
{
   //Return the current device free disk space
    return [[UIDevice currentDevice] freeDiskSpace];
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM