版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2018.06.17 |
前言
我們在做app的時候,不是做完功能就結(jié)束了,很多時候是需要進行檢查和優(yōu)化的,而xcode自帶了一個很好的檢查工具,可以檢測內(nèi)存泄漏。還可以查看哪一個方法比較耗時。還可以檢測離屏渲染等等,隨后的幾篇我們就說一下這個工具的使用。感興趣的可以看這幾篇。
1.INSTRUMENTS調(diào)試工具的使用(一)
2.INSTRUMENTS調(diào)試工具的使用(二)
3.INSTRUMENTS調(diào)試工具的使用(三)
4.INSTRUMENTS調(diào)試工具的使用(四)
5.INSTRUMENTS調(diào)試工具的使用(五)
6.INSTRUMENTS調(diào)試工具的使用(六)
7.INSTRUMENTS調(diào)試工具的使用(七)
8.INSTRUMENTS調(diào)試工具的使用(八)
9.INSTRUMENTS調(diào)試工具的使用(九)
10. INSTRUMENTS調(diào)試工具的使用(十)
11. INSTRUMENTS調(diào)試工具的使用(十一) —— 簡介(一)
12. INSTRUMENTS調(diào)試工具的使用(十二) —— 通常任務之啟動Instruments(一)
13. INSTRUMENTS調(diào)試工具的使用(十三) —— 通常任務之簡單了解Instruments(二)
14. INSTRUMENTS調(diào)試工具的使用(十四) —— 通常任務之創(chuàng)建、保存和打開跟蹤文檔(三)
15. INSTRUMENTS調(diào)試工具的使用(十五) —— 通常任務之指定目標應用和設(shè)備(四)
16. INSTRUMENTS調(diào)試工具的使用(十六) —— 通常任務之訪問和使用個別儀器(五)
17. INSTRUMENTS調(diào)試工具的使用(十七) —— 通常任務之記錄、暫停和停止跟蹤(六)
18. INSTRUMENTS調(diào)試工具的使用(十八) —— 導航收集的數(shù)據(jù)之關(guān)于數(shù)據(jù)分析(一)
19. INSTRUMENTS調(diào)試工具的使用(十九) —— 導航收集的數(shù)據(jù)之導航時間軸窗格(二)
20. INSTRUMENTS調(diào)試工具的使用(二十) —— 導航收集的數(shù)據(jù)之導航詳細面板(三)
21. INSTRUMENTS調(diào)試工具的使用(二十一) —— 導航收集的數(shù)據(jù)之將數(shù)據(jù)映射到源代碼(四)
22. INSTRUMENTS調(diào)試工具的使用(二十二) —— 導航收集的數(shù)據(jù)之查看您應用的源代碼(五)
23. INSTRUMENTS調(diào)試工具的使用(二十三) —— 分析你App的性能之測量CPU使用情況(一)
24. INSTRUMENTS調(diào)試工具的使用(二十四) —— 分析你App的性能之測量圖形性能(二)
25. INSTRUMENTS調(diào)試工具的使用(二十五) —— 分析你App的性能之監(jiān)視網(wǎng)絡和文件I / O(三)
26. INSTRUMENTS調(diào)試工具的使用(二十六) —— 分析你App的內(nèi)存使用之關(guān)于內(nèi)存分析(一)
27. INSTRUMENTS調(diào)試工具的使用(二十七) —— 分析你App的內(nèi)存使用之檢測內(nèi)存使用(二)
28. INSTRUMENTS調(diào)試工具的使用(二十八) —— 分析你App的內(nèi)存使用之找到廢棄的內(nèi)存(三)
29. INSTRUMENTS調(diào)試工具的使用(二十九) —— 分析你App的內(nèi)存使用之找到內(nèi)存泄露(四)
30. INSTRUMENTS調(diào)試工具的使用(三十) —— 分析你App的內(nèi)存使用之找到僵尸對象(五)
31. INSTRUMENTS調(diào)試工具的使用(三十一) —— 分析你App的能源之測量能源影響(一)
32. INSTRUMENTS調(diào)試工具的使用(三十二) —— 高級任務之導出和導入跟蹤數(shù)據(jù)(一)
33. INSTRUMENTS調(diào)試工具的使用(三十三) —— 高級任務之創(chuàng)建自定義Instruments(二)
34. INSTRUMENTS調(diào)試工具的使用(三十四) —— 分析模板和工具之分析模板(一)
35. INSTRUMENTS調(diào)試工具的使用(三十五) —— 分析模板和工具之Activity Monitor工具(二)
Overview
Instrument Description |
Supported Platforms |
Related Profiling Templates |
---|---|---|
Allocations 工具捕獲有關(guān)應用程序內(nèi)存分配的信息。 它僅記錄來自單個進程的信息。 |
iOS、OSX | Allocations Profiling Template、Leaks Profiling Template、Zombies Profiling Template |
Timeline Pane - 時間線面板
時間軸窗格顯示基于儀器配置的信息。
Record Settings - 記錄設(shè)置
單擊檢查器窗格中的記錄設(shè)置按鈕以自定義以下記錄選項。
1. Launch Configuration for All Allocations - 啟動所有Allocations的配置
以下Launch Configuration for All Allocations
記錄設(shè)置都可用。
Setting | Description |
---|---|
停止時丟棄未記錄的數(shù)據(jù) | 一旦停止點擊,放棄所有收集但尚未由Allocations工具處理的數(shù)據(jù)。 自動為Allocations ,Leaks 和Zombies 分析模板選擇 |
放棄釋放內(nèi)存的事件 | 放棄已釋放內(nèi)存的任何事件。 |
只跟蹤VM分配 | 僅跟蹤在VM中收集的VM allocations 。 |
2. Launch Configuration for Heap Allocations - 啟動Heap Allocations配置
以下用于堆分配的啟動配置記錄設(shè)置可用。
Setting | Description |
---|---|
記錄參考計數(shù) | 跟蹤每個對象的引用計數(shù)。 自動為Leaks and Zombies 分析模板選擇。 |
識別C++對象 | 識別任何找到的C++對象 |
啟用NSZombie 檢查 |
選擇在檢測到僵尸時顯示消息。 僅自動為僵尸分析模板選擇。 |
3. Recorded Types - 記錄類型
啟用要記錄的對象類型。 您可以通過單擊表格下方的加號(+)和減號( - )來創(chuàng)建和刪除新規(guī)則。 初始選項及其配置包括以下內(nèi)容。
Setting | Description |
---|---|
* | 記錄錄制所有類型:記錄所有類型對象 |
NS | 配置忽略NS前綴的類型:不記錄NS對象的信息 |
CF | 配置忽略CF前綴的類型:不記錄CF對象的信息 |
Malloc | 配置忽略Malloc前綴的類型:不記錄Mallo事件的信息 |
Display Settings - 顯示設(shè)置
單擊檢查器窗格中的顯示設(shè)置按鈕以自定義以下顯示設(shè)置。
1. Track Display Settings - 跟蹤顯示設(shè)置
這些設(shè)置控制信息在時間線窗格中的顯示方式。
Setting | Description | Options |
---|---|---|
Style | 信息是如何展示的 | 1)當前字節(jié)數(shù):當前分配給進程的字節(jié)數(shù)。2)Allocation 密度:每毫秒的分配數(shù)量。3)Active Allocation Distribution :當前分配的內(nèi)存量。 |
2. Generation Analysis - 代分析
允許你在詳細窗格中標記generations
。
3. Allocation Lifespan - Allocation生命周期
以下allocation壽命顯示將根據(jù)其生命周期在詳細信息窗格中篩選分配。
Setting | Description |
---|---|
All Allocations |
顯示在選定時間范圍內(nèi)創(chuàng)建的所有allocations。 |
Created & Persistent |
顯示在選定時間范圍內(nèi)創(chuàng)建的allocations ,并且在分配結(jié)束時仍然存在。 |
Created & Destroyed |
顯示在選定時間范圍內(nèi)創(chuàng)建和銷毀的分配。 |
4. Allocation Type - Allocation類型
以下分配類型顯示設(shè)置根據(jù)其類型過濾詳細信息窗格中的分配。
Setting | Description |
---|---|
All Heap & Anonymous VM |
顯示所有malloc堆分配和感興趣的虛擬機區(qū)域,如圖形和Core Data 相關(guān)。 隱藏映射文件,dylib和一些大的保留虛擬機區(qū)域。 |
All Heap Allocations |
顯示所有malloc堆分配但不包含VM區(qū)域。 |
All VM Regions |
顯示所有VM區(qū)域,包括映射文件,dylib和包含malloc堆的VM區(qū)域 |
5. Call Tree - 調(diào)用樹
下面的調(diào)用樹在詳細窗格中展示設(shè)置過濾調(diào)用樹。
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 - 調(diào)用樹限制
根據(jù)以下設(shè)置,以下選項可過濾調(diào)用樹以顯示屬于特定閾值的調(diào)用。
Setting | State |
---|---|
Count |
Off by default |
Bytes |
Off by default |
7. Data Mining - 數(shù)據(jù)挖掘
允許您通過收集的數(shù)據(jù)篩選特定的符號和庫。
Detail Pane Columns - 詳細信息窗格列
1. Statistics Detail Type - 統(tǒng)計明細類型
詳細信息窗格中提供以下統(tǒng)計信息列。
列名稱 | 定義 |
---|---|
Graph |
在跟蹤窗格中選擇展示category |
Category |
通常一個Core Foundation對象,一個Objective-C對象,或者一個原始的內(nèi)存塊。 |
Bytes |
在給定的時間范圍內(nèi),總分配的字節(jié)數(shù)的改變 |
Count |
在給定的時間范圍內(nèi),總分配數(shù)的改變 |
Persistent Bytes |
在給定的時間范圍內(nèi),已分配但是沒有釋放的字節(jié)數(shù) |
# Persistent |
在給定的時間范圍內(nèi),已分配但是沒有釋放的字節(jié)數(shù) |
Transient Bytes |
在選定時間區(qū)間,創(chuàng)建和銷毀字節(jié)數(shù) |
# Transient |
在選定時間區(qū)間,創(chuàng)建和銷毀分配數(shù) |
Total Bytes |
在選定時間區(qū)間,存在的總的字節(jié)數(shù) |
# Total |
在選定時間區(qū)間,存在的總的分配數(shù) |
# Events |
在選定時間區(qū)間,各種類型事件的總數(shù) |
Transient/Total Bytes |
一種直方圖,表示與字節(jié)總數(shù)相關(guān)的暫態(tài)字節(jié)數(shù)。 |
2. Call Tree Detail Type - 調(diào)用樹詳細類型
下面的調(diào)用樹列在詳細窗格中顯示。
Column name | Definition |
---|---|
Bytes Used |
由相應符號使用的字節(jié)數(shù) |
Count |
符號使用的次數(shù) |
Self Bytes |
調(diào)用自己使用的字節(jié)數(shù) |
Self % |
調(diào)用自己使用字節(jié)數(shù)的百分比 |
Parent % |
調(diào)用父使用字節(jié)數(shù)的百分比 |
Source Path |
產(chǎn)生調(diào)用的源文件路徑 |
Category |
表示調(diào)用類別的圖標 |
Library |
產(chǎn)生調(diào)用的庫名稱 |
Symbol Name |
被調(diào)用符號的名字 |
3. Allocations List Detail Type - Allocations列表詳細類型
下面allocations列表列顯示在詳細窗格中。
Column name | Definition |
---|---|
# |
分配數(shù)目 |
Address |
內(nèi)存塊的地址 |
Category |
對象類型 |
Identifier |
對象的標識 |
Timestamp |
事件發(fā)生的時間 |
Live |
表示當前對象是否為活動對象 |
Size |
內(nèi)存塊的大小 |
Responsible Library |
負責分配塊的庫 |
Responsible Caller |
導致分配事件的函數(shù) |
4. Generations Detail Type - Generations詳細類型
下面generations
列出現(xiàn)在詳細窗格中。
Column name | Definition |
---|---|
Snapshot |
Snapshot 的名稱 |
Timestamp |
時間發(fā)生的時間 |
Heap Growth |
自從上次Snapshot的增長量 |
# Persistent |
仍然存在的對象數(shù) |
后記
本篇主要講述了Allocations工具,感興趣的給個贊或者關(guān)注~~~~