有谁知道什么os.path.exists函数的复杂性是在与ext4文件系统的Python?
Ext4 (和Ext3 )使用的底层目录结构与Ext2完全相同。 Ext3增加了日志功能, Ext4改进了日志功能。 日记与您的问题无关。
最初Ext2用来存储那个列表,但是对于大型目录当然是低效的。 所以现在已经改成了名为HTree的B-树的调整版本。 与标准B树不同,HTree具有不变的深度,并且使用每个节点的散列图,因此查找复杂度为O(1) 。
我们称之为“HTree”的Ext2方案使用32位散列作为密钥,其中每个散列密钥引用存储在叶块中的一系列条目。 由于内部节点只有8个字节,所以HTrees具有非常高的扇出因子(使用4K索引块可以引用超过500个块),两级索引节点足以支持超过1600万个52字符的文件名。 为了进一步简化实施,HTrees是恒定的深度(一个或两个层次)。 高扇出因子和使用文件名散列的组合,加上特定于文件系统的秘密作为HTree的搜索关键字,避免了执行平衡操作的需要。
请参阅: http : //ext2.sourceforge.net/2005-ols/paper-html/node3.html
机会很好,复杂性是O(n)
其中n是文件系统的深度(例如/将有n = 1,/某事n = 2,…)