python:os.path.exists与ext4文件系统的复杂性?

时间:2011-05-30 12:55:34

标签: python linux complexity-theory ext4

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

2 个答案:

答案 0 :(得分:6)

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

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

  

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

请参阅:http://ext2.sourceforge.net/2005-ols/paper-html/node3.html

答案 1 :(得分:0)

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