gpt4 book ai didi

iphone - 流式传输视频时,iOS 应用程序被 mediaserverd 内存问题(泄漏?)杀死(丢弃)

转载 作者:可可西里 更新时间:2023-11-01 03:18:53 26 4
gpt4 key购买 nike

我们看到了一个奇怪的崩溃,在这个崩溃中,iOS 似乎在收到 2 级内存警告后放弃了我们的应用程序和 mediaserverd。它发生在流式传输 DRM 内容(包括但不限于 PlayReady 加密内容)播放大约 7-8 分钟时 - 即使我们重启设备且后台没有运行其他应用程序也是如此。然而,这种情况不会一直发生,有时我们可以在后台使用大量占用大量内存的应用程序来完成相同的内容(一整部 2 小时的电影),而不会出现任何问题。

我们在运行 iOS 5.1 和 5.1.1 的 iPhone 3GS、4 和 4S 设备上看到了这种情况,尽管它似乎在 3GS 上最为突出。该应用程序因“段错误 11”或“信号 9”而终止。段错误 11 可以指错误的内存访问或低内存,信号 9 指低内存终止。

我们已经使用静态分析仪和仪器来查找和修复任何泄漏,并且泄漏仪器中没有显示任何令人担忧的信息。

使用 Memory Monitor instrument 分析回放时,我们发现开始流式传输时可用物理内存急剧减少,这在一定程度上是意料之中的。当应用程序/操作系统运行正常时,其他应用程序会在内存变得太低时从后台删除,但有时可用物理内存会继续下降,直到操作系统终止我们的应用程序。没有生成崩溃日志,尽管我们偶尔会收到低内存日志,如下所示:

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 (jettisoned) (active)
MobilePhone <8f3f3e982d9235acbff1e33881b0eb13> 749 (jettisoned)
mediaserverd <f03b746f09293fd39a6079c135e7ed00> 3670 (jettisoned)
networkd <80ba40030462385085b5b7e47601d48d> 145
apsd <e7a29f2034083510b5439c0fb5de7ef1> 260
SpringBoard <c74dc89dec1c3392b3f7ac891869644a> 4615 (active)
notifyd <f6a9aa19d33c3962aad3a77571017958> 170
BTServer <31e82dfa7ccd364fb8fcc650f6194790> 259
CommCenterClassi <041d4491826e3c6b911943eddf6aaac9> 421
aggregated <a12fa71e6997362c83e0c23d8b4eb5b7> 329
configd <ee72b01d85c33a24b3548fa40fbe519c> 324
fairplayd.N88 <ecb9495b29543b35a1f2e6c2b432528c> 168
fseventsd <914b28fa8f8a362fabcc47294380c81c> 164
iapd <0a747292a113307abb17216274976be5> 284
imagent <9c3a4f75d1303349a53fc6555ea25cd7> 412
locationd <cf31b0cddd2d3791a2bfcd6033c99045> 493
mDNSResponder <86ccd4633a6c3c7caf44f51ce4aca96d> 182
mediaremoted <327f00bfc10b3820b4a74b9666b0c758> 208
lockdownd <b06de06b9f6939d3afc607b968841ab9> 315
powerd <133b7397f5603cf8bef209d4172d6c39> 143
syslogd <7153b590e0353520a19b74a14654eaaa> 90
wifid <3001cd0a61fe357d95f170247e5458f5> 285
UserEventAgent <dc32e6824fd33bf189b266102751314f> 322
launchd <5fec01c378a030a8bd23062689abb07f> 120

End

根据我在这里看到的一些较旧的问题,似乎 mediaserverd 在以前的 iOS 版本中曾经有严重的内存泄漏问题。

这可能与问题有关吗?

我们如何防止这种情况发生?

如有任何想法、理论、反馈或类似问题,我们将不胜感激!

最佳答案

这只是瞎猜,你用的不是AVFoundation的AVPlayer吗?我遇到过这样的问题,结果证明我没有正确发布 AVPlayers。因此,对于每首歌曲,我都创建了一个新的 AVPlayer,如果您发布旧的,那很好,但我没有。我通过在 Instruments 中进行分配测试发现了这一点,并且看到 AVPlayer 在应该被释放后仍然存在。

关于iphone - 流式传输视频时,iOS 应用程序被 mediaserverd 内存问题(泄漏?)杀死(丢弃),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11851271/

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