iOS基礎 - 內存分析

1、內存的重要性

程序是否可用的最根本的制約因素。app

十分影響用戶體驗。函數

程序的crash有不少狀況都是內存的緣由。工具

2、iOS平臺內存警告機制

iOS系統不支持虛擬內存,一旦出現內存不足的狀況,iOS系統會通知全部app,不管是前臺的仍是掛起的,都會收到memory warning的通知,一旦app收到memory warning的通知就應該回收佔用內存較大的對象。測試

內存警告測試方法:iOS模擬器->硬件->模擬內存警告。spa

iOS6廢除了viewDidUnload函數,因此要把以前viewDidUnload中作的事情放在didReceiveMemoryWarningcode

3、靜態分析工具——Analyze

Analyze是一個編譯和分析工具,能夠發現編譯中的warning,內存泄露隱患,有時還能夠查處邏輯上的問題。對象

內存泄露隱患提示:內存

Potential Leak of an object allocated on line ……it

數據賦值隱患提示:io

The left operand of …… is a garbage value;

對象引用隱患提示:

Reference-Counted object is used after it is released;

Analyze發現的問題值得咱們注意,但它只是提出隱患,並不必定就存在問題。

Analyze運行方法:Product->Analyze,或者長按運行按鈕,選擇Analyze

4、動態分析工具——Instrument

啓動instrumentXcode->product->profile,選擇相應的工具,點擊profile按鈕。

顯示全部instrument工具:window->library.下面的按鈕是調整顯示方式,搜索欄是搜素某一工具。上面能夠按某一功能選擇工具。還能夠按本身的方式組織instrument工具。咱們這裏只介紹和內存相關的Allocationsleaks

Allocations:跟蹤內存分配的工具

Category:一般是一個Core Foundation對象、OC類等。

Live Bytes:當前活動內存大小。

#Living:存在的對象個數。

#Transient:已經銷燬的對象個數。

Overall Bytes:所開闢的全部內存。

#Overall:所創造出來的全部對象個數。

#AllocationsNet/Overall)當前和所有的比值。

Leaks:跟蹤內存泄露的工具

相關文章
相關標籤/搜索