Difference between revisions of "Improving Build Times"
(→Introduction) |
(→Using a compiler cache) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 20: | Line 20: | ||
make -s -f client.mk | make -s -f client.mk | ||
+ | |||
+ | == Using a compiler cache == | ||
+ | |||
+ | Using a compiler cache, source code can be compiled once and stored in a disk cache, thereby eliminating the need to compile it again in future. One such tool is [http://ccache.samba.org/ ccache], which uses hashes to determine if previously cached compiler output can replace a subsequent compilation. According to its developers, ccache "often results in a 5 to 10 times speedup in common compilations." | ||
+ | |||
+ | Usinc ccache for Mozilla development is a safe and effective way to reduce build times on Linux and Mac OS X. | ||
+ | |||
+ | === Linux === | ||
+ | |||
+ | ==== Ubuntu ==== | ||
+ | |||
+ | On Ubuntu, simply install the '''ccache''' package: | ||
+ | |||
+ | sudo apt-get install ccache | ||
+ | |||
+ | === Mac OS X === | ||
+ | |||
+ | On Mac you can use [http://www.macports.org/ MacPorts] to install ccache: | ||
+ | |||
+ | sudo port install ccache | ||
+ | |||
+ | After installing, you will need to symlink your compilers in order to have them work with ccache: | ||
+ | |||
+ | for X in cc gcc g++ c++ ; do ln -s /usr/bin/$X /opt/local/bin ; done |
Latest revision as of 11:09, 12 February 2008
Contents
Introduction
There are a number of things you can do in order to improve build times. These include:
- Using parallel invocations of make
- Suppressing compiler output on the console
- Using a compiler cache
Using parallel invocations of make
While make is set to run a single job serially by default, it able to run multiple jobs in parallel. You tell make to run parallel jobs (in the following example 4 jobs) by adding the following make option to your .mozconfig file:
mk_add_options MOZ_MAKE_FLAGS=-j4
Using the value 4 is a safe default on most dual core systems. Even on a single core machine, a value of j2 is a reasonable choice so that make isn't constantly blocked on I/O bound operations. You can experiment with different numbers of jobs for your particular hardware configuration.
Suppressing compiler output on the console
Normally, make prints a lot of information to the console. While this information is helpful for debugging compilation errors, it tends to slow down compile time. You can ask that make suppress this output, to be silent by means of the -s switch:
make -s -f client.mk
Using a compiler cache
Using a compiler cache, source code can be compiled once and stored in a disk cache, thereby eliminating the need to compile it again in future. One such tool is ccache, which uses hashes to determine if previously cached compiler output can replace a subsequent compilation. According to its developers, ccache "often results in a 5 to 10 times speedup in common compilations."
Usinc ccache for Mozilla development is a safe and effective way to reduce build times on Linux and Mac OS X.
Linux
Ubuntu
On Ubuntu, simply install the ccache package:
sudo apt-get install ccache
Mac OS X
On Mac you can use MacPorts to install ccache:
sudo port install ccache
After installing, you will need to symlink your compilers in order to have them work with ccache:
for X in cc gcc g++ c++ ; do ln -s /usr/bin/$X /opt/local/bin ; done