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

发布于 2024-11-10 08:11:41 字数 60 浏览 0 评论 0原文

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

Does anyone know what the complexity of the os.path.exists function is in python with a ext4 filesystem?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

伴我心暖 2024-11-17 08:11:41

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

Underlying directory structure used by Ext4 (and Ext3) is exactly the same as in Ext2. Ext3 adds journaling, Ext4 improves that journaling. Journaling is irrelevant to your question.

Originally Ext2 used to store that as list, but that of course was inefficient for large directories. So it's has been changed to tweaked version of B-tree called HTree. Unlike standard B-tree, HTree has constant depth and uses hash-map per node, thus it's lookup complexity is O(1).

Ext2's scheme, which we dubbed
"HTree", uses 32-bit hashes for keys,
where each hash key references a range
of entries stored in a leaf block.
Since internal nodes are only 8 bytes,
HTrees have a very high fanout factor
(over 500 blocks can be referenced
using a 4K index block), two levels of
index nodes are sufficient to support
over 16 million 52-character
filenames. To further simplify the
implementation, HTrees are constant
depth (either one or two levels). The
combination of the high fanout factor
and the use of a hash of the filename,
plus a filesystem-specific secret to
serve as the search key for the HTree,
avoids the need for the implementation
to do balancing operations.

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

当梦初醒 2024-11-17 08:11:41

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

Chances are good that the complexity is O(n) with n being the depth in the filesystem (e.g. / would have n=1, /something n=2, ...)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文