autoninja: don't set -l.
autoninja automatically sets -l <num_cores>. -l option makes ninja not invoke a new command if current CPU load average is above -l. However, as far as I investigated, -l <num_cores> make the build much slower than without -l especially on Linux & OSX machines with small numbers of cores. I should say -l decreases the build performance. When I build Chromium with Goma with the same -j with autoninja without -l, the load average goes more than the number of cores while keeping the machine working as usual. Also, ninja can invoke commands until the spike of command invocation is reflected to load average, -l might not mitigate for a machine to get stuck by too high load. Note that from what I understand from the implementation, Windows ninja's posix-compatible load average is always less than num_cores. i.e. -l <num_cores> won't limit the process invocation. https://github.com/ninja-build/ninja/blob/59849864592b421e0a8f993011e7e5c2ab27e77b/src/util.cc#L479 Let me make autoninja not set -l and bring better build performance on machines with small number of cores. Bug: b/117810340 Change-Id: I50f231f1a8976f8ecfc3a0c778f0f1ac98d3827f Reviewed-on: https://chromium-review.googlesource.com/c/1290611Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org> Reviewed-by: Bruce Dawson <brucedawson@chromium.org> Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
Showing
Please
register
or
sign in
to comment