美文网首页
iOS 运行时内存监控

iOS 运行时内存监控

作者: 择势量投 | 来源:发表于2019-01-23 15:20 被阅读19次

一、引入头文件

#import <sys/sysctl.h>
#import <mach/mach.h>
#import <malloc/malloc.h>

二、实现方法

获取当前设备可用内存(单位: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;
}

获取当前任务所占用的内存(单位: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;
}

//获取实例对象的成员变量所占用的内存大小(单位:KB)

+ (double)usedMemoryWithObject:(NSObject *)object
{
    return class_getInstanceSize([object class]) / 1024.0;
}

相关文章

  • iOS 运行时内存监控

    一、引入头文件 二、实现方法 获取当前设备可用内存(单位:MB) 获取当前任务所占用的内存(单位:MB) //获取...

  • iOS微信内存监控

    iOS微信内存监控

  • Matrix-iOS 卡顿、内存监控 (一)

    Matrix-iOS 卡顿监控Matrix-iOS 内存监控 一、卡顿检测 Matrix-iOS 在addMoni...

  • ios内存管理

    ios内存管理 一.前言 在ios中,系统对每个程序运行时内存的占有...

  • iOS 内存监控

    iOS进程发生OOM时,内存使用情况是怎么样的,如果想要获取确切的内存使用情况应该从何下手,带着这个问题,我开始了...

  • 可能是史上最全面的内存管理文章

    iOS内存管理 概述 什么是内存管理 应用程序内存管理是在程序运行时分配内存(比如创建一个对象,会增加内存占用)与...

  • 监控与分析中心

    监控与分析中心主要通过列表显示监控项的情况,并进行分析,主界面展示IP连接地址、主机名、内存、CPU核、运行时间、...

  • iOS 内存监控分析

    概述 最近有在看一些内存监控开源库的实现,所以有做引用和总结。这篇文章描述了关于内存监控知名开源库的一些实现思路,...

  • iOS 内存监控&内存分配

    https://mp.weixin.qq.com/s/CiqMlEIp1Ir2EJSDGgMooQ iOS微信内...

  • 内存泄漏.内存溢出.野指针

    内存溢出 每个设备都拥有一定内存,但是程序运行时,iOS给每个应⽤程序提供了⼀定的内存,⽤于程序的运⾏。程序中最占...

网友评论

      本文标题:iOS 运行时内存监控

      本文链接:https://www.haomeiwen.com/subject/nlajjqtx.html