You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2022/03/21 16:31:00 UTC
[jira] [Commented] (IMPALA-11110) Enable basic optimizations for debug builds
[ https://issues.apache.org/jira/browse/IMPALA-11110?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17509985#comment-17509985 ]
ASF subversion and git services commented on IMPALA-11110:
----------------------------------------------------------
Commit a5a9b1e3f9310f42785fb2d0459b80571e9fbb80 in impala's branch refs/heads/master from Joe McDonnell
[ https://gitbox.apache.org/repos/asf?p=impala.git;h=a5a9b1e ]
IMPALA-11110: Switch debug builds to use -Og
GCC's -Og applies optimizations that are compatible with
being debuggable. It is similar to -O1 and results
in a modest speed-up. This modifies the default debug
build to use -Og, so it is now more akin to a fastdebug
mode.
Even though -Og is intended to preserve debuggability,
optimization always impacts debuggability and -Og is
no exception. To enable the old behavior, this adds
a DEBUG_NOOPT build mode that retains the old
non-optimized behavior. Using the -debug_noopt flag
with buildall.sh enables this behavior.
Change-Id: Ie06c149c8181c90572b8668bd01dfd26c0a5971e
Reviewed-on: http://gerrit.cloudera.org:8080/18200
Tested-by: Impala Public Jenkins <im...@cloudera.com>
Reviewed-by: Laszlo Gaal (Cloudera) <la...@cloudera.com>
Reviewed-by: Csaba Ringhofer <cs...@cloudera.com>
> Enable basic optimizations for debug builds
> -------------------------------------------
>
> Key: IMPALA-11110
> URL: https://issues.apache.org/jira/browse/IMPALA-11110
> Project: IMPALA
> Issue Type: Improvement
> Components: Infrastructure
> Affects Versions: Impala 4.1.0
> Reporter: Joe McDonnell
> Assignee: Joe McDonnell
> Priority: Major
>
> Currently, Impala debug builds use no optimizations. Some optimizations can interfere with debuggability, and the debug builds prioritize debuggability. However, running without optimizations means the binary is much slower.
> GCC has a debug-friendly optimization level -Og, which enables optimizations that do not interfere with debugging. This may provide a way to get the debuggability needed while having faster runtimes. See [https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html]
> In testing this, the binaries are definitely faster. Core test runtimes are reduced by about 25 minutes. Exhaustive test runtimes are reduced by over an hour.
> The extra optimization enables compiler passes that produce more debugging information. This means that the binaries have more debug info, which make them larger. This extra information is likely related to variable tracking (i.e. fvar-tracking-assignments), which is recommended for maximum debuggability (but may not be strictly necessary for how we use it). See [https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html]
> {noformat}
> Binary size for impalad (unstripped)
> Without -Og: 519345880
> With -Og: 709527368
> Binary size for impalad (stripped)
> Without -Og: 164500024
> With -Og: 105873184{noformat}
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org