diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2014-03-26 22:30:38 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2014-03-26 22:30:38 +0000 |
commit | 54ff5d7323e6b110e8796cdd412a39b7d13fb66d (patch) | |
tree | 5be3730536450327733d775b82c832d3f363398c /bin/Makefile | |
parent | 1632bf1a88ce60fd335ccb030d1868db6f2f279f (diff) | |
download | src-test-54ff5d7323e6b110e8796cdd412a39b7d13fb66d.tar.gz src-test-54ff5d7323e6b110e8796cdd412a39b7d13fb66d.zip |
Add a SUBDIR_PARALLEL option to bsd.subdir.mk, to allow make to process
all the SUBDIR entries in parallel, instead of serially. Apply this
option to a selected number of Makefiles, which can greatly speed up the
build on multi-core machines, when using make -j.
This can be extended to more Makefiles later on, whenever they are
verified to work correctly with parallel building.
I tested this on a 24-core machine, with make -j48 buildworld (N = 6):
before stddev after stddev
======= ====== ======= ======
real time 1741.1 16.5 959.8 2.7
user time 12468.7 16.4 14393.0 16.8
sys time 1825.0 54.8 2110.6 22.8
(user+sys)/real 8.2 17.1
E.g. the build was approximately 45% faster in real time. On machines
with less cores, or with lower -j settings, the speedup will not be as
impressive. But at least you can now almost max out a machine with
buildworld!
Submitted by: jilles
MFC after: 2 weeks
Notes
Notes:
svn path=/head/; revision=263778
Diffstat (limited to 'bin/Makefile')
-rw-r--r-- | bin/Makefile | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/bin/Makefile b/bin/Makefile index e4bc281db6383..63d96fedbdfe2 100644 --- a/bin/Makefile +++ b/bin/Makefile @@ -60,4 +60,6 @@ SUBDIR+= tests SUBDIR:= ${SUBDIR:O} +SUBDIR_PARALLEL= + .include <bsd.subdir.mk> |