在 IPhone 程式開發中,記憶體洩漏(Memory Leak)是個很容易發生的情況, 因為 IPhone 必須自行作記憶體管理.
現在的開發者, 大多習慣用 .NET 或 Java 等有垃圾回收機制的開發語言來作開發, 因此可能較不習慣自行釋放記憶體.
背景
從我首次接觸 Xcode 開發 IPhone 程式已有三個半月,這段時間中,我看過不少如何找出記憶體洩漏(Memory Leak的文章),可是由於基本觀念不夠好,繞了不少遠路.
在 IPhone 程式開發中,使用 NSLog 直接在 Console 印出 retainCount 也是一個檢視記憶體洩漏的方法, 但是XCode 提供了更方便的 Leak 工具供開發者使用.
介於自身觀念較差, 因此剛開始使用 Leak 的時候, 也花了不少時間走過彎路,
因此寫下自身經驗, 期望能幫助更多開發者.
如何使用Leak

2. 這樣Leak就會啟動

4. 接下來讓我們來看執行結果吧!

6. 上圖下方的列表, 告訴我們在 CloudAnimation::LoadImage 中, 有個陣列沒被釋放



10. 這個圖裡面看到的一些記憶體洩漏, 是因為那些音樂正在播放, 正在使用中的東西, 當然不會釋放, 另外也有部份是 SDK 的 bug.
參考
Fix memory leaks with instruments
沒有留言:
張貼留言
嘎嘎嘎