2012-07-12 99 views
2

有多种方法可以检查文件是否存在。C++,检查文件是否存在的最快方法?

我知道的选项是:

  1. boost::filesystem exists()
  2. access()
  3. stat()
  4. ifstream is_open()

有谁知道这些给出了最高的性能?

编辑:假设在/ dev/shm上运行,其中访问时间不是一个因素。

+9

我敢打赌,他们都是一样的。由于运行时间将由HD或SSD的查找延迟所支配。 – Mysticial 2012-07-12 00:29:36

+1

总是在您的条件下进行配置。我可以告诉你我认为最快的事情,但你不知道我是否会随机选择一个答案,或者我用来判断我的答案的条件与你的答案完全不同。 – 2012-07-12 00:31:25

+0

让我们假设在Linux机器上运行/ dev/shm,所以不受访问速度的限制。 – user788171 2012-07-12 00:32:31

回答

7

此处的运行时间将由切换到内核模式和操作文件系统驱动程序来控制 - 即使忽略磁盘时间。他们中的任何一个都不可能提供卓越的性能。最好挑选一个提供最佳界面的设备 - boost::filesystem

相关问题