On Mon, Dec 11, 2023 at 4:57 PM William Bader <[email protected]> wrote:
>
> Some Linux systems have ionice for I/O. At least for a reasonable number of 
> processes, nice and ionice allow jobs to get the full resources of the server 
> when it is otherwise idle without impacting interactive response for users. 
> If the builds use make -j or ninja or something similar that parallelizes the 
> steps of the build, is there much advantage to running several builds at 
> once, considering that it would need multiple copies of the git repositories 
> and that include files and object files might get pushed out of disk cache or 
> ccache by the competing builds?

Yes if make -j then using GNU parallel may not be an advantage, but
it's still pretty common to have setups where .NOTPARALLEL is used or
where it's not obvious that parallel builds are safe, and ./configure
isn't parallel at all as far as I know and can be an annoying chunk,
and very IO-bound.  I guess there might be cases where GNU parallel
ends up worse but it's a pretty safe bet compared to parallel build.

It also seems possible that with a really good and trusted build
system (100% solid dependency graph, incremental linker etc.) it might
be possible to cp -a one commit to the next, check out the changes,
and rebuild incrementally, so that across most changes it would be
faster to not parallel.  But I've never had a build system I trust
quite enough to want to try that.

Britton

Reply via email to