4

我们可以在 iOS 应用程序中安全地保持打开多少文件?

我们正在使用 FMOD 在我们的游戏中播放音频,显然有一个很好的策略是保持音频文件预先打开,但不加载到内存中,以便在需要时快速播放。

我没有在 Apple 的文档、SO 或其他任何地方找到有关每个进程限制而不是全局系统范围限制的信息。

这个在 iPad 上使用方便的 Python 环境的快速测试表明每个进程的限制是 250:

在此处输入图像描述

我认为我们保持在这个限制之下。但是我们怀疑存在打开文件失败的罕见问题情况。

是否还有系统范围的限制会在某些时候产生影响?

我认为我在该测试中发现的每个应用程序限制是在相关问题的评论中提出的,但由于没有任何声誉(第一篇文章),我无法在那里发表评论:在 iOS/iPhone 上:“打开的文件太多” :需要列出打开的文件(如 lsof)

编辑:

像这样在 OSX 上很容易检查限制。也许也可以在越狱的iOS设备上,或者以某种方式从使用Apple API的应用程序/启动该系统命令?

Tonis-MacBook-Pro:MacOS antont$ sysctl kern.maxfilesperproc
kern.maxfilesperproc: 10240
Tonis-MacBook-Pro:MacOS antont$ sysctl kern.maxfiles
kern.maxfiles: 12288
4

1 回答 1

2

我碰巧收到一条错误消息:

10 月 7 日 15:24:08 iPhone-5 mobile_house_arrest[4354]:最大打开文件数:78

这个堆栈溢出线程也提到了 78 作为数字: mobile_house_arrest[xxx] <Error>: Max open files: 78

因此,78 可能是这个数字,但是我没有任何“官方”来源可以确认,例如 Apple 文档。

iOS 上打开文件的最大数量

于 2013-10-07T13:32:24.253 回答