iOS开发之性能调试Instruments(一)
2017-01-04 15:05
253 查看
iOS性能调试有很多方法,这里讲一下Xcode内置工具Instruments。
Instruments是一个官方提供的强大的性能调试工具集。
instruments.png
其中常用的有以下几种工具
Allocations,Leaks,Zombies,Core Animation,Automation,Time Profiler,Cocoa Layout,Energy Diagnostics,Network
每次操作后,点击mark generations button,会设置一个flag,然后查看每个迭代的详细数据
2.内存泄漏Leaks
内存泄漏使用Leaks检测,如果对象发生内存泄漏,detail panel 中会看到对象的retain release历史记录,如果非对象发生内存泄漏,就会看到malloc和free的调用历史
3.野指针Zombies
Zombie问题,引用retaincount为0的对象,使用Debug模式,将环境变量NSZombieEnabled设为true
2.OpenGL activity
3.GPU Driver
2.电量:Energry 跟踪电量、CPU、网络、显示亮度、睡眠/唤醒、蓝牙、wifi、GPS
可以全天开启Energry Diagnostics Log模式,在开发手机设备中,(重启或关机会丢失该数据)。数据收集结束后,将log数据传到PC上
3.线程使用Multicore Trace Template,分析多核性能,线程状态、调度队列、块使用情况。Multicore Trace Template包含Thread states和dispatch Instruments。
4.Timer Profiler Trace Template检测内核使用情况
自动化界面测试可以让你:
1 省去关键人员和释放其他工作资源
2 执行更多综合测试
3 开发可重复的回归测试
4 减少程序错误
5 提高开发周期,产品更新
Instruments是一个官方提供的强大的性能调试工具集。
instruments.png
1.Blank(空模板):创建一个空的模板,可以从Library库中添加其他模板; 2.Activity Monitor(活动监视器):监控进程的CPU,内存,磁盘,网络使用情况 是程序在手机运行真正占用的内存大小 3.Allocations(内存分配):跟踪过程的匿名虚拟内存和堆的对象提供类名和可选保留/释放历史; 4.Automation(自动化):这个模板执行它模拟用户界面交互为IOS机应用从instrument启动的脚本;可以将一些特定流程写成脚本来执行 ** 5.Cocoa Layout 观察NSLayoutConstraint对象的改变,帮助我们判断什么时间什么地点的constraint是否合理 6.Core Animation(图形性能)这个模块显示程序显卡性能以及CPU使用情况 7.CoreData 这个模块跟踪Core Data文件系统活动 8.Counters 收集使用时间或基于事件的抽样方法的性能监控计数器(PMC)事件 ? 9.Energy Diagnostics 耗电量监控 10.File Activity 检测文件创建,移动,变化,删除等 11.GPU Driver 测量GPU驱动统计和CPU使用情况 12.Leaks(泄漏):一般的措施内存使用情况,检查泄漏的内存,并提供了所有活动的分配和泄漏模块的类对象分配统计信息以及内存地址历史记录; 13.Metal System Trace (Metal API是apple 2014年在ios平台上推出的高效底层的3D图形API,它通过减少驱动层的API调用CPU的消耗提高渲染效率。http://blog.csdn.net/tomicyo/article/details/41792009)? 14.Network 用链接工具分析你的程序如何使用TCP/IP和UDP/IP链接 15.OpenGL ES Analysis 这个模块测量分析OpenGL ES活动正确性检测以及表现问题,提供解决建议 16.System Trace 系统跟踪,通过显示当前被调度线程提供综合的系统表现,显示从用户到系统的转换代码通过两个系统调用或内存操作 17.System Usage 这个模板记录关于文件读写,sockets,I/O系统活动, 输入输出 18.Time Profiler(时间探查):执行对系统的CPU上运行的进程低负载时间为基础采样。 19.Zombies 测量一般的内存使用,专注于检测过度释放的野指针对象,也提供对象分配统计,以及主动分配的内存地址历史
其中常用的有以下几种工具
Allocations,Leaks,Zombies,Core Animation,Automation,Time Profiler,Cocoa Layout,Energy Diagnostics,Network
按功能模块分类
一、定位内存问题
1.内存不合理引用,检测重复操作内存是否持续增长 Allocations每次操作后,点击mark generations button,会设置一个flag,然后查看每个迭代的详细数据
2.内存泄漏Leaks
内存泄漏使用Leaks检测,如果对象发生内存泄漏,detail panel 中会看到对象的retain release历史记录,如果非对象发生内存泄漏,就会看到malloc和free的调用历史
3.野指针Zombies
Zombie问题,引用retaincount为0的对象,使用Debug模式,将环境变量NSZombieEnabled设为true
二、检测I/O活动
检测iOS app如何使用TCP/IP和UDP/IP。与connections Instruments一起使用,检测app发送和接收的包数目三、图像性能检测
1.core animation graphics 用来检测帧频率2.OpenGL activity
3.GPU Driver
四、CPU使用
1.Performance Monitor Counters2.电量:Energry 跟踪电量、CPU、网络、显示亮度、睡眠/唤醒、蓝牙、wifi、GPS
可以全天开启Energry Diagnostics Log模式,在开发手机设备中,(重启或关机会丢失该数据)。数据收集结束后,将log数据传到PC上
3.线程使用Multicore Trace Template,分析多核性能,线程状态、调度队列、块使用情况。Multicore Trace Template包含Thread states和dispatch Instruments。
4.Timer Profiler Trace Template检测内核使用情况
五、自动化测试
UI automation Automation instrument 工具允许你让 iOS 应用的用户界面测试自动化。自动化界面测试可以让你:
1 省去关键人员和释放其他工作资源
2 执行更多综合测试
3 开发可重复的回归测试
4 减少程序错误
5 提高开发周期,产品更新
相关文章推荐
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 云巴 2016 年更新合集——SDK 篇
- 第三方推送已死
- 峰回路转,Firefox 浏览器即将重返 iOS 平台
- 不可修补的 iOS 漏洞可能导致 iPhone 4s 到 iPhone X 永久越狱
- iOS 12.4 系统遭黑客破解,漏洞危及数百万用户
- 每日安全资讯:NSO,一家专业入侵 iPhone 的神秘公司
- [转][源代码]Comex公布JailbreakMe 3.0源代码
- 讲解iOS开发中基本的定位功能实现
- iOS中定位当前位置坐标及转换为火星坐标的方法
- js判断客户端是iOS还是Android等移动终端的方法
- iOS应用开发中AFNetworking库的常用HTTP操作方法小结
- iOS应用中UISearchDisplayController搜索效果的用法
- iOS App开发中的UISegmentedControl分段组件用法总结
- IOS开发环境windows化攻略
- iOS应用中UITableView左滑自定义选项及批量删除的实现
- iOS中UIAlertView警告框组件的使用教程
- 浅析iOS应用开发中线程间的通信与线程安全问题
- iOS中的UIKeyboard键盘视图使用方法小结