1

私はまだ GCC にかなり慣れていないので、特定のプロファイリング スイッチをどのように正確に使用すればよいのか疑問に思っています。

と の GCC マニュアル エントリを読みました-ftree-loop-ivcanon(-fivoptsどちらも によって暗示されている-fprofiled-generate/useわけではありません)。それらが何をするかについて (比較的) 良い考えを持っていますが、それらをどこで使用すべきか、または使用する必要があるかどうかはわかりません。 .

複合コンパイルでフラグを使用する必要がありますか?

g++ Example.cxx -o Example.exe -Wall -ftree-loop-ivcanon -fivopts

総集編だけ?

g++ Example.cxx -o Example.o -c -Wall -ftree-loop-ivcanon -fivopts

それともリンクだけ?

g++ Example.o -o Example.exe -Wall -ftree-loop-ivcanon -fivopts

これらのフラグは、プロファイリングが有効になっている場合にのみ使用する必要がありますか? または -On で使用できますか?

最後に、プロファイリング時にこれらを使用する場合、generate スイッチまたは use スイッチ、またはその両方で使用する必要がありますか?

4

2 に答える 2

1

私の知る限り、これらはコンパイル時にのみ使用できます。

于 2012-07-20T04:22:09.543 に答える
0

-ftree-loop-ivcanonリンクではなくコンパイルに-fivoptsのみ影響しますが、最適化を有効にしない限り、少なくとも-O.

達成しようとしていることを正確に理解し、正確な効果を測定していない限り、個々のオプションまたはより具体的なオプションを微調整する代わりにor-Oを使用するだけで、おそらくそれらを使用する必要はありません。-O2-O3

プロファイルに基づく最適化を使用しようとしている場合は、間違いなく-Oまたはより高い最適化レベルを使用する必要があります。インライン化や定数伝播などの基本的な最適化を有効にしていなければ、プロファイル データに基づいて最適化するのは完全に時間の無駄です。

于 2012-07-20T11:44:52.010 に答える