Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS应用程序被抛弃,内存占用率很低_Iphone_Memory_Jettison - Fatal编程技术网

Iphone iOS应用程序被抛弃,内存占用率很低

Iphone iOS应用程序被抛弃,内存占用率很低,iphone,memory,jettison,Iphone,Memory,Jettison,很抱歉发了这么长的帖子……我有一个非常冗长的习惯-P 我的iOS应用程序有一个奇怪的问题,用户已经报告了几个月了。我已经研究过好几次了,但还是遇到了障碍。该应用程序已被抛弃,但在被抛弃时似乎没有占用太多内存。例如,以下是一个用户的日志(应用程序名称和标识符已更改): 事件标识符:忽略 CrashReporter键:省略 硬件型号:iPhone2,1 操作系统版本:iPhone操作系统4.3.5(8L1) 内核版本:达尔文内核版本11.0.0:Sat Jul 9 00:54:20 PDT 2011

很抱歉发了这么长的帖子……我有一个非常冗长的习惯-P

我的iOS应用程序有一个奇怪的问题,用户已经报告了几个月了。我已经研究过好几次了,但还是遇到了障碍。该应用程序已被抛弃,但在被抛弃时似乎没有占用太多内存。例如,以下是一个用户的日志(应用程序名称和标识符已更改):

事件标识符:忽略
CrashReporter键:省略
硬件型号:iPhone2,1
操作系统版本:iPhone操作系统4.3.5(8L1)
内核版本:达尔文内核版本11.0.0:Sat Jul 9 00:54:20 PDT 2011;根目录:xnu-1735.47~1/释放_臂_S5L8920X
日期:2011-10-0109:50:03+0100
自快照以来的时间:41毫秒
免费网页:710
有线网页:10076
可购买页面:416
最大流程:跳板
过程
名称UUID计数常驻页面
MY_APP 2258(已丢弃)(激活)
MobileMuicPlaye 1024(已丢弃)
移动电话649(已丢弃)
MobileMail 716(已丢弃)
迷幻药148
通知117
BT182服务器
通信中心440
跳板3305(主动)
附件D 160(已丢弃)
apsd 278
配置。日志记录似乎证实了内存使用率低(在上述丢弃之前,app-resident mem报告为9773056字节)。虚拟大小很大(342740992),但是…它是虚拟的-P

这只影响到一小部分用户,我只在3GS设备上看到过这种情况(iOS 4.x…版本各不相同,但我认为似乎是从4.2开始的)。而且,对于受影响的用户来说,它总是在大约15分钟后发生

我已经尝试过让用户在报告了最简单的用例后使用这个应用程序,以防出现一些导致问题的奇怪行为,但它仍然会发生。这让我相信这是用户手机的问题,但我不喜欢告诉他们,如果没有什么东西可以指出这可能是问题所在。我无法在我的3GS或3G测试设备上复制它


它似乎不是常见的罪魁祸首(高脏内存使用率、内存泄漏等),所以我非常困惑于如何解决这个问题。有什么建议吗?或者至少我可以走一条路来进一步调查-P

从长远来看,您正在使用什么样的优化?一些影响数学精度的东西可能会产生影响,比如说快速数学之类的。如果你在malloc mem cal的某个地方有一个浮点数,这可能会影响你的记忆


正如我所说的,在切换到使用LLVM3(因为iOS 5不支持香草gcc)之后,这个问题似乎已经消失了。更新过程中也有一些小的代码更改,LLVM3的静态分析器也发现了一些小内存泄漏,gcc和泄漏都没有检测到,所以我不能肯定地说问题是gcc(在iOS上)特有的。但是,通过更好的静态分析,切换到LLVM 3似乎可以直接或间接地解决问题:-P


希望这能帮助其他人。

