https://blog.csdn.net/tencent_bugly/article/details/78247589
https://www.jianshu.com/p/648b78dda48e
Instrument
Xcode自带的Instrument工具是一个以独立APP形式存在的工具集,包含了很多强大的检测功能:其中包括在真机和模拟器上进行性能测试,对APP进行性能分析,检查一个或多个应用或进程的行为
。检查设备相关的功能,比如:Wi-Fi、蓝牙等。 查找 App 中的内存问题,比如内存泄露(Leaked memory)、废弃内存(Abandoned memory)、僵尸(zombies)等。

让我们来大概看一下Instrument都可以做什么
1.Blank(空模板):创建一个空的模板,可以从Library库中添加其他模板
2.Activity Monitor(活动监视器):监控进程级别的CPU,内存,磁盘,网络使用情况,可以得到你的应用程序在手机运行时总共占用的内存大小
3.Allocations(内存分配):跟踪过程的匿名虚拟内存和堆的对象提供类名和可选保留/释放历史,可以检测每一个堆对象的分配内存情况
4.Cocoa Layout :观察NSLayoutConstraint对象的改变,帮助我们判断什么时间什么地点的constraint是否合理。观察约束变化,找出布局代码的问题所在
5.Core Animation(图形性能):这个模块显示程序显卡性能以及CPU使用情况
6.CoreData:这个模块跟踪Core Data文件系统活动
7.Counters :收集使用时间或基于事件的抽样方法的性能监控计数器(PMC)事件
8.Energy Log: 耗电量监控
9.File Activity :检测文件创建,移动,变化,删除等
10.Leaks(泄漏):一般的措施内存使用情况,检查泄漏的内存,并提供了所有活动的分配和泄漏模块的类对象分配统计信息以及内存地址历史记录;
**11.Metal System Trace:**Metal API是apple 2014年在ios平台上推出的高效底层的3D图形API,它通过减少驱动层的API调用CPU的消耗提高渲染效率。
12.Network: 用链接工具分析你的程序如何使用TCP/IP和UDP/IP链接
13.System Trace:系统跟踪,通过显示当前被调度线程提供综合的系统表现,显示从用户到系统的转换代码通过两个系统调用或内存操作
14.System Usage: 这个模板记录关于文件读写,sockets,I/O系统活动, 输入输出
15.Time Profiler(时间探查):执行对系统的CPU上运行的进程低负载时间为基础采样。
16.Zombies: 测量一般的内存使用,专注于检测过度释放的【野指针】对象,也提供对象分配统计,以及主动分配的内存地址历史
下面这张图把上面的工具按照不同类别的诉求分了类,但是这张图比较早,有的工具被合并入上面的工具之中了。
Instrument还可以配合UI Test,通过脚本记录一个用户行为序列,这就为可重复多次的自动化测试提供了基础。这个真的很神奇,因为这个脚本不是需要程序员来写的,而是Xcode自动生成的!具体做法是这样的。在工程项目中File–>New–>Target,选择iOS UI Testing Bundle
打开生成的UITest文件,把光标放在-(void)testExample函数里,或者自己新建一个函数也可以,点击下图所示的红点,应用程序就会以profile的模式运行,这个时候你的一系列操作都会有相应的代码自动生成到这个函数中,操作结束之后点击结束的按钮。生成的代码有可能会有报错的地方,比如点击了中文的按钮,代码中是显示的是unicode转义序列,需要手工改成中文才行。
代码不报错了以后,先编译运行一遍,再通过Xcode的Product–>perform action–>profile testExample(如果是自己新建的函数就选择对应的函数名),这时程序就会按照你刚刚的操作路径进行一模一样的操作了,包括你在某个页面停留了多久,点击的顺序是如何的。我们在测试性能的时候,一般需要通过对比来说明优化的结果,然而对比就需要控制变量,两次一模一样的操作就很重要。需要说明的一点是,要保证很多其他因素都是相同的,比如两次对比的应用中,一个是登录态的,另一个没有登录,操作路径记录的包括了一些登录态特有的操作,那么当这个操作路径运行在没有登录的版本上就会crash。
Instrument主要用于在调试过程中随时发现问题,及时优化,但是这个工具只能供有应用源码的程序员使用,无法测量用户真实使用场景下的性能。
---------------------
https://www.jianshu.com/p/4b882f1bd1a9
浙公网安备 33010602011771号