+ -
当前位置:首页 → 问答吧 → make -j4是什么意思

make -j4是什么意思

时间:2011-11-27

来源:互联网

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


新手提问 多多关照

作者: xwhbwas2008   发布时间: 2011-11-27

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

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

作者: yq_118   发布时间: 2011-11-27

makefile如下
C/C++ code

all: a b c d

a:
    sleep 2

b:
    sleep 2

c:
    sleep 2

d:
    sleep 2


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

$ 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


作者: yq_118   发布时间: 2011-11-27

引用 1 楼 yq_118 的回复:

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

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

io的意思是向磁盘io?

作者: xwhbwas2008   发布时间: 2011-11-27

yq高人也!!

作者: xwhbwas2008   发布时间: 2011-11-27

晕 以为一个人呢

作者: hllfl   发布时间: 2011-11-27

学习。

作者: qq120848369   发布时间: 2011-11-27

相关阅读 更多