【问题标题】:python: complexity of os.path.exists with a ext4 filesystem?python:os.path.exists 与 ext4 文件系统的复杂性?
【发布时间】:2011-05-30 12:55:34
【问题描述】:

有谁知道带有 ext4 文件系统的 python 中 os.path.exists 函数的复杂性是什么?

【问题讨论】:

    标签: python linux complexity-theory ext4


    【解决方案1】:

    Ext4(和Ext3)使用的基础目录结构与Ext2中的完全相同。 Ext3 增加了日志功能,Ext4 改进了日志功能。日记与您的问题无关。

    最初 Ext2 用于将其存储为列表,但对于大型目录当然效率低下。因此,它已更改为 B 树的调整版本,称为 HTree。与标准 B-tree 不同,HTree 具有恒定的深度并使用每个节点的 hash-map,因此它的查找复杂度为 O(1)

    Ext2 的方案,我们称之为 “HTree”,使用 32 位散列作为键, 其中每个哈希键引用一个范围 存储在叶子块中的条目。 由于内部节点只有 8 个字节, HTree 具有非常高的扇出因子 (可参考500多个区块 使用 4K 索引块),两级 索引节点足以支持 超过 1600 万个 52 个字符 文件名。为了进一步简化 实现,HTrees 是常量 深度(一层或两层)。这 高扇出因子的组合 以及使用文件名的哈希, 加上一个文件系统特定的秘密 作为 HTree 的搜索键, 避免了实施的需要 做平衡操作。

    见:http://ext2.sourceforge.net/2005-ols/paper-html/node3.html

    【讨论】:

      【解决方案2】:

      复杂度很有可能是O(n),其中 n 是文件系统中的深度(例如 / 将具有 n=1,/something n=2,...)

      【讨论】:

        猜你喜欢
        • 2021-12-16
        • 2020-08-13
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-01-19
        • 2021-09-19
        • 1970-01-01
        相关资源
        最近更新 更多