make -j4是什么意思

方紫涵 2011-11-27 08:18:28
看书上说
1) make(1)只衍生一个作业//作业是什么意思?make(1) 是不是就是make的意思?
2) 在双处理器上make -j4,难道是让每个处理器跑两个作业?那和make -j2效率相比 难道不是一样的?


新手提问 多多关照
...全文
136558 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
heartheros 2011-12-08
  • 打赏
  • 举报
回复
感觉指的是逻辑线程数,和CPU无关,逻辑线程具体跑在哪个逻辑CPU上应该是由内核决定的。make说白了也只是个程序而已。
worldlight 2011-12-08
  • 打赏
  • 举报
回复
启用4个cpu去编译。提高编译速度。
daviddb7 2011-11-30
  • 打赏
  • 举报
回复
jobs=4
同时最多跑4个作业
make自己会协调,如果CPU等资源不够可能小于4个。不过一般瓶颈都在硬盘,所以一般能看到4个进程一起跑。
向良玉 2011-11-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yq_118 的回复:]

make(1)表示在unix手册(man)的第一章,可以用 man 1 make 来查看。

两个处理器的话,一般 -j2 能达到最高效率。
不过也有些进程会花时间在IO上,并不能利用完单个cpu的时间。这样 -j4 可以更快。
[/Quote]
学到老,活到老
IO指的是磁盘IO
hllfl 2011-11-27
  • 打赏
  • 举报
回复
晕 以为一个人呢
方紫涵 2011-11-27
  • 打赏
  • 举报
回复
yq高人也!!
方紫涵 2011-11-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yq_118 的回复:]

make(1)表示在unix手册(man)的第一章,可以用 man 1 make 来查看。

两个处理器的话,一般 -j2 能达到最高效率。
不过也有些进程会花时间在IO上,并不能利用完单个cpu的时间。这样 -j4 可以更快。
[/Quote]
io的意思是向磁盘io?
stein42 2011-11-27
  • 打赏
  • 举报
回复
makefile如下

all: a b c d

a:
sleep 2

b:
sleep 2

c:
sleep 2

d:
sleep 2

由于sleep不占用cpu,所以 -j4 可以4个目标一起构建,只用了两秒。即使没有4个cpu。

$ time make
sleep 2
sleep 2
sleep 2
sleep 2

real 0m8.008s
user 0m0.000s
sys 0m0.003s
$ time make -j2
sleep 2
sleep 2
sleep 2
sleep 2

real 0m4.008s
user 0m0.003s
sys 0m0.000s
$ time make -j4
sleep 2
sleep 2
sleep 2
sleep 2

real 0m2.006s
user 0m0.003s
sys 0m0.003s

stein42 2011-11-27
  • 打赏
  • 举报
回复
make(1)表示在unix手册(man)的第一章,可以用 man 1 make 来查看。

两个处理器的话,一般 -j2 能达到最高效率。
不过也有些进程会花时间在IO上,并不能利用完单个cpu的时间。这样 -j4 可以更快。

19,620

社区成员

发帖
与我相关
我的任务
社区描述
系统使用、管理、维护问题。可以是Ubuntu, Fedora, Unix等等
社区管理员
  • 系统维护与使用区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