gpt4 book ai didi

c++ - Boost 文件系统非常慢?

转载 作者:IT老高 更新时间:2023-10-28 21:34:09 24 4
gpt4 key购买 nike

我目前正在学习 Boost 框架,我发现了如何列出我系统上的所有文件夹和文件,使用

#include <boost/filesystem.hpp>
#include <boost/foreach.hpp>
#include <iostream>
using namespace std;
int main()
{
for ( boost::filesystem::recursive_directory_iterator end, dir("C:\\");
dir != end; ++dir ) {
cout << *dir << std::endl;
}
return 0;
}

但我遇到的唯一问题是这个过程有多慢......我做错了什么还是只是微软的 .NET 版本列出所有文件要快得多?谢谢!

最佳答案

您的问题意味着比较,但您只提供了一半的信息,即您要进行比较的代码在哪里?有很多方法可以 boost 您提供的代码的性能,其中一些已在上面的注释中提供。

也就是说,您首先观察到性能差异的原因很可能可以追溯到运行 C# 代码的非常托管的环境。您的文件系统很可能在 .Net 的内存空间中被索引,而您的 C++ 代码和 Boost 库直接进入文件系统,并且没有受益于 Microsoft 试图使 .NET 环境更高效的方法之一。如果没有效率,C# 代码似乎更有可能比相同质量的已编译 C++ 代码慢几个数量级。

关于c++ - Boost 文件系统非常慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13897401/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com