iPhone開發應用之用Leak工具檢查內存泄漏
iPhone開發應用之用Leak工具檢查內存泄漏是本文要介紹的內容,主要是來了解在iPhone開發中,內存泄漏是個很容易發生的情況,因為iPhone必須自行作內存管理。現在的開發者,大多習慣用的.NET或Java的等有垃圾回收機制的開發語言來作開發,因此可能較不習慣自行釋放內存。
背景
從我首次接觸的Xcode開發iPhone應用已有三個半月,這段時間中,我看過不少如何找出內存泄漏的文章,可是由于基本觀念不夠好,繞了不少遠路。在iPhone程式開發中,使用NSLog直接在控制臺印出retainCount也是一個檢視內存泄漏的方法,但是的XCode提供了更方便的泄漏工具供開發者使用。介于自身觀念較差,因此剛開始使用泄漏的時候,也花了不少時間走過彎路,因此寫下自身經驗,期望能幫助更多開發者。
如何使用Leak,如圖:
1、如同上圖所示,在的XCode工具列,Run=>“Run with Perfromance Tool=>Leak
2、這樣Leak就會啟動,如圖:
3、同時我將[m_Images release]注解起來
4、接下來讓我們來看執行結果吧,如圖:
5、這個是我目前正在開發的游戲專案,由于某個對象會隨著游戲進行,會動態產生或從畫面移除,因此在綠色框框的地方,可以看到內存的泄漏不段增加
6、上圖下方的列表,告訴我們在CloudAnimation::LoadImage中,有個陣列沒被釋放,如圖:
7、點擊后,就顯示了該段編碼的情況,如圖:
8、接下來,我將注解掉的測試的編碼還原,然后再次執行Leak,如圖:
9、內存泄漏就沒了
10、這個圖里面看到的一些內存泄漏,是因為那些音樂正在播放,正在使用中的東西,當然不會釋放,另外也有部份是SDK中的一個錯誤。
小結:iPhone開發應用之用Leak工具檢查內存泄漏的內容介紹完了,希望通過本文的學習能對你有所幫助!