使用Instruments监测内存使用 / 分配情况

打开Allocations

1.首先,将程序安装到模拟机或真机上;

2.点击Product,再点击Profile,打开Instruments

3.选择Allocations

4.先选择程序,再开始录制(开始录制会自动开启程序)

使用Instruments监测内存使用 / 分配情况_第1张图片


录制过程:

使用Instruments监测内存使用 / 分配情况_第2张图片

All Heap & Anonymous VM: 实际用到的内存和操作系统分配的匿名虚拟内存。

Anonymous VM(匿名虚拟内存)是系统为程序预留的、可能会立即被重复使用的一部分可用内存。

如果不想看到匿名虚拟内存,可以在Display Settings设置:

使用Instruments监测内存使用 / 分配情况_第3张图片


监控场景:UIImage加载图片

监控发现:

1.使用imageNamed方法加载图片:当对象(UIImageView)销毁,图片对象不会随着一起销毁。

缺:加载的图片占据的内存较大

优:相同的的图片只会加载一份到内存中,如果多个对象同时使用,使用同一个图片对象即可。

2.使用imageWithContentsOfFile方法加载图片:当对象(UIImageView)销毁,图片对象随着一起销毁。

优:加载的图片占据的内存较小

缺:相同的图片会多次加载到内存中,如果多个对象同时使用,使用的是不同的图片对象。

总结两个方法的适用场景:

imageNamed——图片多个界面要使用,图片较小、使用频率高(图标、小的背景图)

imageWithContentsOfFile——只在一个地方使用,图片较大、使用频率不高(版本新特性、相册)

【注意】

1.如果修改了程序代码,想要重新监控程序的内存分配,首先停止录制;

2.然后Xcode重新运行一次(重新安装在模拟机和真机上),再关闭,再开始录制;

3.如果不重新安装再点录制,监控的会是之前的程序。

你可能感兴趣的:(使用Instruments监测内存使用 / 分配情况)