2012-07-20 22 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