嘿,我有一個問題,我想要一些建議。在手機上泄漏,但不在仿真器上?
我工作的多數民衆贊成由以下幾個主要部分的文檔查看器:
- 拉鍊庫,解包文件容器(minizip)
- XML庫,解析文檔(libxml2的)
- 在屏幕上呈現文檔的UI代碼
沒有太複雜或花哨的東西。
在模擬器上,一切都很精美;觀衆按預期執行。我已經通過儀器運行,沒有泄漏。 ObjectAlloc報告在查看器的整個生命週期內分配了大約5.5兆字節(這反覆打開我的測試文檔)。
不幸的是在設備上(iPhone 3G,iOS 3.1.2)的事情並不那麼清楚。相當頻繁地,重複打開測試文件會導致內存不足錯誤,並且文件將無法打開。初始文件打開始終有效。儘管模擬器測試突出顯示沒有泄漏,整體內存佔用也不大,但我不得不斷言iPhone上確實存在泄漏(因爲爲什麼重複打開會導致內存不足錯誤)。
我試圖在設備上運行儀器,但應用程序在運行中途停下來(?!),所以我實際上沒有成功運行泄漏。
我相信有一個重要的泄漏只會出現在設備上。所以,我剩下兩個選項(沒有特定順序):
- 重構我的代碼,避免使用zip庫。這將消除潛在的泄漏源。耗時且不確定。
- 重新格式化並重新安裝我的手機上的所有東西(也許有什麼會導致問題)。非常像上面那樣,耗費時間,並且會丟失我的手機數據。也許它會讓我跑漏。
正如你所看到的,我到達這裏。有什麼明顯的我失蹤了?
在此先感謝你們。
你的意思是「ObjectAlloc」?你是什麼意思通過手動搜索它們?感謝您的建議! – EightyEight 2010-08-13 04:28:00
嗯,我想是的。但是在我的樂器(在樂器選擇菜單中)和我的XCode(主菜單:運行 - >與演奏工具一起運行)中,它被稱爲「分配」。 而關於手動搜索 - 請參閱我的答案(我編輯它以添加詳細信息)。 – kpower 2010-09-01 07:02:15