【问题标题】:What is the block size of the iphone filesystem?iphone文件系统的块大小是多少?
【发布时间】:2009-08-22 06:31:42
【问题描述】:

我将 1000 字节的文件压缩成 300 字节的文件值得吗?或者文件系统空间消耗是否相同?

我正在考虑在我的 iPhone 上存储比 4k 少 10k 的文件,我很好奇通过压缩它们是否会节省空间。

谢谢,

卡尔

【问题讨论】:

  • iPhone 有 8GB+ 空间用于存放您的文件。您真的认为您将节省的那几个额外的 KB 会给您带来任何好处吗?
  • 这不一定总是空间问题 - 某些文件系统的性能更好或更差,具体取决于存储的文件如何与块对齐以及文件系统是否执行尾部打包。尤其是对于 10k+ 文件,如果文件系统配置正确,每个文件潜在的小额节省可以很快加起来。
  • 您为什么不尝试一下并在回答您的问题时分享您的经验?
  • 我正在接受适当的测试。作为旁注,iTunes 会谎报 iPhone 上有多少可用空间。我在一个有 37MB 可用空间的 iPhone 上安装了一个 30MB 的应用程序,然后解压了一个 80MB 的数据库文件。 (不过确实需要一段时间。)
  • 如何将大量的小文件合并成少量的大文件?那么你可以根据需要压缩它们......

标签: iphone


【解决方案1】:

iPhone 使用 HFSX 文件系统,用户分区上有 8k 块大小:

int main(int argc, char *argv[]) {
  struct statfs *mntbufp = NULL;
  getmntinfo(&mntbufp, 0);

  unsigned i, count = 0;

  count = getmntinfo(&mntbufp, 0);
  for (i=0; i<count; i++)
  {
    char *volName = mntbufp[i].f_mntonname;
    printf("Volume %s blocksize: %lu\n", volName, mntbufp[i].f_bsize);
  }

  return 0;
}

返回

Volume / blocksize: 8192
Volume /dev blocksize: 512
Volume /private/var blocksize: 8192
Volume /Developer blocksize: 4096

【讨论】:

  • 正是我要查找的内容,但出现编译错误:必须先从“Darwin.sys.mount”导入“struct statfs”的定义。
  • 添加#include
  • 基于@Louis-Gerbarg 的回答,我写了simple app 将有关已安装卷的信息打印到控制台。顺便说一句,在 iPhone 5s iOS9 32Gb 块大小为 4 kb。我猜,这取决于存储大小和文件系统类型(HFS 或 APFS)。
猜你喜欢
  • 2013-04-22
  • 2013-12-05
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2010-12-02
  • 2020-09-12
  • 1970-01-01
  • 2015-07-03
相关资源
最近更新 更多