gpt4 book ai didi

ios - 应用程序在 iPad 2 上运行良好,在 iPad 3 上崩溃,内存不足警告

转载 作者:行者123 更新时间:2023-12-01 19:12:54 24 4
gpt4 key购买 nike

正如标题所说,我有一个可以在 iPad 2 上运行的应用程序,但在 iPad 3 上崩溃。运行它时,控制台会给我一个内存不足的警告消息。当崩溃发生时,我用符号表示它,但实际上没有什么可以与代码相关联,就像它显示的那样

   process name, UUID, rpages, recent_max, [reason] (state)

在那些列标题下只是十六进制的东西,没有显示项目中的方法调用或行。

有任何想法吗?我是否在代码中遗漏了一些允许更好的崩溃日志的标志?

谢谢。

最佳答案

如果您收到内存不足警告并且未能释放足够的内存来解决问题,您的应用几乎肯定会崩溃。问题是,我不认为它崩溃的方式或原因的细节可能具有启发性。此时,您正在评估继发症状。您确实需要回过头来弄清楚为什么首先会收到内存不足警告并解决该问题。

正如丹尼尔所说,您可以查看Technical Note 2151 ,但正如它所说:

When you see a low memory crash, rather than be concerned about what part of your code was executing at the time of termination, you should investigate your memory usage patterns and your responses to low memory warnings. Memory Allocations Help lists detailed steps on how to use the Leaks Instrument to discover memory leaks, and how to use the Allocations Instrument's Mark Heap feature to avoid abandoned memory. Memory Usage Performance Guidelines discusses the proper ways to respond to low-memory notifications as well as many tips for using memory effectively. It is also recommended that you check out the WWDC 2010 session, Advanced Memory Analysis with Instruments.



所以,有几个想法:
  • 你有没有寻找泄漏? Finding Leaks文章将引导您了解如何使用仪器来查找泄漏。
  • 如果你打开了僵尸,你有没有把它们关掉? Zombies 是一个很好的诊断工具,但只是消耗内存。
  • 您是否通过静态分析器运行代码(shift+command+B 或在“产品”菜单上选择“分析”)?特别是如果使用非 ARC 代码,这会发现很多内存问题。
  • 您是否使用仪器的 Allocations 检查了未解释的增加而没有抵消减少的分配?工具。使用它,您可以运行程序,查看图表上的内存消耗,看看您是否看到在某个点上没有被相应的减少抵消的任何增加。如果是这样,请在图中突出显示这些增加:

    例如,在运行分配工具时,按住选项键,然后用鼠标单击并拖动以突出显示时间线的一部分,以确定您要检查的内容。您可能希望专注于分配中的一个高峰。例如,我在分配中发现了一个凹凸并突出显示它(这是一个非常简单的示例,我在 viewDidLoad 中创建了一个巨大的数组,但希望它能给你这个想法):

    allocations

    请注意,我发现在下部面板中显示调用树很有用,选择“隐藏系统库”以专注于您的代码(以及“反转调用树”)通常很有用。如果你双击 Instruments 中的方法名(在我的例子中,这里是 viewDidLoad),Instruments 会显示你正在分配的代码:

    show code
  • 关于ios - 应用程序在 iPad 2 上运行良好,在 iPad 3 上崩溃,内存不足警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15211989/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com