2012-07-20 38 views
1

我對GCC還很新,我想知道如何使用某些性能分析開關。這些性能分析開關的適用用途是什麼?

我讀過爲-ftree-loop-ivcanon-fivopts(均未被-fprofiled-generate/use暗示)GCC手冊條目,雖然我有他們做什麼(相對的)好主意,我不知道我應該使用它們或如果我應該使用它們。

我應該在組合編譯中使用標誌嗎?

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?

最後,如果我使用這些時,我應該使用它們與生成開關或使用開關,或兩者?

回答

1

根據我的知識,只能在編譯時使用它們。

0

-ftree-loop-ivcanon-fivopts隻影響編譯,連接沒有,但我敢肯定,他們沒有做任何事情,除非你能夠優化,至少-O

你可能不需要使用它們,只需使用-O-O2-O3的調整,而不是個人或更具體的選擇,除非你知道你在想什麼,以實現和正在測量的精確效果。

如果您嘗試使用配置文件引導優化,那麼您一定要使用-O或更高的優化級別 - 如果您甚至不啓用基本優化(如內聯和不斷傳播。

+0

但是在gcc -O0中是默認的優化,所以如果你不需要特定的優化就不需要指定優化。 – neel 2012-07-20 13:40:03

+0

@neel,我不確定你的意思,但是'-O0'禁用所有的優化過程[「大多數優化只有在命令行設置了-O級別時才能使用,否則它們會被禁用,即使單個優化標誌被指定。「](http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html) – 2012-07-20 15:35:38