iOS-Xcode中Developer Tool功能的总结

本文详细介绍了Xcode的Developer Tool中Instruments的各种功能,如Core Animation用于离屏渲染检测,Energy Log监测耗电量,Leaks检测内存泄漏,Network分析网络流量,以及Time Profiler分析CPU使用情况。此外,还提到了Simulator的使用和设置,Accessibility Inspector的辅助检查,FileMerge的文件比较,以及Application Loader的APP上传流程。这些工具对于iOS开发者的性能优化和调试工作至关重要。
摘要由CSDN通过智能技术生成

有开发几年的人也很少都用这些工具的,这里整理下Xcode菜单栏里面Open Developer Tool的一些功能。

 

 

一、Instruments工具

Instruments工具是iOS性能优化工具。对于程序员来说,程序代码性能是个老生常谈的话题,随着程序项目的不断增加功能和需求,不得不随时考虑到调试和优化代码,那么根据运用Xcode自带的监控调试工具就可以很好的解决这些问题,防范于未然,Instruments工具提供了很多功能,这里只介绍常用的部分,其他剩下的部分可以私下了解。

1.Core Animation:离屏渲染,图层混合等GPU耗时;

2.Energy Log:耗电检测工具;

3.Leaks:内存检测,内存泄漏检测工具;

4.Network:流量检测工具;

5.Time Profiler:CPU分析工具分析代码的执行时间。

使用Xcode > Open Developer Tool > Instruments 打开方式,还有一种是通过Xcode project打开instruments。这里举例的是打开Time Profiler的步骤。

(一)Core Animation动画渲染的使用:

Core Animation需要注意的一点是必须是在真机调试的情况下使用,用于调试离屏渲染、绘图、动画等操作。调试的时候需要注意以下几个选项的勾选:

"Color Blended Layers":图层混合 ,显示出被混合的图层Blended Layer(是用红色标注),Blended Layer是因为这些Layer是透明的,系统在渲染这些view时需要将该view和下层view混合后才能计算出该像素点的实际颜色,所以红色越少越好。

“Color Hits Green and Misses Red":光栅化,图层缓存。很多视图Layer由于Shadow、Mask、Gradient等原因渲染很高,因此UIKit提供API用于缓存这些Layer:[layer setShouldRasterize:YES],系统会将这些Layer缓存成Bitmap位图供渲染使用,如果失效时便丢弃这些Bitmap重新生成。所以红色越少越好,绿色越多越好。

"Color Copied images":图片颜色格式,标注应用在绘制的时候被Core Animation复制的图片。

"Color Non-Standard Surface Formats":不标准的表面颜色格式。

"Color Immediately":颜色刷新频率,Instruments在执行color-flush操作的时候,取消10毫秒的延时。

"Color Misaligned Images":图片大小,图片缩放MisalignedImage表示要绘制的点无法直接映射到频幕上的像素点,此时系统需要对相邻的像素点做anti-aliasing反锯齿计算,增加了图形负担,通常这种问题出在对某些View的Frame重新计算和设置时产生的。

"Color Offscreen-Rendered Yellow":离屏渲染,Offscreen-Rendering离屏渲染意思是iOS要显示一个视图时,需要先在后台用CPU计算出视图的Bitmap,再交给GPU做Onscreen-Rendering显示在屏幕上,因为显示一个视图需要两次计算,所以这种Offscreen-Rendering会导致app的图形性能下降。所以黄色越少越好。

"Color Compositing Fast-Path Blue":快速路径,标记由硬件绘制的路径。

"Flash Updated Regions":重绘的区域,重绘就是指使用Core Graphics绘制,绘制会损耗一定的性能,因此重绘区域应该越小越好。

(二)Energy Log耗电量检测的使用:

Energy Log耗电量检测,必须要真机调试才能使用。手机运行程序之后,双击打开Energy Log,然后直接点击左上角红色圆点按钮开启检测,然后在左侧菜单栏里面可以看到CPU活动的比例、网络活动的比例、亮度状态、手机睡眠状态、蓝牙连接状态、手机WiFi连接状态、GPS状态等这些能够消耗手机电量的组成部分,可以根据对应模块的数据来检测耗电量的情况,如图所示:

(三)Leaks内存调试的使用:

Leaks的一个进程占用的内存空间,包括5种数据区:
(1)BSS段:一般存放未初始化的全局变量;
(2)数据段:一般存放已初始化的全局变量;
(3)代码段:存放的是程序执行代码;
(4)堆:存放进程运行中被动态分配的内存段,如OC对象;
(5)栈:由编译器自动分配释放,存放函数参数,局部变量;

Leaks是iOS程序中用来检测内存泄漏的工具,根据Leaks可以帮助我们查找项目中的内存泄漏,防止程序内存耗费过大而被挂起。首先双击打开Leaks,点击左上角红色圆点按钮开始运行,并且在Details中选中CallTree选项,具体效果如下图所示:

接着程序运行,我们可以根据上边的进度条来查看内存变化的区域,Leaks工具会按照时间把所耗内存的大小,都以填曲线充图的形式展现,移动鼠标到曲线填充图的位置时,会直接显示出那一时刻所占用的内存大小。如果内存曲线填充图下方显示出红色叉号,则代表该处存在内存泄漏,可通过鼠标在填充图中圈画出该区域,这时下面的Call Tree就会打印出对应的函数堆栈调用以及所占内存大小的详细信息,双击就可进入到对应的代码区域来查看,如下图所示:

鼠标双击函数名称,可以进入到代码对应的具体位置,查看具体情况:

爆红的区域就是测试出来的异常情况的位置。

(四)Network网络检测的使用

Network网络流量检测工具,双击打开Network,直接单击左上角击红色圆点按钮运行程序,在上面可以看到手机网络的输入输出大小的多少,用鼠标拦截住一块区域就可以查看这个区间是App发生的网络消耗还是其他进程发生的,还可查看网络请求的本地地址和服务地址、输入和输出的大小等信息,具体情况如下图所示:

上图红框中画出的一片消耗网络资源的地方,然后在Details中选择三个选项中的不同选项,第一个:Processes,表示查看网络进程,也就是APP和其他程序使用的流量的总大小;第二个:Connections,表示所有的访问网络请求的端口、输入输出的大小、本地地址、数据包的大小、往返的时间等信息;第三个:Interfaces,在使用者的角度查看当前手机的整体网络的使用情况,这里不区分线程,只区分网络使用类型WiFi或者流量。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值