如何高效iOS文件系统处理单个文件夹中的大量文件

And*_*jov 5 filesystems ios

如果我有大量的文件(nx 100K个别文件)什么是最有效的方式将它们存储在iOS文件系统中(从路径的角度来看访问文件的速度)?我应该将它们全部转储到单个文件夹中还是在多级文件夹层次结构中将它们分解.

基本上这有三个问题:

  1. 文件访问时间取决于"兄弟"文件的数量(我认为答案是肯定的.如果我是正确的文件名被组织成b树,那么它应该是O(log n))?
  2. 沿着路径从一个文件夹遍历到另一个文件夹有多贵(是m*O(log nm) - 其中m是路径中的组件数,nm是每个路径组件中"兄弟姐妹"的数量)?
  3. 什么在文件系统级别缓存以使上述假设不正确?

如果有人对这类问题有直接经验并且可以分享一些现实生活结果,那将会很棒.

您的评论将受到高度赞赏

jam*_*mie 3

这似乎可以提供相关的硬数据:

文件系统与核心数据:图像缓存测试

http://biasedbit.com/blog/filesystem-vs-coredata-image-cache

结论:

正如预期的那样,文件系统缓存更快。核心数据在存储时很快落后(稍微慢一些),但在执行单个随机访问时加载时间要长得多。

对于这样一个简单的情况,核心数据功能确实无法带来回报,因此请坚持使用文件系统版本。