Please explain make -j to my little brain
martinko
martinkov at pobox.sk
Wed May 17 14:07:09 PDT 2006
Bill Moran wrote:
> On Mon, 15 May 2006 11:12:33 +0100
> Ashley Moran <work at ashleymoran.me.uk> wrote:
>
>> Hi
>>
>> I've read the following snippet out of the handbook hundreds of times and
>> still don't understand it. I even asked one of the developers I work with
>> and he was baffled too.
>>
>>> It is now possible to specify a -j option to make which will cause it to
>>> spawn several simultaneous processes. This is most useful on multi-CPU
>>> machines. However, since much of the compiling process is IO bound rather
>>> than CPU bound it is also useful on single CPU machines.
>> What I want to know is, if compiling is IO bound, and you increase the number
>> of simultaneous processes compiling your world, where do the extra processes
>> get data from if the IO bandwidth is all used.
>>
>> Have I misunderstood the term IO bound? Please help, I feel like a right
>> tool.
>
> The key to that quote is the placement of the term "much". As in "much of
> the compiling process" ... not all of it.
>
> Generally, while one process is waiting on disk IO, another can be using
> the CPU. As a result, you can get closer to 100% usage of the machine,
> which won't happen if you batch the whole thing.
>
>> Just as a side line... does anybody know the best -j value to build world on a
>> 4-core box?
>
> I generally quadruple the # of cores, so I'd use -j16. I couldn't tell you
> authoritatively what is _best_, though.
>
hi,
i remember from mailing lists there used to be a problem with using "-j"
while compiling kernel or world or ports or sth. is it resolved now pls?
cheers,
martin
More information about the freebsd-questions
mailing list