在說Xcode自帶測試方法前先講下程序在內存中的空間劃分, 通常可分爲5個部分:函數
#1. BSS段, 存放未初始化的全局變量. BSS是英文Block Started by Symbol的簡稱。BSS段屬於靜態內存分配。工具
#2. 數據段, 存放已初始化的全局變量和全局靜態變量. 數據段屬於靜態內存分配測試
#3. 代碼段, 存放程序執行代碼優化
#4. 堆 , 存放進程中被動態分配的內存段.3d
#5. 棧 , 存放函數的參數值和局部變量, 由編譯器自動分配和釋放.指針
常說的內存管理是對堆內存的管理.代碼規範
內存泄露指動態分配開闢出來的空間, 在使用完畢後未釋放, 或者未被回收直至程序結束.code
Xcode自帶有一套測試工具對象
Analyze - 靜態分析blog
以下圖位置:
會自動檢查代碼中是否有如下錯誤:
#1. 是否建立了一個對象, 但並無使用它
#2. 是否建立了一個對象或者指針, 對其初始化後卻一直沒有讀取過
#3. 是否調用的讓某個對象引用計數加1的方法, 卻沒有調用引用計數減1的方法
#4. 是否有錯誤返回類型.
運行後若是檢查到有上述錯誤, 會有藍色的提示, 如圖
下面再就是經常使用的Instruments, 使用前注意要把xocde運行模式改成release
打開Instruments是選擇上面第一張圖中的Profile, 包含如下測試功能:
咱們介紹下經常使用的Instruments三傑:
Leaks - 內存泄露檢查
這樣通常若是有作過靜態檢查Analyze就比較少會出問題, 運行的截圖:
打開後手機運行可能會慢一些, 要儘可能打開程序中的全部界面檢查下. 若是有內存泄露的話會在Leak check那一行出現x的符號
點擊x符號能看到詳細錯誤信息
Allocations - 內存分配檢查
界面以下圖
Time Profile - 運行耗時檢查
能查看各個耗時的項目, 對於耗時較多的項目能夠雙擊耗時項目直接定位到代碼
點開可能定位到代碼, 下圖中顯示的301x標識這段代碼運行耗時301ms, 若是有較耗時的代碼就須要進行優化
上面是Xcode自帶的一些檢查工具, 但最重要的仍是要本身多注意代碼規範