-
Bug
-
Resolution: Fixed
-
P4
-
9
-
None
-
b96
The current heuristic for figuring out what to default set the -j flag to make needs some tweaking.
In JDK 9, it looks at the amount of memory and the number of cpus in the system. It divides memory by 1024 to get a safe number of jobs that will fit into memory. The lower of that number and the number of cpus is then picked. The number is then scaled down to about 90% of the number of cpus to leave some resources for other activities. It is also capped at 16.
Since we now have the build using "nice" to make sure the build isn't bogging down the system, I see no reason to do the 90% scaling anymore. Also, the performance issues that forced us to cap at 16 have long been fixed, and even if we don't scale well beyond 16, we do still scale. So I propose we remove that arbitrary limitation too.
In JDK 9, it looks at the amount of memory and the number of cpus in the system. It divides memory by 1024 to get a safe number of jobs that will fit into memory. The lower of that number and the number of cpus is then picked. The number is then scaled down to about 90% of the number of cpus to leave some resources for other activities. It is also capped at 16.
Since we now have the build using "nice" to make sure the build isn't bogging down the system, I see no reason to do the 90% scaling anymore. Also, the performance issues that forced us to cap at 16 have long been fixed, and even if we don't scale well beyond 16, we do still scale. So I propose we remove that arbitrary limitation too.