我正在阅读GNU make手册,我有一个问题..
关于并行执行,我不会得到-j
选项和-l
选项之间的差异。
据我了解,他们在限制工作人数方面具有相同的作用。 但是手册告诉我两种选择是不同的。
请回答。谢谢!
答案 0 :(得分:2)
如上所述,man make
非常明确,如果您知道load-average
的含义,例如在superuser question中进行了总结。要解释文档,
-j N
会让make
尝试并行启动N
个命令,无论系统上运行的是什么。-l N
只有当make
(即在过去几分钟内尝试获取一些CPU时间的进程的平均数量)小于load-average
时,才会让N
尝试启动新命令require 'googleauth'
require 'google/apis/drive_v2'
Drive = Google::Apis::DriveV2
upload_source = "/User/my_user_name/hacking.txt"
drive = Drive::DriveService.new
# Drive::AUTH_DRIVE is equal to https://www.googleapis.com/auth/drive
drive.authorization = Google::Auth.get_application_default([Drive::AUTH_DRIVE])
file = drive.insert_file({title: 'hacking.txt'}, upload_source: upload_source)
。因此,它对于与编译并行运行的其他任务更加友好。答案 1 :(得分:0)
默认情况下启用1个作业。如果要使用所有CPU /核心,请使用-j X. 如果您担心机器过载,请添加-l Y