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

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

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

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

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

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

 

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

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

 

Xcode自帶有一套測(cè)試工具

 

Analyze - 靜態(tài)分析

如下圖位置:

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

會(huì)自動(dòng)檢查代碼中是否有以下錯(cuò)誤:

#1. 是否創(chuàng)建了一個(gè)對(duì)象, 但并沒(méi)有使用它

#2. 是否創(chuàng)建了一個(gè)對(duì)象或者指針, 對(duì)其初始化后卻一直沒(méi)有讀取過(guò)

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

#4. 是否有錯(cuò)誤返回類型.

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

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

 

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

打開(kāi)Instruments是選擇上面第一張圖中的Profile, 包含以下測(cè)試功能:

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

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

 

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

這樣一般如果有做過(guò)靜態(tài)檢查Analyze就比較少會(huì)出問(wèn)題, 運(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),移動(dòng)軟件開(kāi)發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式