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

在iPhone vs Simulator上显示扩展内存使用的泄漏

  •  1
  • rickharrison  · 技术社区  · 15 年前

    当我使用Leaks工具在模拟器中运行应用程序时,它使用大约2.5MB的内存。当我在iphone上运行它时,它需要永远启动,慢慢爬升到约34MB的内存,然后崩溃。但是,当我在iPhone上运行它时,它会很快启动并运行良好。为什么会这样?

    2 回复  |  直到 14 年前
        1
  •  0
  •   coneybeare    15 年前

    崩溃可能是由于应用程序内存泄漏和设备内存不足造成的。没有看到任何代码是不可能分辨的。 Here 是关于如何使用仪器的教程

    由于泄漏监测系统每10秒对设备进行一次轮询以获取信息,因此“永远启动”和运行缓慢

    编辑:这可能是因为在给定的时间内存中保存了太多的对象。检查仪器和对象分配。仅仅因为你没有泄密并不意味着你不能耗尽记忆

        2
  •  1
  •   bbum    15 年前

    是否启用了僵尸检测?

    僵尸检测将导致分配给永远不会解除分配的每个对象(对象在解除分配时标记为僵尸)。如您所描述的,这将导致内存增长。一个常见的错误是在使用工具时,通过环境变量或通过对象alloc工具中的复选框启用僵尸检测。


    如果它不是僵尸或泄漏,那么它就是——正如其他人所说——正在分配内存并一直存在。使用object alloc工具跟踪在应用程序中分配的对象,并确保每个对象都有一个原因。您可以启用“仅跟踪实时分配”,以筛选出已解除分配的所有对象。