Xcode自帶iOS測試方法

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

#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)程中被動(dòng)態(tài)分配的內(nèi)存段.

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


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

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


Xcode自帶有一套測試工具


Analyze - 靜態(tài)分析

如下圖位置:

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

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

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

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

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

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


下面再就是常用的Instruments, 使用前注意要把xocde運(yùn)行模式改為release

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

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


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

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

打開后手機(jī)運(yùn)行可能會(huì)慢一些, 要盡量打開程序中的所有界面檢查下. 如果有內(nèi)存泄露的話會(huì)在Leak check那一行出現(xiàn)x的符號(hào)

點(diǎn)擊x符號(hào)能看到詳細(xì)錯(cuò)誤信息


Allocations - 內(nèi)存分配檢查

界面如下圖


Time Profile - 運(yùn)行耗時(shí)檢查

能查看各個(gè)耗時(shí)的項(xiàng)目, 對(duì)于耗時(shí)較多的項(xiàng)目可以雙擊耗時(shí)項(xiàng)目直接定位到代碼


點(diǎn)開可能定位到代碼, 下圖中顯示的301x標(biāo)識(shí)這段代碼運(yùn)行耗時(shí)301ms, 如果有較耗時(shí)的代碼就需要進(jìn)行優(yōu)化


上面是Xcode自帶的一些檢查工具, 但最重要的還是要自己多注意代碼規(guī)范?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 30,194評(píng)論 8 265
  • 前言: 隨著項(xiàng)目的擴(kuò)大和功能的增多,代碼沒有經(jīng)過嚴(yán)格的調(diào)試和優(yōu)化,要么任性地卡頓運(yùn)行,要么就低調(diào)地崩潰,最后導(dǎo)致用...
    閑云清煙閱讀 2,733評(píng)論 0 0
  • 前言: 隨著項(xiàng)目的擴(kuò)大和功能的增多,代碼沒有經(jīng)過嚴(yán)格的調(diào)試和優(yōu)化,要么任性地卡頓運(yùn)行,要么就低調(diào)地崩潰,最后...
    Skys閱讀 6,356評(píng)論 2 35
  • 1.weak和assign區(qū)別 修飾變量類型的區(qū)別: weak 只可以修飾對(duì)象。如果修飾基本數(shù)據(jù)類型,編譯器會(huì)報(bào)錯(cuò)...
    coderjon閱讀 1,112評(píng)論 0 1
  • 本文章參考自iOS性能分析和優(yōu)化,主要學(xué)習(xí)如何使用性能分析工具Instruments。 一.基本概念 1.內(nèi)存空間...
    腸粉白粥_Hoben閱讀 507評(píng)論 0 1

友情鏈接更多精彩內(nèi)容