序言
Instuments是Xcode套件中没有被充分利用的工具,开发者可以利用Instuments来提升应用程序的稳定性和健壮性。
以Xcode10.1版本为例


-
Blank:
创建一个空的模板,可以从Library库中添加其他模板 -
Activity Monitor:
监控进程级别的CPU,内存,磁盘,网络使用情况,可以得到你的应用程序在手机运行时总共占用的内存大小 -
Allocations:
跟踪过程的匿名虚拟内存和堆的对象提供类名和可选保留/释放历史,可以检测每一个堆对象的分配内存情况 -
Cocoa Layout :
观察NSLayoutConstraint对象的改变,帮助我们判断什么时间什么地点的constraint是否合理.观察约束变化,找出布局代码的问题所在 -
Core Animation:
这个模块显示程序显卡性能以及CPU使用情况,查看界面流畅度 -
CoreData:
这个模块跟踪Core Data文件系统活动 -
Counters :
收集使用时间或基于事件的抽样方法的性能监控计数器(PMC)事件 -
Energy Log:
耗电量监控 -
File Activity:
检测文件创建,移动,变化,删除等 -
Leak:
一般的措施内存使用情况,检查泄漏的内存,并提供了所有活动的分配和泄漏模块的类对象分配统计信息以及内存地址历史记录 -
Metal System Trace:
Metal API是apple 2014年在ios平台上推出的高效底层的3D图形API,它通过减少驱动层的API调用CPU的消耗提高渲染效率 -
Network:
用链接工具分析你的程序如何使用TCP/IP和UDP/IP链接 -
SceneKit:
3D性能状况分析. -
System Trace:
系统跟踪,通过显示当前被调度线程提供综合的系统表现,显示从用户到系统的转换代码通过两个系统调用或内存操作. -
System Usage:
这个模板记录关于文件读写,sockets,I/O系统活动,输入输出. -
Time Profiler(时间探查):
执行对系统的CPU上运行的进程低负载时间为基础采样. -
Zombies:
测量一般的内存使用,专注于检测过度释放的野指针对象,也提供对象分配统计,以及主动分配的内存地址历史.
一 Activity Monitor 介绍
可以查看所有的进程,以及进程的内存、cpu使用百分比等数据等。


具体使用,小伙伴可以自己去尝试一下。
二 Allocations介绍
检测一个进程(选择自己的app)内存分配和使用情况
打开方式,选择 Allocations,然后打开即可。

注意项
1.选择是查看堆栈信息还是控制台输出还是运行信息

2.堆栈信息的呈现方式

3.生成快照

- 记录的Allocation类型

-
All Heap & Anonymous VM:
所有真实内存和虚拟内存,我通常选这个分析 -
All Heap Allocations:
所有真实内存 -
All VM Regions:
所有分配过的虚拟内存
开始分析类别数据
先随意操作APP,点击,跳转,拖拽等操作,截图如下

我们可以看到All Heap Allocations(真实内存)
只有7.93MB,而All Anonymous VM
(虚拟内存:为程序分配的虚拟内存,当程序有需要的时候,能够及时为程序提供足够的内存空间,而不会现用现创建)高达108MB,所以手机分配给我们的内存是116MB;我们现在不检测内存泄漏(是另外一个工具),所以我们尽量优化VM(因为不是app真实占用的内存,只是系统分配的),而VM主要由以下两部分组成。CG raster data
+ CoreAnimation
。
三 CoreAnimation介绍
模拟器 -> Debug

网友评论