另一个注意事项。我在内存日志记录中也使用了host_统计数据(我知道它不代表设备可用内存),并在观察到此问题时,在每次内存警告后观察到总内存减少。非活动内存慢慢减少到0,这时应用程序被丢弃。这是否意味着用户空间因某种原因而减少(memmap?)?我以为它总是固定的。或者,主机的统计数据在iOS上完全不可靠吗?或者,可能是iOS在警告后限制内存?只是猜测…:-我现在可以用我的测试设备重新制作这个了。我重新编译了开发人员签名,但启用了发布优化(duh…应该早点尝试)。但是,我不能每次执行都复制它,更糟糕的是,当连接到调试器或工具时,我根本不能复制它。Ug。我怀疑某个竞争条件以某种方式导致内存泄漏,但仪器外部的所有测量结果(包括LowMemory日志)都表明内存使用率低。如果我能用仪器复制它,我肯定能验证它…:-P那么,为什么它会被抛弃???你能找到解决方案或取得任何进展吗?我们在3GS和我们的客户身上看到了一个非常类似的问题——虽然不是一直都在发生,但我们可以在内部复制它。该应用程序也以同样的方式被抛弃——也没有泄漏报告——我们一直在努力追踪它,但到目前为止还没有任何运气。这确实很烦人。还没有确定的消息,但我最近更新了针对iOS5的编译,这需要切换到LLVM(因为最新的xcode至少在前端转储了gcc)。我改用纯LLVM3(相同的优化选项),并注意到从那时起它就没有在我的测试设备上被抛弃。我们刚刚部署了一个更新,所以我们正在等待报告是否减少。经过几周的测试,我们没有收到报告,也无法在切换到LLVM 3后复制崩溃。我们确实在升级过程中做了一些代码更改,所以可能是我无意中修复了一个问题,但它们都是良性的,所以我将这归因于iOS上GCC中的优化缺陷(尽管我不能让它更具体。:-P)。我只是使用-Os,没有特别添加或删除标志。看起来-ffast math仅使用-Ofast打开。谢谢你的意见。我开始怀疑是否有人会回答-PNo prob似乎是一个难解之谜,看起来如果某个地方发生泄漏,并且无法足够快地释放内存,那么可能您的一个对象被保存在system one中,因此当您释放副本时system one仍会杀死您的应用程序。当问题发生时,您是否尝试过不使用调试器而只查看控制台?有肌萎缩侧索硬化症吗
Incident Identifier: OMIT
CrashReporter Key:   OMIT
Hardware Model:      iPhone2,1
OS Version:          iPhone OS 4.3.5 (8L1)
Kernel Version:      Darwin Kernel Version 11.0.0: Sat Jul  9 00:54:20 PDT 2011; root:xnu-1735.47~1/RELEASE_ARM_S5L8920X
Date:                2011-10-01 09:50:03 +0100
Time since snapshot: 41 ms

Free pages:        710
Wired pages:       10076
Purgeable pages:   416
Largest process:   SpringBoard

Processes
         Name                 UUID                    Count resident pages
          MY_APP <f01c118296fe329899981e37e00c6cc3>    2258 (jettisoned) (active)
MobileMusicPlaye <c26fcc882cf130f09979f9ca08521fce>    1024 (jettisoned)
     MobilePhone <d3042adf269630daa58e43d0ba5eeb54>     649 (jettisoned)
      MobileMail <573ff3a3e09334c7aa51d8568c845e11>     716 (jettisoned)
             lsd <3fafa485b73836acb973d50feabd963a>     148
         notifyd <9966082842de313a8e05a001c783faf4>     117
        BTServer <01550e9527353eecae41ebee0f889603>     182
      CommCenter <7d9446365b4836968ae361626ef8f939>     440
     SpringBoard <5c55c6fba0843b0e924e116413b8c9d4>    3305 (active)
      accessoryd <d30e340e36df356bbde3347a6ed1ef87>     160 (jettisoned)
            apsd <47ffc9ce9f84371588bd3f937aaa20bb>     278
         configd <a6d457fca42732d9ba809d03a2b3e3ae>     427
   fairplayd.N88 <46c1d3fbe93a370089f783f96a5cf531>     177
       locationd <9088e845dcbe37d890c8758655bf34c6>    1065
   mDNSResponder <caf94711b8093dc5bc5736306f8ae818>     200
    mediaremoted <21af791e80823c9f90f0be2b77a3d885>     251
    mediaserverd <c731263114c33a07aef7bccdcf667271>    1512
       lockdownd <1c7f2b41744c35dc92f679e90a73e240>     278
         syslogd <d81669e7bdb93f9b9012020beac826f4>      99
usbethernetshari <25130d2f9a0334e3ae28780250343144>     110
         launchd <e2d41e07a0743a089eadbae765709c82>      88

**End**