INSTRUMENTS调试工具的使用(三十六) —— 分析模板和工具之Allocations工具(三)

版本记录

版本号 时间
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 TemplateLeaks Profiling TemplateZombies Profiling Template

Timeline Pane - 时间线面板

时间轴窗格显示基于仪器配置的信息。


Record Settings - 记录设置

单击检查器窗格中的记录设置按钮以自定义以下记录选项。

1. Launch Configuration for All Allocations - 启动所有Allocations的配置

以下Launch Configuration for All Allocations记录设置都可用。

Setting Description
停止时丢弃未记录的数据 一旦停止点击,放弃所有收集但尚未由Allocations工具处理的数据。 自动为AllocationsLeaksZombies分析模板选择
放弃释放内存的事件 放弃已释放内存的任何事件。
只跟踪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工具,感兴趣的给个赞或者关注~~~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容