RESOLVED FIXED 148639
[CMake] Build with Debug Fission on by default on Debug builds
https://bugs.webkit.org/show_bug.cgi?id=148639
Summary [CMake] Build with Debug Fission on by default on Debug builds
Carlos Alberto Lopez Perez
Reported 2015-08-31 11:08:18 PDT
We are having some issues on the GTK Debug buildbots. The bots are running out of RAM sometimes. On bug 131177 support for building with Debug Fission was added. Now I suggest to enable this by default when building the Debug build. I have measured the memory usage of building with and without this option for the Debug build: * Without Debug fission: Max memory usage by the linker = 10.2 GB * With Debug fission: Max memory usage by the linker = 7.8 GB Not it only reduces the amount of RAM required to build WebKit in 2.4GB, but it also builds faster. Concerns about Debug Fission builds breaking ccache were sorted out with ccache 3.2.3 https://ccache.samba.org/releasenotes.html#_ccache_3_2_3
Attachments
Patch (1.53 KB, patch)
2015-08-31 11:46 PDT, Carlos Alberto Lopez Perez
no flags
Carlos Alberto Lopez Perez
Comment 1 2015-08-31 11:24:15 PDT
Some more stats: * Rebuilding the Debug build from ccache without Debug fission: - Time to build = 06m:42s - Size of WebKitBuild/Debug = 16GB * Rebuilding the Debug build from ccache with Debug fission: - Time to build = 04m:05s - Size of WebKitBuild/Debug = 8.9G The time to build is mostly linking time, since I'm rebuilding from previously generated ccache DB. And this is on a system with an SSD. On a system with a rotational media it will probably improve build times further. Its also nice that the size of the build output has been reduced (almost to half). This will help to save disk space also.
Carlos Alberto Lopez Perez
Comment 2 2015-08-31 11:46:16 PDT
Martin Robinson
Comment 3 2015-08-31 11:50:54 PDT
Can you comment on compiler requirements? Does our minimum supported compiler also support debug fission?
Carlos Alberto Lopez Perez
Comment 4 2015-08-31 12:07:47 PDT
(In reply to comment #3) > Can you comment on compiler requirements? Does our minimum supported > compiler also support debug fission? According to https://gcc.gnu.org/wiki/DebugFission it is implemented on GCC 4.7 We already require GCC 4.9, so this shouldn't be a problem. I also tested this with Clang (version 3.6) and it worked without problems.
Michael Catanzaro
Comment 5 2015-08-31 12:09:55 PDT
(In reply to comment #3) > Can you comment on compiler requirements? Does our minimum supported > compiler also support debug fission? Clang has supported debug fission for a while now. GCC has supported it since 4.7 [1] and nowadays we require 4.8 or 4.9, depending on who you ask :), so we're good. It makes debug builds dramatically faster, especially incremental builds, so I agree it should be on by default. [1] http://gcc.gnu.org/wiki/DebugFission
Carlos Alberto Lopez Perez
Comment 6 2015-08-31 13:28:37 PDT
Comment on attachment 260302 [details] Patch Clearing flags on attachment: 260302 Committed r189179: <http://trac.webkit.org/changeset/189179>
Carlos Alberto Lopez Perez
Comment 7 2015-08-31 13:28:44 PDT
All reviewed patches have been landed. Closing bug.
Note You need to log in before you can comment on or make changes to this bug.