autoninja: increase parallelism for non-HT cpu
M1 mac seems to have capacity to build with higher parallelism.
This also remove limit in macOS.
Bug: 1317620
Change-Id: I4460915c405cbb27ed977dcee631adb8753f2335
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/3596361
Commit-Queue: Takuto Ikuta <tikuta@chromium.org>
Auto-Submit: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Junji Watanabe <jwata@google.com>
Reviewed-by: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Philipp Wollermann <philwo@google.com>
Reviewed-by: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
diff --git a/autoninja.py b/autoninja.py
index 28f9ff3..746ef69 100755
--- a/autoninja.py
+++ b/autoninja.py
@@ -163,16 +163,20 @@
if not j_specified and not t_specified:
if use_goma or use_remoteexec:
args.append('-j')
- core_multiplier = int(os.environ.get('NINJA_CORE_MULTIPLIER', '40'))
+ default_core_multiplier = 80
+ if platform.machine() in ('x86_64', 'AMD64'):
+ # Assume simultaneous multithreading and therefore half as many cores as
+ # logical processors.
+ num_cores //= 2
+
+ core_multiplier = int(
+ os.environ.get('NINJA_CORE_MULTIPLIER', default_core_multiplier))
+
j_value = num_cores * core_multiplier
if sys.platform.startswith('win'):
# On windows, j value higher than 1000 does not improve build performance.
j_value = min(j_value, 1000)
- elif sys.platform == 'darwin':
- # On Mac, j value higher than 500 causes 'Too many open files' error
- # (crbug.com/936864).
- j_value = min(j_value, 500)
args.append('%d' % j_value)
else: