在說Xcode自帶測試方法前先講下程序在內(nèi)存中的空間劃分, 一般可分為5個部分:

#1. BSS段, 存放未初始化的全局變量. BSS是英文Block Started by Symbol的簡稱。BSS段屬于靜態(tài)內(nèi)存分配。

#2. 數(shù)據(jù)段, 存放已初始化的全局變量和全局靜態(tài)變量. 數(shù)據(jù)段屬于靜態(tài)內(nèi)存分配

#3. 代碼段, 存放程序執(zhí)行代碼

#4. 堆      , 存放進(jìn)程中被動態(tài)分配的內(nèi)存段.

#5. 棧      , 存放函數(shù)的參數(shù)值和局部變量, 由編譯器自動分配和釋放.

 

常說的內(nèi)存管理是對堆內(nèi)存的管理.

內(nèi)存泄露指動態(tài)分配開辟出來的空間, 在使用完畢后未釋放, 或者未被回收直至程序結(jié)束.

 

Xcode自帶有一套測試工具

 

Analyze - 靜態(tài)分析

如下圖位置:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

會自動檢查代碼中是否有以下錯誤:

#1. 是否創(chuàng)建了一個對象, 但并沒有使用它

#2. 是否創(chuàng)建了一個對象或者指針, 對其初始化后卻一直沒有讀取過

#3. 是否調(diào)用的讓某個對象引用計數(shù)加1的方法, 卻沒有調(diào)用引用計數(shù)減1的方法

#4. 是否有錯誤返回類型.

運(yùn)行后如果檢查到有上述錯誤, 會有藍(lán)色的提示, 如圖

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

 

下面再就是常用的Instruments, 使用前注意最好選擇真機(jī)運(yùn)行不要選模擬器

打開Instruments是選擇上面第一張圖中的Profile, 包含以下測試功能:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

我們介紹下常用的Instruments三杰:

 

Leaks - 內(nèi)存泄露檢查

這樣一般如果有做過靜態(tài)檢查Analyze就比較少會出問題, 運(yùn)行的截圖:

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式