Objective-C 检测运行时对象的内存大小

malloc_size

返回指针所指向对象字节数。但是这种方法不会考虑到对象成员变量指针所指向对象所占用的内存。跟instrument 的 Allocation计算出来的值相同。

官方解释:

 The malloc_size() function returns the size of the memory block that backs the allocation pointed to by ptr.  The memory block size is always at least as large as the allocation it backs, and may be larger.

单个对象占用的内存大小
ARC 模式下:

#import <malloc/malloc.h>

NSLog(@"Size of %@: %zd", NSStringFromClass([myObject class]), malloc_size((__bridge const void *) myObject));

__bridge 用来关键字进行对象转换。
没有用ARC :

#import <malloc/malloc.h>
NSLog(@"size of myObject: %zd", malloc_size(myObject));

集合中的所有对象占用的内存大小
比如数组:

NSArray *myArray = [myDictionary allValues];
id obj = nil;
int totalSize = 0;
for(obj in myArray)
{
    totalSize += malloc_size(obj);
}

size of object

其他方法
#import <malloc/malloc.h>
#import <objc/runtime.h>

NSLog(@"Object Size: %zd", malloc_good_size(class_getInstanceSize([yourObject class])));


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值