Hi all,
I've noticed that a number of packages include -j2 or -j4 when running
make.
AFAIK, there is absolutely no point in using -j2 except on systems that
have more than one processor, which is not that many in the MacOS X
world. Almost all make tasks should be cpu or disk io intensive, so
having more tasks running than the system can service at one will
simply result in additional memory use and contention (especially if
memory is low) and additional context switches. This will simply _slow
the builds down_.
In fact, in many cases -j2 isn't useful even on multi cpu boxes because
of IO bottlenecks - the make tasks have to be either mostly cpu
intensive (not IO) or the IO system has to be quite efficient. I've
even noticed some "make -j4 install" targets, which is ridiculous since
install is almost always IO bound.
I would highly doubt many users systems would be dual processor (let
alone 4-way, which would be needed for -j4), so I really wonder why
developers are using these flags? If developers really think they need
to run concurrent make processes, then perhaps there should be an
option like %c (for the number of cpu's) in the package info file?
That way users with only one cpu wont suffer.
Sorry for being so blunt about this, but I've just had my powerbook
grind to a halt a couple of times and I finally figured out that this
was the problem (I was building qt3, and one c++ compile process takes
up enough memory as it is - with 4 I was down to only 17% actual cpu
usage and about 10000 page in/outs per second, which is useless).
Please feel free to tell my why I'm wrong - but I've had a fair bit of
experience with build systems so I think I'm right on this one.
Regards,
Chris Leishman
# egrep -r 'make.*-j[2-9]' 10.2/*stable
10.2/stable/crypto/finkinfo/kdebase3-ssl-3.0.7-3.info: make -j2
10.2/stable/crypto/finkinfo/kdelibs3-ssl-3.0.7-4.info: make -j2
10.2/stable/main/finkinfo/kde/arts-1.1.0-3.info: make -j2
10.2/stable/main/finkinfo/kde/kdeartwork3-3.0.7-3.info: make -j2
10.2/stable/main/finkinfo/kde/kdebase3-3.0.7-3.info: make -j2
10.2/stable/main/finkinfo/kde/kdeedu3-3.0.7-3.info: make -j2
10.2/stable/main/finkinfo/kde/kdegames3-3.0.7-5.info: make -j2
10.2/stable/main/finkinfo/kde/kdegraphics3-3.0.7-3.info: make -j2
10.2/stable/main/finkinfo/kde/kdelibs3-3.0.7-4.info: make -j2
10.2/stable/main/finkinfo/kde/kdenetwork3-3.0.7-3.info: make -j2
10.2/stable/main/finkinfo/kde/kdesdk3-3.0.7-3.info: make -j2
10.2/stable/main/finkinfo/kde/kdetoys3-3.0.7-3.info: make -j2
10.2/stable/main/finkinfo/kde/kdeutils3-3.0.7-3.info: make -j2
10.2/stable/main/finkinfo/kde/kio-kmd-0.2-3.info: make -j2
10.2/stable/main/finkinfo/kde/koffice-1.2.0-3.info: make -j2
10.2/stable/main/finkinfo/kde/mosfet-liquid-0.9.5-6.info: make -j2
10.2/stable/main/finkinfo/x11/qt3-3.0.5-8.info: make -j4
INSTALLPREFIX=%p
10.2/stable/main/finkinfo/x11/qt3-3.0.5-8.info: make -j4 install
INSTALL_ROOT=%d INSTALLPREFIX=%p
10.2/unstable/crypto/finkinfo/kdebase3-ssl-3.0.7-3.info: make -j2
10.2/unstable/crypto/finkinfo/kdelibs3-ssl-3.0.7-3.info: make -j2
10.2/unstable/main/finkinfo/kde/arts-1.1.0-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdbg-1.2.5-4.info: make -j2
10.2/unstable/main/finkinfo/kde/kdeartwork3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdebase3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdeedu3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdegames3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdegraphics3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdelibs3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdenetwork3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdesdk3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdetoys3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kdeutils3-3.0.7-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kio-kmd-0.2-3.info: make -j2
10.2/unstable/main/finkinfo/kde/koffice-1.2.0-3.info: make -j4
10.2/unstable/main/finkinfo/kde/kxine-0.5-0.20020924.1.info: make -j4
10.2/unstable/main/finkinfo/kde/mosfet-liquid-0.9.5-6.info: make -j2
10.2/unstable/main/finkinfo/x11/qt3-3.0.5-7.info: make -j4
INSTALLPREFIX=%p
10.2/unstable/main/finkinfo/x11/qt3-3.0.5-7.info: make -j4 install
INSTALL_ROOT=%d INSTALLPREFIX=%p
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel
- Re: [Fink-devel] -j[2..] in package builds Chris Leishman
- Re: [Fink-devel] -j[2..] in package builds Ben Hines
- Re: [Fink-devel] -j[2..] in package builds Justin Hallett
- Re: [Fink-devel] -j[2..] in package builds Chris Leishman
- Re: [Fink-devel] -j[2..] in package builds Jeremy Erwin
- Re: [Fink-devel] -j[2..] in package bu... Chris Leishman
- Re: [Fink-devel] -j[2..] in packa... Wiggins d'Anconia
- Re: [Fink-devel] -j[2..] in packa... Benjamin Reed
- Re: [Fink-devel] -j[2..] in package builds Carsten Klapp
- Re: [Fink-devel] -j[2..] in package builds Randal L. Schwartz
