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);
}