Difference between revisions of "BuildSpeedup"

From Apache OpenOffice Wiki
Jump to: navigation, search
(How to report build profile logs)
(Profile results)
Line 22: Line 22:
 
== Profile results ==
 
== Profile results ==
  
Here are some initial profile results. These were done on a HP development desktop with 4GB of RAM.
+
Here are some initial profile results. These were done on a HP development desktop with 4GB of RAM. Due to various reasons there is a margin of error in all results, but the largest culprits are pretty clear.
  
 
=== Full rebuild from scratch ===
 
=== Full rebuild from scratch ===

Revision as of 23:25, 15 February 2006

BuildSpeedup summary

Make the OO.o build system the coolest on the planet! OpenOffice is one of the largest and most interesting open source projects on the planet. The target of the BuildSpeedup project is to make the build system the coolest one around. A reliable and fast build system has several direct and inderect impacts, maybe most importantly it is the first thing a new contributor comes across when they pick up the project. Main main target audience is an external contributor running a mid level single CPU home computer.

How to report build profile logs

Thank you for sending in a build profile log. The more logs we have, the easier it is to focus our effort correctly. Here are the steps to producing a build log:

  1. Apply the latest patch from http://www.openoffice.org/issues/show_bug.cgi?id=60948 to your source tree
  2. in the dmake directory type "make clean; make". In the root directory type "./bootstrap"
  3. When building redirect stderr and stdout to the logfile. In tcsh "build --all |& tee myconfigdesc_build.log" will do the trick. You can alternatively use cat instead of tee to speed up the build slightly. You need to build in a single go and in a single process (no parallell building)
  4. Check that the log contains markers like "s target 1234 foo.obj". If not, then report
  5. Compress the log with zip/gz
  6. When you send in your log to mailto:kaib@openoffice.org please provide a short description of the build type:
    • Important configure options (like --with-lang=?)
    • OS/compiler/generic hardware description
    • No-change, partial or full build (we are especially looking for full builds)
    • External accelerators like ccache

Thank you again for contributing! --KaiB 16:25, 25 January 2006 (CET)

Profile results

Here are some initial profile results. These were done on a HP development desktop with 4GB of RAM. Due to various reasons there is a margin of error in all results, but the largest culprits are pretty clear.

Full rebuild from scratch

Time spent Target type (file extension)
33.2% C/C++ compilation (obj)
27% dmake/build.pl (time not attributed to any target)
22.0% Dependency generation (dpcc)
3.7% SDK installer (sdkoo_en-US)
1.3% Unknown, build related (last_target)
1.2% Linking (dll)
1.1% Openoffice installer (openoffice_en-US)

Running time: 62296 s targets: 45927 s 73%

Nothing changed rebuild

Basically profiling the build in a non-changed source tree.

Time spent Target type (file extension)
54.8% SDK installer (sdkoo_en-US)
19% dmake/build.pl (time not attributed to any target)
16.2% OpenOffice installer (openoffice_en-US)

Running time: 4209 s targets: 3431 s 81%

Notes

This is a workarea for ideas and notes regarding the speeding up of the build process. --KaiB 12:50, 16 January 2006 (CET)

Notes:

  • Newest dmake version: cws_src680_dmake43p01)
  • solenv/inc define global targets
  • potential modules: KaiB: transex3, tools, svx, binfilter - small to huge :)
  • helpcontent2 --with-lang=ALL (there are open issues on this already)
  • batched compiles
  • Interix instead of cygwin
  • dependency generation

Existing possibly useful Build Speed related tweaks:

  • export nodep=true
  • export NO_HIDS=true
  • build.pl -P parallel flag
  • dmake -P parallel flag and/or MAXPROCESS (cws_src680_dmake43p01 has fixes for some problems there)
  • dmake -s flag for less verbose output
  • for gcj users targetedaot workspace to ahead of time compile (only) HelpLinker and FCFGMerge java build tools

transex3

Started by tackling this small module. Initial full compile time was 137 sec.

Personal tools