[
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)