iPhone上应用程序的内存占用

iPhone上应用程序的内存占用,iphone,xcode,performance,instruments,Iphone,Xcode,Performance,Instruments,我最近有一个应用被应用商店拒绝,因为内存不足异常。该应用程序不会泄漏内存,但其基本内存占用似乎过高。根据苹果发送的崩溃日志,它占用了大约14000页的内存(主要是由于巨大的纹理)。但有两件奇怪的事: 在提交之前,我在5台设备上进行了严格的测试,其中任何一台设备都没有出现这种崩溃 在被拒绝后,我对纹理进行了优化,并将它们调整到原始大小的一半(纹理内存消耗) 我无法知道我的应用程序现在占用了多少页面,除非我能重现与苹果相同的崩溃(这是我永远无法做到的)是否有其他方法可以找到我的应用程序的内存占用,以

我最近有一个应用被应用商店拒绝,因为内存不足异常。该应用程序不会泄漏内存,但其基本内存占用似乎过高。根据苹果发送的崩溃日志,它占用了大约14000页的内存(主要是由于巨大的纹理)。但有两件奇怪的事:

  • 在提交之前,我在5台设备上进行了严格的测试,其中任何一台设备都没有出现这种崩溃
  • 在被拒绝后,我对纹理进行了优化,并将它们调整到原始大小的一半(纹理内存消耗)
  • 我无法知道我的应用程序现在占用了多少页面,除非我能重现与苹果相同的崩溃(这是我永远无法做到的)是否有其他方法可以找到我的应用程序的内存占用,以便我可以确保它现在已经足够优化。


    我确实试过仪器,但当我试图通过我的XCode运行它时,我的应用程序崩溃了(肯定是我的XCode有问题)。但当我直接在我的iPhone/iPod上运行它时,它工作得非常好如果您能在iPhone上找到我的应用程序的内存占用(如果有类似于windows任务管理器的东西),我们将不胜感激。

    谢谢

    编辑:

  • 从XCode启动应用程序会在控制台中出现以下错误: “启动远程程序时出错:无法获取进程553的任务。”

  • 使用活动监视器启动应用程序时出现以下错误: “目标过早终止,无法收集数据”

  • EDIT2:

    通过使用开发人员配置文件而不是分发配置文件,我可以使用活动监视器运行我的应用程序。但是现在活动监视器中有几个部分-使用的物理内存、真实内存、虚拟内存。我认为这是哪一个?strong>总而言之,我需要知道其中哪一个导致iPhone出现内存不足异常。

    XCode->Run->使用性能工具运行->活动监视器


    如果设备已连接,Activity Monitor将在iPhone/iTouch上运行。

    我认为您从错误的角度来看这个问题。您正在询问如何在不使用XCode的情况下查找内存占用。我认为您应该问的问题是:为什么不能使用XCode?想必这就是您最初用来开发应用程序的东西

    没有XCode,你几乎是瞎飞。你说你把纹理的大小减半了,但是你怎么知道呢?当您的应用程序收到内存不足警告时,是否会释放任何无关内存?(
    ApplicationIDReceiveMemoryWarning:

    首先,您是否查看了从XCode运行应用程序时的崩溃日志?您应该能够在XCode的组织者中看到它们


    我不确定是否有一种解决方案可以阻止你的应用程序在XCode上崩溃。通常,当我的iPhone不允许调试时,我只需重新启动xCode和我的手机,它就会重新开始工作。重新启动XCode有时会有所帮助。我还将尝试重新安装XCode和iPhone SDK。

    “我的XCode肯定有问题”——可能是你的应用程序。故障?该应用程序在iphone上独立运行,但从XCode启动时不会。不知道这怎么可能是应用程序的问题。“我确实尝试了instruments,但当我尝试通过我的XCode运行应用程序时,我的应用程序崩溃了(肯定是我的XCode有问题)。”-活动监视器是一种工具。当你这样做时,你没有通过XCode运行应用程序。手动启动应用程序,然后启动仪器并连接到设备。我的建议是使用Memory Monitor应用程序,因为它应该提供应用程序内存使用情况的准确分类,以及系统内存使用总量。事实证明,您是对的。我试图使用XCode运行我的应用程序的可分发版本。理想情况下,这应该没有问题,但在运行dist版本时,XCode似乎存在一些隐藏的问题。因此,我改为调试,并从项目中删除了代码签名权限。这使我能够使用仪器运行性能监视工具。我也试着重新安装iphonesdk和XCode,但没有什么不同。