我们看到一个奇怪的崩溃,看起来iOS在收到2级内存警告后放弃了我们的app和mediaserverd.在播放DRM内容(包括但不限于PlayReady加密内容)大约7-8分钟时,即使我们重新启动了设备而没有在后台运行其他应用程序,也会发生这种情况.然而,这并不是一致的,我们有时可以完成相同的内容(整个2小时的电影),背景中有大量内存繁重的应用程序,没有任何问题.
我们在运行iOS 5.1和5.1.1的iPhone 3GS,4和4S设备上看到了这一点,尽管它在3GS上看起来最为突出.应用程序将以"分段故障11"或"信号9"终止.分段故障11可以指不良存储器访问或低存储器,而信号9指的是低存储器终止.
我们使用静态分析仪和仪器来查找和修复任何泄漏,泄漏仪器中没有任何警报显示.
在使用Memory Monitor仪器分析播放时,我们发现当我们开始流式传输时可用物理内存会大幅减少,这在一定程度上是可以预期的.当应用程序/操作系统正常运行时,当内存变得太低时,其他应用程序将从后台删除,但偶尔可用的物理内存将继续下降,直到操作系统杀死我们的应用程序.尽管我们偶尔会收到低内存日志,但不会生成崩溃日志,如下所示:
Incident Identifier: 13839D5B-D280-40D8-8C67-6EE3D61394C3
CrashReporter Key: d3746ff556543d6a94e067d82c8fb379a285f543
Hardware Model: iPhone2,1
OS Version: iPhone OS 5.1.1 (9B206)
Kernel Version: Darwin Kernel Version 11.0.0: Sun Apr 8 21:50:49 PDT
2012; root:xnu-1878.11.10~1/RELEASE_ARM_S5L8920X
Date: 2012-06-28 14:09:56 -0400
Time since snapshot: 104 ms
Free pages: 712
Active pages: 1433
Inactive pages: 1012
Throttled pages: 49925
Purgeable pages: 0
Wired pages: 11870
Largest process: SpringBoard
Processes
Name UUID Count resident pages
launchd <5fec01c378a030a8bd23062689abb07f> 79
securekeyvaultd. <78f602d3604c3bf487a27a288dec3bbb> 156
MYAPP <285e46965a91381dad0661443c8be3eb> 4035 …Run Code Online (Sandbox Code Playgroud)