代码之家  ›  专栏  ›  技术社区  ›  kpower

iPhone内存泄漏(大量分配)

  •  0
  • kpower  · 技术社区  · 15 年前

    我用仪器测试了我的应用程序。没有发现漏洞,但应用程序崩溃(不是立即-工作20分钟后[取决于用户的活动])。我查看了分配。它报告:

    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
    

    我不能在这里粘贴所有代码(应用程序不是几行)。但是,请给我一些建议-在哪里搜索内存泄漏或smth。否则。。。

    1 回复  |  直到 15 年前
        1
  •  1
  •   shader    15 年前

    IMHO,你的首要任务是让你的应用程序运行。试着通过注释部分代码来定位问题所在;如果应用程序不再崩溃,那么问题就出在你刚才评论的部分,如果它仍然崩溃,那么它一定在其他地方。重复这些步骤,直到修复错误。

    运行应用程序后,就可以开始查找漏洞或提高性能。