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