INSTRUMENTS調(diào)試工具的使用(三十六) —— 分析模板和工具之Allocations工具(三)

版本記錄

版本號 時間
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 TemplateLeaks Profiling TemplateZombies 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ù)。 自動為AllocationsLeaksZombies分析模板選擇
放棄釋放內(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)注~~~~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容