我们可以在 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