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

Reply via email to