2010-07-23 110 views
0

我在樂器中測試了我的應用程序。沒有發現泄漏,但應用程序崩潰(不是立即 - 大約20分鐘後[取決於用戶的活動])。我查看了Allocations。據報道:iPhone內存泄露(很多分配)

Category | Live Bytes | Count Live | # Living | # Transitory | Overall Bytes | # Allocations (Net/Overall) 
Malloc 16 Bytes | 235088 | 14693 | 0 | 235088 | 14693 | 1.00 

所有記錄(當我查看「malloc的16個字節」的詳細信息,),都只有一個對象所做的:

# | Object Address | Category | Creation Time | Live | Size | Responsible Library | Responsible Caller 
0 | 0x104b50 | 817461248 | • | dyld | _dyld_start 

(...和14693條記錄與相同的字段數據,當然,除了#)。

堆棧跟蹤:

0 CoreFoundation __CFAllocatorSystemAllocate 
    1 CoreFoundation CFAllocatorAllocate 
    2 CoreFoundation __CFGetConverter 
    3 CoreFoundation CFStringEncodingGetConverter 
    4 CoreFoundation CFStringGetSystemEncoding 
    5 CoreFoundation __CFStringInitializeSystemEncoding 
    6 CoreFoundation __CFInitialize 
    7 dyld ImageLoaderMachO::doImageInit(ImageLoader::LinkContext const&) 
    8 dyld ImageLoaderMachO::doInitialization(ImageLoader::LinkContext const&) 
    9 dyld ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) 
    10 dyld ImageLoader::recursiveInitialization(ImageLoader::LinkContext const&, unsigned int, ImageLoader::InitializerTimingList&) 
    11 dyld ImageLoader::runInitializers(ImageLoader::LinkContext const&, ImageLoader::InitializerTimingList&) 
    12 dyld dyld::initializeMainExecutable() 
    13 dyld dyld::_main(macho_header const*, unsigned long, int, char const**, char const**, char const**) 
    14 dyld dyldbootstrap::start(macho_header const*, int, char const**, long, macho_header const*) 
    15 dyld _dyld_start 

我不能粘貼在這裏所有的代碼(應用程序是不是幾行)。但是,請給我一些建議 - 在哪裏尋找內存泄漏或不適合。其他...

回答

1

恕我直言,你的首要任務是讓你的應用程序運行。嘗試通過評論部分代碼來找出問題所在;如果應用程序不再崩潰,那麼問題位於您剛纔評論的部分內,如果它仍然崩潰,那麼它必須在其他地方。重複這些步驟,直到您修復該錯誤。

當你運行你的應用程序後,你就可以開始發現它的泄漏或提高性能。

+0

嗯,問題是應用程序只有在〜20分鐘的工作後崩潰。 – kpower 2010-07-23 10:28:43

+2

對我來說似乎沒有崩潰的特定代碼部分,但系統在大約20分鐘後內存不足。所以可能會有很多內存泄漏,或者應用程序對內存過於重視。 – Rengers 2010-07-23 10:55:09