Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1009)

Side by Side Diff: pylib/gyp/generator/ninja.py

Issue 24106005: Add cpu_limit to ninja link pool on windows. (Closed) Base URL: http://gyp.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 Google Inc. All rights reserved. 1 # Copyright (c) 2013 Google Inc. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import copy 5 import copy
6 import hashlib 6 import hashlib
7 import multiprocessing 7 import multiprocessing
8 import os.path 8 import os.path
9 import re 9 import re
10 import signal 10 import signal
(...skipping 1488 matching lines...) Expand 10 before | Expand all | Expand 10 after
1499 ("ullAvailPageFile", ctypes.c_ulonglong), 1499 ("ullAvailPageFile", ctypes.c_ulonglong),
1500 ("ullTotalVirtual", ctypes.c_ulonglong), 1500 ("ullTotalVirtual", ctypes.c_ulonglong),
1501 ("ullAvailVirtual", ctypes.c_ulonglong), 1501 ("ullAvailVirtual", ctypes.c_ulonglong),
1502 ("sullAvailExtendedVirtual", ctypes.c_ulonglong), 1502 ("sullAvailExtendedVirtual", ctypes.c_ulonglong),
1503 ] 1503 ]
1504 1504
1505 stat = MEMORYSTATUSEX() 1505 stat = MEMORYSTATUSEX()
1506 stat.dwLength = ctypes.sizeof(stat) 1506 stat.dwLength = ctypes.sizeof(stat)
1507 ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat)) 1507 ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat))
1508 1508
1509 return max(1, stat.ullTotalPhys / (4 * (2 ** 30))) # total / 4GB 1509 mem_limit = max(1, stat.ullTotalPhys / (4 * (2 ** 30))) # total / 4GB
1510 cpu_limit = multiprocessing.cpu_count()
scottmg 2013/09/11 20:09:06 that does if sys.platform == 'win32':
1511 return min(mem_limit, cpu_limit)
1510 elif sys.platform.startswith('linux'): 1512 elif sys.platform.startswith('linux'):
1511 with open("/proc/meminfo") as meminfo: 1513 with open("/proc/meminfo") as meminfo:
1512 memtotal_re = re.compile(r'^MemTotal:\s*(\d*)\s*kB') 1514 memtotal_re = re.compile(r'^MemTotal:\s*(\d*)\s*kB')
1513 for line in meminfo: 1515 for line in meminfo:
1514 match = memtotal_re.match(line) 1516 match = memtotal_re.match(line)
1515 if not match: 1517 if not match:
1516 continue 1518 continue
1517 # Allow 8Gb per link on Linux because Gold is quite memory hungry 1519 # Allow 8Gb per link on Linux because Gold is quite memory hungry
1518 return max(1, int(match.group(1)) / (8 * (2 ** 20))) 1520 return max(1, int(match.group(1)) / (8 * (2 ** 20)))
1519 return 1 1521 return 1
(...skipping 582 matching lines...) Expand 10 before | Expand all | Expand 10 after
2102 arglists.append( 2104 arglists.append(
2103 (target_list, target_dicts, data, params, config_name)) 2105 (target_list, target_dicts, data, params, config_name))
2104 pool.map(CallGenerateOutputForConfig, arglists) 2106 pool.map(CallGenerateOutputForConfig, arglists)
2105 except KeyboardInterrupt, e: 2107 except KeyboardInterrupt, e:
2106 pool.terminate() 2108 pool.terminate()
2107 raise e 2109 raise e
2108 else: 2110 else:
2109 for config_name in config_names: 2111 for config_name in config_names:
2110 GenerateOutputForConfig(target_list, target_dicts, data, params, 2112 GenerateOutputForConfig(target_list, target_dicts, data, params,
2111 config_name) 2113 config_name)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698