Boost filesystem incredibly slow?

后端 未结 3 1610
北海茫月
北海茫月 2021-02-19 07:07

I am currently in the process of learning the Boost framework, and I have found out how to list all folders and files on my system, using

#include 

        
相关标签:
3条回答
  • 2021-02-19 07:37

    Your question implies a comparison, but you've only provided half the information i.e. where is the code to which you are making the comparison? There are many ways you can increase the performance of the code you have supplied, some of which have been supplied in the comments above.

    That said, it's likely that the reason you are observing a performance difference in the first place can probably be traced to the very managed environment on top of which the C# codes runs. It's quite likely that your filesystem is indexed in .Net's memory space while your C++ code and the Boost library are going directly to the filesystem and not benefitting from one of the ways Microsoft has tried to make the .NET environment more efficient. Without the efficiencies, it seems more likely that C# code would be orders of magnatude slower than compiled C++ code of the same quality.

    0 讨论(0)
  • 2021-02-19 07:40

    The .NET version might be indexed and perhaps only needs to read filenames from a flat format. What you propose needs to open every single directory.

    0 讨论(0)
  • 2021-02-19 07:43

    It also depends how many files are present in the folder. If there are many files, then it does take a lot of time. Did you try with a folder containing very few files?

    0 讨论(0)
提交回复
热议问题