0

我正在 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);        
}
4

1 回答 1

3

性能向导根本不会优化您的代码。它测量代码的执行——取决于你的配置,通过检测代码(降低效率但更准确的监控)。它是一种工具,您可以使用它来决定要检查代码的哪些区域以进行优化——算法的人工优化,而不是指令的编译器优化。

于 2012-05-20T11:18:15.587 回答