问题描述
|
有人知道ext4文件系统的python中os.path.exists函数的复杂性吗?
解决方法
Ext4(和Ext3)使用的底层目录结构与Ext2中的完全相同。 Ext3添加了日记功能,而Ext4改进了该日记功能。日记与您的问题无关。
最初,Ext2曾经将其存储为列表,但是对于大型目录而言,它当然效率不高。因此,它已更改为B树的调整版本,称为HTree。与标准B树不同,HTree具有恒定的深度并在每个节点上使用哈希映射,因此其查找复杂度为O(1)。
Ext2的方案,我们称之为
\“ HTree \”,使用32位哈希作为密钥,
每个哈希键都引用一个范围
叶块中存储的条目数。
由于内部节点只有8个字节,
HTree具有很高的扇出系数
(可以引用超过500个块
使用4K索引块),两个级别的
索引节点足以支持
超过1600万个52个字符
文件名。为了进一步简化
实现,HTrees是常量
深度(一个或两个级别)。的
高扇出因子的组合
以及文件名哈希的使用,
加上特定于文件系统的秘密
充当HTree的搜索关键字,
避免了实施的需要
做平衡操作。
参见:http://ext2.sourceforge.net/2005-ols/paper-html/node3.html
, 复杂度为``0''的可能性很好,n为文件系统中的深度(例如/将具有n = 1,/ something n = 2,...)