我正在 Visual Studio 2010 中编写一个 C++ 应用程序。我在性能向导下运行我的代码,它需要将近 17 秒。这些代码非常适合多线程,所以我添加了 openmp 指令。之后,我再次运行我的代码,也需要将近 17 秒。所以,我想知道那个性能向导做了什么来优化代码?它是否分析代码并使其成为多线程或简单地执行编译器优化?该向导如何优化代码?
编辑:我通过添加 /openmp 选项启用了编译器选项。我正在 为 指令使用#pragma omp parallel。我添加了并行部分代码。它没有瓶颈,循环迭代不相互依赖。
#pragma omp parallel for
for (int i = START; i < END; i++) {
solutionList[i] = new Solution(list[i]->solution, direction, i);
}