On Thu, Jan 27, 2011 at 03:12:49PM +0100, J. Roeleveld wrote:
> On Thursday 27 January 2011 15:05:25 YoYo Siska wrote:
> > On Thu, Jan 27, 2011 at 03:33:21PM +0200, Nikos Chantziaras wrote:
> > > On 01/27/2011 03:11 PM, Dale wrote:
> > > >[...]
> > > >I am using the -j option for the first time now. I'm updating KDE. It
> > > >seems to work fine. It doesn't scroll all the stuff like with a regular
> > > >emerges but this new rig is so fast, I can't read it anyway. I did have
> > > >a package to fail and it spit out the error for me to read.
> > > 
> > > You don't need that if you have MAKEOPTS set in your make.conf,
> > > which is preferred.  The -j option of emerge emerges multiple
> > > packages, while with MAKEOPTS set to "-j4" or whatever does a
> > > parallel build in the same package (meaning compiling multiple
> > > source files at the same time).
> > > 
> > > It's preferred because with "emerge -jN" the last package will only
> > > use one CPU, while with "-jN" in MAKEOPTS even the last package will
> > > use N CPUs.  Furthermore, emerge can't always build N packages at
> > > the same time because one can depend on the other, so it will have
> > > to wait until the dependency is built.
> > 
> > On the other hand, unpacking, configure and install stages are not
> > parallel and emerge can do those in parallel for different packages...
> > The best would be somewhere in the middle ;)
> > 
> > 
> > There are also the load-average options to -j, i.e.:
> > MAKEOPTS="-j -l5" emerge -j --load-average=5  ....
> > 
> > which makes make spawn parallel processes while load average is below 5
> > and the same for emerge spawning parallel ebuilds (when make isn't
> > parallel enough)
> > 
> > yoyo
> 
> Hmmm... didn't know about that one yet.
> Does that mean that by doing it like that, the emerge-process (and compile-
> processes) will try to keep the load average at 5 and if that is lower, it 
> will keep adding more processes?
> 


Yes.
It might not be perfect, but mostly it works pretty well.
Once make started 10 or so process, which ate all my ram, because I
forgot to reenable swap, when I was playing with something before that
:)

yoyo


Reply via email to