linux - IO 操作 - 为什么不 cd?

标签 linux io directory cd

我不知道我在这方面是对还是错,但根据常识,command file 会比 command dir/快稍微文件命令 dir1/.../dirN/file

现在,假设这是真的,让我们考虑涉及处理大量目录中的大量文件的脚本和命令(例如编译您的 gentoo 内核)。如果脚本或程序足够智能,可以 cd 进入包含大量文件的目录,是否会提高性能?

在我看来,不再遵循这些指针数百或数千次所节省的时间可能会弥补 cd 进出目录所花费的时间。

现在我问我的问题:

  • 是否有可能提高性能?
  • 如果是,如何进行基准测试?
  • 如果可以进行基准测试,那么一个目录中必须有多少文件才能使 cd 进出该目录所花费的时间达到收支平衡?
  • 这是否也会影响 Java、PHP、Python 等的文件操作?

最佳答案

如果您执行 chdir,您将查找该目录并创建一个 dentry。以后对 dir/file 的调用应该已经有目录的目录。同样,如果您访问 dir/file1 和 dir/file2.... dir/fileN,则对 dir 的查找应该只发生一次。因此,我怀疑是否有性能提升。 'Make' 可能出于其他原因执行 chdir。

关于linux - IO 操作 - 为什么不 cd?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15319727/

相关文章:

linux - 我应该将下载 tarball 放在哪里?

linux - 使用 $() 将多个命令输出到变量 Bash 脚本中

c++ - Windows 与 Linux - 数学结果差异

java - 你如何在 Java 中 "empty"一个 StringWriter?

c++ - 如何在 Linux 中提高 SSD I/O 吞吐量并发性

file - 如果存在同名文件夹,则无法创建文件

Java 创建目录运行时 WebApp

java - 通过监听器或 Web 服务传递数据的正确机制是什么

c# - 将文件夹(目录)从一个位置 move 到另一个位置 - 不当行为

io - io_uring 到底是什么?