[ 
https://issues.apache.org/jira/browse/ACCUMULO-2762?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13986751#comment-13986751
 ] 

Christopher Tubbs commented on ACCUMULO-2762:
---------------------------------------------

I don't know which optimizations are available on all other 
platforms/compilers/environments, but on gcc 4.4.7 on CentOS, the difference 
between -O2 and -O3 are that -O3 includes -O2 optimizations, plus 
{{-fgcse-after-reload -finline-functions -fipa-cp-clone -fpredictive-commoning 
-ftree-vectorize -funswitch-loops}}

On gcc 4.8.2 on Fedora 19 and 20, -O3 also includes 
{{-ftree-loop-distribute-patterns -ftree-partial-pre -fvect-cost-model}}

In both cases, -O4 and higher are just aliases for -O3. I assume it's the same 
for other versions of gcc in other environments as well, so I can't tell if the 
suggestion to use -O4 or -O5 was a serious one. As far as I know, in general, 
the tradeoffs for enabling these optimizations are compile time and final 
library size. Since our native code is small, neither of those are very 
concerning, and we should enable as many optimizations as are available, unless 
there's a specific reason to exclude some.

(gcc 4.8.2 offers a lot more optimizations with -O2 than does 4.4.7 with -O2, 
so the larger difference is probably the compiler version used to build the 
native libraries, than the difference betwen -O2 and -O3 in a given version.)

> Use better compiler optimizations by default for native maps
> ------------------------------------------------------------
>
>                 Key: ACCUMULO-2762
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-2762
>             Project: Accumulo
>          Issue Type: Improvement
>          Components: native
>    Affects Versions: 1.6.0
>            Reporter: Christopher Tubbs
>            Priority: Minor
>              Labels: newbie
>             Fix For: 1.6.1, 1.7.0
>
>
> [A 
> comment|https://issues.apache.org/jira/browse/ACCUMULO-2749?focusedCommentId=13985780&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-13985780]
>  on ACCUMULO-2749 identified improved performance with better compiler 
> optimizations for native maps (-O3 instead of -O2).
> The native shared library is small, and enabling these additional 
> optimizations will not result in a significantly slower build, so I don't see 
> any reason why we should not enable better optimizations by default in the 
> Makefile, if we can identify them.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to