RFR: 8283323: libharfbuzz optimization level results in extreme build times [v3]
Magnus Ihse Bursie
ihse at openjdk.java.net
Wed Mar 23 23:17:38 UTC 2022
> [JDK-8247872](https://bugs.openjdk.java.net/browse/JDK-8247872) (upgrade HarfBuzz to 2.7.2) caused build time to go up with 24 seconds on my reference linux machine. This was one of the four culprits that caused a 25-30% build time regression over the last two years.
>
> The problem here was that the new HarfBuzz code caught really bad behaviour from gcc when compiling with optimizations. The official HarfBuzz build does not use any -O flags at all for gcc, so presumably the HarfBuzz team is:
>
> a) not thinking compiler optimization is important for the performance of this library, and
> b) unaware that their code causes such a headache for gcc.
>
> (Other compilers fare much better: visual studio makes no difference at all, and for clang just a small regression was observed.)
>
> The current optimization level was introduced by [JDK-8255790](https://bugs.openjdk.java.net/browse/JDK-8255790), which were really about moving libharfbuzz compilation back into libfontmanager. I could find no comments/discussion relating to the change of optimization level, so I assume it was incidental, and just seemed good at the time.
>
> This patch changes the optimization level to `SIZE` (which is the closest thing we have to no optimization level) on gcc.
Magnus Ihse Bursie has updated the pull request incrementally with one additional commit since the last revision:
Update comment to show we don't care about these files.
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/7919/files
- new: https://git.openjdk.java.net/jdk/pull/7919/files/b491f6fb..99642af3
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7919&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7919&range=01-02
Stats: 2 lines in 1 file changed: 1 ins; 0 del; 1 mod
Patch: https://git.openjdk.java.net/jdk/pull/7919.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/7919/head:pull/7919
PR: https://git.openjdk.java.net/jdk/pull/7919
More information about the build-dev
mailing list