iosiOS DeveloperZJ_iOS面试

Xcode 8 最新版Instruments的使用教程

2017-07-18  本文已影响694人  binge

Instruments的介绍

Instruments 一个很灵活的、强大的工具,是性能分析、动态跟踪 和分析OS X以及iOS代码的测试工具,用它可以极为方便收集关于一个或多个系统进程的性能和行为的数据,并能及时随着时间跟踪而产生的数据,并检查所收集的数据,还可以广泛收集不同类型的数据.也可以追踪程序运行的过程,这样instrument就可以帮助我们了解用户的应用程序和操作系统的行为。

常用模块

Leaks :找到引发内存泄漏的起点

启动Instruments,找到Leaks图标。如图:

leaks.png

点击进入Leaks的主面板。如图:

leaks1.png

1:录制按钮

2:暂停按钮

3:内存分配

4:内存泄漏

5:详细信息的查看方式

点击红色按钮开始录制。如图:

leaks3.png

开始录制后可以发发现leaks一栏有红色的差出现,代表出现了内存泄漏。

点击箭头1所指的地方,选取Call Tree ,接下来箭头2所指的地方会出现四个选项。
Snapshots选项是设置时间间隔的,推荐设置成10.

Call Tree选项点击后会出现四个菜单,推荐勾选Invert Call Tree(方便快速定位调用栈)和Hide Systerm Libraries(过滤掉一些无用的系统信息)。

双击中间显示的调用函数行,可以定位到自己所写得代码。

在运行的过程中可以发现泄漏就暂停,然后拖动时间轴到泄漏的附近,就可以仅查看该泄漏的函数调用栈。

Time Profiler : 分析代码的执行时间,找出导致程序变慢的原因

time.png time1.png time2.png dsym.png time3.png

Core Animation :帧率检测

Core Animation的基本使用方法和以上连个几乎一致,如图:

animation.png

Frame Per second一栏就是当前页面的帧率,到达60说明很流畅。检测帧率的过程中正确的姿势是手指不要离开屏幕。

对于帧率检测,推荐一款小工具——KMCGeigerCounter,该工具可以在页面顶部实时显示当前页面滑动时的帧率(用的时候需要修改一处window以前的错误);

Allocations

进入Allocations后主界面如图:

1440398-d68d941aa032c25b.png

1.堆区内存和虚拟内存占用图

2.堆区内存占用图

3.虚拟内存跟踪图

4.选择使用不同的形式展示内存占用情况

5.勾选让上面曲线图展示对应内存占用情况

6.持久分配的内存所占字节数(未释放)即该类对象在内存中占得总内存

7.持久创建的对象个数(未释放)即该对象存在于内存中的个数

8.临时分配的对象个数(未释放)即存在过已经被回收的对象的个数

9.分配的所有内存所占字节数(未释放)

10.创建的对象总数(未释放)

11.设置面板,不同的设置使左边有不同展示效果

Cocoa Layout

网上关于Cocoa Laout的文章介绍比较少,仅仅找到老外老早之前写的一篇文章,可以参考着看下。
https://www.bignerdranch.com/blog/inpecting-auto-layout-with-the-cocoa-layout-instrument/

注意只能在模拟器上测试,不支持真机。

Xcode 8 Memory Graph

Xcode8的调试技能又增加了一个黑科技:Memory Graph。简单的说就是可以在运行时将内存中的对象生成一张图.
运行项目(demo地址),点击如图所指:

memory2.png

接下来会进入内存图:

memory3.png

点击左侧紫色的感叹号,就会显示具体的内存引用图:

memory.png

可以明显看到有环产生,造成了内存泄漏,根据自己代码情况进行修改。

上一篇下一篇

猜你喜欢

热点阅读