天天看點

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

螢幕快照 2016-03-24 11.45.28.png

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

螢幕快照 2016-03-24 11.21.54.png

點選後顯示如圖,然後點選上面的

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

A794C733-3CBE-419B-93E9-292F139CDFD2.png

a、點選1檢視左測,進行定位

b、點選2進行準确定位

c、檢視錯誤洩露原因

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

螢幕快照 2016-03-24 11.42.59.png

選擇工具,點選圖中的Profile或快捷鍵:

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

E41F6D4C-30DC-40B3-B9CA-D0C8E97CD2C3.png

command+i

彈出Instruments工具箱,選擇Leaks

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

螢幕快照 2016-03-24 11.45.14.png

顯示如圖,并按下鍵盤:command+R 運作app,此時手動操作app檢視記憶體洩露

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

93A23670-BA58-4DFE-B7FB-5EAB7077CA69.png

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

4D5B7953-EFBA-49B6-9D05-C223452CBB78.png

當操作app過程中,發現有紅的小叉,就說明有記憶體洩露,接下來的目的就是找到洩露位置并修複

a、點選1處按鈕,暫停檢測,

b、點選2轉到leaks下(此步驟感覺可有可無)

c、将滑鼠放到3處可檢視洩露個數

d、将1的選框選為Call Tree

e、将右側2的選擇調至中間

f、對Call Tree進行限制,将3打上勾

g、看4如果後面有箭頭則展開,直到出現類似5的(後面沒箭頭),然後輕按兩下5,它就會跳到記憶體洩露處,修複即可

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

螢幕快照 2016-03-24 13.01.35.png

a、調出Instruments工具操作同Leaks,不做複述,然後選擇 Time Profiler,彈出界面,然後使用快捷鍵command+R,啟動 Time Profiler 和 app,并操作app,檢視執行時間

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

雖然代碼沒什麼可優化的地方,但大家應該認識到緩存能發揮的作用。對于經常通路的頁面,多數情況下把圖檔緩存下來,還是能省些資源占用。

Separate by Thread:按線程分開做分析,這樣更容易揪出那些吃資源的問題線程。特别是對于主線程,它要處理和渲染所有的接口資料,一旦受到阻塞,程式必然卡頓或停止響應。

Invert Call Tree:反向輸出調用樹。把調用層級最深的方法顯示在最上面,更容易找到最耗時的操作。

Hide System Libraries:隐藏系統庫檔案。過濾掉各種系統調用,隻顯示自己的代碼調用。

Flattern Recursion:拼合遞歸。将同一遞歸函數産生的多條堆棧(因為遞歸函數會調用自己)合并為一條。

Top Functions:找到最耗時的函數或方法。

b、個人感覺選兩個就夠啦,有選前四個的,可能更全面,有需要的自己打上勾就ok拉

c、選擇其中一個輕按兩下,就會跳轉到對應的代碼頁,如圖

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

螢幕快照 2016-03-24 16.40.21.png

a、調出Instruments工具操作同Leaks,不做複述,然後選擇 Allocations,彈出界面,然後使用快捷鍵command+R,啟動 Allocations 和 app,并操作app,檢視某個方法所占用的記憶體,然後輕按兩下進入詳情,這裡不做複述

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

559C0051-62A6-4D87-B24E-1B3FF2A572DB.png

a、調出Instruments工具操作同Leaks,不做複述,然後選擇 Automation,彈出界面

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

61D49467-5391-4643-8ABB-4FB26A0DD889.png

如圖所标:

1為腳本區,2為控制區

b、此時應該先錄制操作腳本,點選2,同時它會自動為你運作app,你隻需要打開你的模拟器,然後操作app,腳本會自動記錄下你的操作步驟,

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

螢幕快照 2016-03-24 17.18.19.png

c、進行相關設定,設定好以後點選左上角開始運作腳本

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

5363DE25-29E1-4E11-A587-4B434204D2C3.png

d、檢視操作,說明如下

Xcode裡的Instruments工具:Leaks、Allocations、Time Profiler、Automation一、Leaks: 記憶體洩露檢測工具二、 Time Profiler:分析代碼的執行時間,找出導緻程式變慢的原因三、 Allocations:監測記憶體使用/配置設定情況四、 Automation:自動化測試,類似于Android的Monkey

B4DE3291-CB70-4DA0-A646-31DE7B118017.png

1處是腳本運作和開關

2處可以檢視運作狀态,輕按兩下可在腳本與記錄之間切換,如果操作出錯,此處會變黃,輕按兩下即可找到錯誤操作處

3處為記錄檔或記錄

本文轉自ljianbing51CTO部落格,原文連結:http://blog.51cto.com/ljianbing/1865148 ,如需轉載請自行聯系原作者

繼續閱讀