版本记录
版本号 | 时间 |
---|---|
V1.0 | 2018.06.17 |
前言
我们在做app的时候,不是做完功能就结束了,很多时候是需要进行检查和优化的,而xcode自带了一个很好的检查工具,可以检测内存泄漏。还可以查看哪一个方法比较耗时。还可以检测离屏渲染等等,随后的几篇我们就说一下这个工具的使用。感兴趣的可以看这几篇。
1.INSTRUMENTS调试工具的使用(一)
2.INSTRUMENTS调试工具的使用(二)
3.INSTRUMENTS调试工具的使用(三)
4.INSTRUMENTS调试工具的使用(四)
5.INSTRUMENTS调试工具的使用(五)
6.INSTRUMENTS调试工具的使用(六)
7.INSTRUMENTS调试工具的使用(七)
8.INSTRUMENTS调试工具的使用(八)
9.INSTRUMENTS调试工具的使用(九)
10. INSTRUMENTS调试工具的使用(十)
11. INSTRUMENTS调试工具的使用(十一) —— 简介(一)
12. INSTRUMENTS调试工具的使用(十二) —— 通常任务之启动Instruments(一)
13. INSTRUMENTS调试工具的使用(十三) —— 通常任务之简单了解Instruments(二)
14. INSTRUMENTS调试工具的使用(十四) —— 通常任务之创建、保存和打开跟踪文档(三)
15. INSTRUMENTS调试工具的使用(十五) —— 通常任务之指定目标应用和设备(四)
16. INSTRUMENTS调试工具的使用(十六) —— 通常任务之访问和使用个别仪器(五)
17. INSTRUMENTS调试工具的使用(十七) —— 通常任务之记录、暂停和停止跟踪(六)
18. INSTRUMENTS调试工具的使用(十八) —— 导航收集的数据之关于数据分析(一)
19. INSTRUMENTS调试工具的使用(十九) —— 导航收集的数据之导航时间轴窗格(二)
20. INSTRUMENTS调试工具的使用(二十) —— 导航收集的数据之导航详细面板(三)
21. INSTRUMENTS调试工具的使用(二十一) —— 导航收集的数据之将数据映射到源代码(四)
22. INSTRUMENTS调试工具的使用(二十二) —— 导航收集的数据之查看您应用的源代码(五)
23. INSTRUMENTS调试工具的使用(二十三) —— 分析你App的性能之测量CPU使用情况(一)
24. INSTRUMENTS调试工具的使用(二十四) —— 分析你App的性能之测量图形性能(二)
25. INSTRUMENTS调试工具的使用(二十五) —— 分析你App的性能之监视网络和文件I / O(三)
26. INSTRUMENTS调试工具的使用(二十六) —— 分析你App的内存使用之关于内存分析(一)
27. INSTRUMENTS调试工具的使用(二十七) —— 分析你App的内存使用之检测内存使用(二)
28. INSTRUMENTS调试工具的使用(二十八) —— 分析你App的内存使用之找到废弃的内存(三)
29. INSTRUMENTS调试工具的使用(二十九) —— 分析你App的内存使用之找到内存泄露(四)
30. INSTRUMENTS调试工具的使用(三十) —— 分析你App的内存使用之找到僵尸对象(五)
31. INSTRUMENTS调试工具的使用(三十一) —— 分析你App的能源之测量能源影响(一)
32. INSTRUMENTS调试工具的使用(三十二) —— 高级任务之导出和导入跟踪数据(一)
33. INSTRUMENTS调试工具的使用(三十三) —— 高级任务之创建自定义Instruments(二)
34. INSTRUMENTS调试工具的使用(三十四) —— 分析模板和工具之分析模板(一)
35. INSTRUMENTS调试工具的使用(三十五) —— 分析模板和工具之Activity Monitor工具(二)
Overview
Instrument Description |
Supported Platforms |
Related Profiling Templates |
---|---|---|
Allocations 工具捕获有关应用程序内存分配的信息。 它仅记录来自单个进程的信息。 |
iOS、OSX | Allocations Profiling Template、Leaks Profiling Template、Zombies Profiling Template |
Timeline Pane - 时间线面板
时间轴窗格显示基于仪器配置的信息。
Record Settings - 记录设置
单击检查器窗格中的记录设置按钮以自定义以下记录选项。
1. Launch Configuration for All Allocations - 启动所有Allocations的配置
以下Launch Configuration for All Allocations
记录设置都可用。
Setting | Description |
---|---|
停止时丢弃未记录的数据 | 一旦停止点击,放弃所有收集但尚未由Allocations工具处理的数据。 自动为Allocations ,Leaks 和Zombies 分析模板选择 |
放弃释放内存的事件 | 放弃已释放内存的任何事件。 |
只跟踪VM分配 | 仅跟踪在VM中收集的VM allocations 。 |
2. Launch Configuration for Heap Allocations - 启动Heap Allocations配置
以下用于堆分配的启动配置记录设置可用。
Setting | Description |
---|---|
记录参考计数 | 跟踪每个对象的引用计数。 自动为Leaks and Zombies 分析模板选择。 |
识别C++对象 | 识别任何找到的C++对象 |
启用NSZombie 检查 |
选择在检测到僵尸时显示消息。 仅自动为僵尸分析模板选择。 |
3. Recorded Types - 记录类型
启用要记录的对象类型。 您可以通过单击表格下方的加号(+)和减号( - )来创建和删除新规则。 初始选项及其配置包括以下内容。
Setting | Description |
---|---|
* | 记录录制所有类型:记录所有类型对象 |
NS | 配置忽略NS前缀的类型:不记录NS对象的信息 |
CF | 配置忽略CF前缀的类型:不记录CF对象的信息 |
Malloc | 配置忽略Malloc前缀的类型:不记录Mallo事件的信息 |
Display Settings - 显示设置
单击检查器窗格中的显示设置按钮以自定义以下显示设置。
1. Track Display Settings - 跟踪显示设置
这些设置控制信息在时间线窗格中的显示方式。
Setting | Description | Options |
---|---|---|
Style | 信息是如何展示的 | 1)当前字节数:当前分配给进程的字节数。2)Allocation 密度:每毫秒的分配数量。3)Active Allocation Distribution :当前分配的内存量。 |
2. Generation Analysis - 代分析
允许你在详细窗格中标记generations
。
3. Allocation Lifespan - Allocation生命周期
以下allocation寿命显示将根据其生命周期在详细信息窗格中筛选分配。
Setting | Description |
---|---|
All Allocations |
显示在选定时间范围内创建的所有allocations。 |
Created & Persistent |
显示在选定时间范围内创建的allocations ,并且在分配结束时仍然存在。 |
Created & Destroyed |
显示在选定时间范围内创建和销毁的分配。 |
4. Allocation Type - Allocation类型
以下分配类型显示设置根据其类型过滤详细信息窗格中的分配。
Setting | Description |
---|---|
All Heap & Anonymous VM |
显示所有malloc堆分配和感兴趣的虚拟机区域,如图形和Core Data 相关。 隐藏映射文件,dylib和一些大的保留虚拟机区域。 |
All Heap Allocations |
显示所有malloc堆分配但不包含VM区域。 |
All VM Regions |
显示所有VM区域,包括映射文件,dylib和包含malloc堆的VM区域 |
5. Call Tree - 调用树
下面的调用树在详细窗格中展示设置过滤调用树。
Setting | Description | |
---|---|---|
Separate by Category |
Off by default |
|
Separate by Thread |
Off by default |
|
Invert Call Tree |
`Off by default | ` |
Hide System Libraries |
Off by default |
|
Flatten Recursion |
Off by default |
6. Call Tree Constraint - 调用树限制
根据以下设置,以下选项可过滤调用树以显示属于特定阈值的调用。
Setting | State |
---|---|
Count |
Off by default |
Bytes |
Off by default |
7. Data Mining - 数据挖掘
允许您通过收集的数据筛选特定的符号和库。
Detail Pane Columns - 详细信息窗格列
1. Statistics Detail Type - 统计明细类型
详细信息窗格中提供以下统计信息列。
列名称 | 定义 |
---|---|
Graph |
在跟踪窗格中选择展示category |
Category |
通常一个Core Foundation对象,一个Objective-C对象,或者一个原始的内存块。 |
Bytes |
在给定的时间范围内,总分配的字节数的改变 |
Count |
在给定的时间范围内,总分配数的改变 |
Persistent Bytes |
在给定的时间范围内,已分配但是没有释放的字节数 |
# Persistent |
在给定的时间范围内,已分配但是没有释放的字节数 |
Transient Bytes |
在选定时间区间,创建和销毁字节数 |
# Transient |
在选定时间区间,创建和销毁分配数 |
Total Bytes |
在选定时间区间,存在的总的字节数 |
# Total |
在选定时间区间,存在的总的分配数 |
# Events |
在选定时间区间,各种类型事件的总数 |
Transient/Total Bytes |
一种直方图,表示与字节总数相关的暂态字节数。 |
2. Call Tree Detail Type - 调用树详细类型
下面的调用树列在详细窗格中显示。
Column name | Definition |
---|---|
Bytes Used |
由相应符号使用的字节数 |
Count |
符号使用的次数 |
Self Bytes |
调用自己使用的字节数 |
Self % |
调用自己使用字节数的百分比 |
Parent % |
调用父使用字节数的百分比 |
Source Path |
产生调用的源文件路径 |
Category |
表示调用类别的图标 |
Library |
产生调用的库名称 |
Symbol Name |
被调用符号的名字 |
3. Allocations List Detail Type - Allocations列表详细类型
下面allocations列表列显示在详细窗格中。
Column name | Definition |
---|---|
# |
分配数目 |
Address |
内存块的地址 |
Category |
对象类型 |
Identifier |
对象的标识 |
Timestamp |
事件发生的时间 |
Live |
表示当前对象是否为活动对象 |
Size |
内存块的大小 |
Responsible Library |
负责分配块的库 |
Responsible Caller |
导致分配事件的函数 |
4. Generations Detail Type - Generations详细类型
下面generations
列出现在详细窗格中。
Column name | Definition |
---|---|
Snapshot |
Snapshot 的名称 |
Timestamp |
时间发生的时间 |
Heap Growth |
自从上次Snapshot的增长量 |
# Persistent |
仍然存在的对象数 |
后记
本篇主要讲述了Allocations工具,感兴趣的给个赞或者关注~~~~