make j* make j4 make j8 区别
make -j4是什么意思
看书上说
1) make(1)只衍生一个作业//作业是什么意思?make(1) 是不是就是make的意思?
2) 在双处理器上make -j4,难道是让每个处理器跑两个作业?那和make -j2效率相比 难道不是一样的?
新手提问 多多关照
------解决方案--------------------
make(1)表示在unix手册(man)的第一章,可以用 man 1 make 来查看。
两个处理器的话,一般 -j2 能达到最高效率。
不过也有些进程会花时间在IO上,并不能利用完单个cpu的时间。这样 -j4 可以更快。
------解决方案--------------------
jobs=4
同时最多跑4个作业
make自己会协调,如果CPU等资源不够可能小于4个。不过一般瓶颈都在硬盘,所以一般能看到4个进程一起跑。
------解决方案--------------------
启用4个cpu去编译。提高编译速度。
------解决方案--------------------
感觉指的是逻辑线程数,和CPU无关,逻辑线程具体跑在哪个逻辑CPU上应该是由内核决定的。make说白了也只是个程序而已。
========================================
make(gmake,gnumake)的-j参数,优化多核、多线程的编译过程
一直以为,现在主流的程序,比如apache2.2,编译过程自动会对多核优化
结果发现不是这样的
测试环境:默认./configure无参数后的apache2.2.14源码根目录
测试方法:使用以下命令,粗略记录编译过程时间。
$ date >> /qshen/time && make && date >> /qshen/time
对比与加了-j参数的make的编译时间
查阅资料,网上很多人用双路INTEL XEON E5404测试时使用参数-j16,使用单路E5405测试使用参数-j8。这个不太理解。因为E5405是四核心,每核心1线程,不知为何要使用二倍的jobs。在此也实际测试
我的测试环境CPU是INTEL XEON E5405,单路。8G内存。
首先,不带-j的命令执行2次
然后,使用-j4执行二次
再然后,使用-j8执行二次
最后使用-j16执行一次作为参考数据
结果:共计执行
$ cat /qshen/time
Mon Feb 1 12:51:17 CST 2010
Mon Feb 1 12:52:55 CST 2010
Mon Feb 1 12:53:29 CST 2010
Mon Feb 1 12:55:07 CST 2010
Mon Feb 1 12:55:34 CST 2010
Mon Feb 1 12:56:14 CST 2010
Mon Feb 1 12:56:37 CST 2010
Mon Feb 1 12:57:16 CST 2010
Mon Feb 1 12:57:38 CST 2010
Mon Feb 1 12:58:16 CST 2010
Mon Feb 1 12:58:36 CST 2010
Mon Feb 1 12:59:13 CST 2010
Mon Feb 1 12:59:48 CST 2010
Mon Feb 1 13:00:26 CST 2010
结果发现,确实默认的make不加-j参数效率比较低。加上-j参数,-j4和-j8性能差距不大,-j16性能就比较差了。准备进一步翻阅资料看看到底应该取值多少。
make j* make j4 make j8 区别相关推荐
- 圆心角 圆弧上点坐标_数控加工中心CNC的G02/G03圆弧指令的I、J、与R的区别
G02:顺(CW)圆弧插补 G03:逆(CCW)圆弧插补 根据所选择的X.Y平面,指令格式如下两种: G17 G02/G03 X_ Y_ I_ J_ F_; G17 G02/G03 X_ Y_ R_ ...
- j和jk是有区别的_【JK制服科普贴①】JK入坑,需要注意哪些问题?
JK制服这个词语,可以分为两个部分来看~ JK为日语流行语,意为女高中生(じょしこうこうせい).取假名音 jyoshikoukousei中的J和K,jk制服,顾名思义就是日本女高中生所穿着的制服啦~ ...
- 给热心老哥搭个窝,2021年30分钟用Discourse搭建新一代BBS论坛站全攻略
Discourse 是 Stack Overflow 的联合创始人 Jeff Atwood 推出的一个新的开源论坛项目,其目的是为了改变十年未变的论坛软件.它摒弃了传统论坛的话题讨论形式.拥有自学习系 ...
- jQuery基础:keydown( ) 与 keypress( ) 区别
1.结论: 相同点:当按钮被按下时,会发生该事件,发生在当前获得焦点的元素上. 输入中文区别较大,试一试 <!DOCTYPE html> <html lang="en&qu ...
- css中.prepend,js prepend() 和append()区别
prepend() 方法在被选元素的开头(仍位于内部)插入指定内容. prepend() 语法:$(selector).prepend(content) 或 $(selector).prepend(f ...
- xlim用法matlab,MATLAB之xlim 、 ylim 、zlim的简单介绍
EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x 2 t9 e% ~6 N& L- M ylim" {1 I6 t9 a ]. {9 z 设置或查询 y ...
- Linux系统重装出现c0409a9f,自学IT吧论坛Linux系统运营系列视频教程#28期2016系统/服务器资源天地 - www.zxit8.com...
0001-老学员学习方法心得分享说明9 Q) B4 d x. R# l 0002-oldboy运维26期学员侯同学-13k入职8 j" I4 p+ m$ Z9 A9 d' @; f! O ...
- HTTP协议的头信息详解 1
HTTP协议的头信息详解 我用抓包软件抓了http的包,发现accept大多数有两种情况. # l8 X" o; I5 e# t9 y第一种:Accept: image/gif, image ...
- HTTP头信息(转)--1
转自:http://www.cnblogs.com/9988/archive/2012/03/21/2409086.html 我用抓包软件抓了http的包,发现accept大多数有两种情况. 第一种: ...
最新文章
- [YTU]_2002(C语言实验——单词统计)
- ip中继对接_鼎信通达MTG系列-语音中继网关,可和VOS,IPPBX,SIP网关进行对接
- android111 java中调用c代码
- [USACO1.1]坏掉的项链Broken Necklace
- leetcode116. 填充每个节点的下一个右侧节点指针(层序遍历07)
- 使用java实现打印功能_java实现打印功能有没有比较好的方式?
- 浏览器渲染页面的过程
- python invalid syntax string_Python报错,“SyntaxError: invalid syntax”
- oracle sql语句_7个维度查看oracle执行计划的sql语句执行效率
- 深度学习中降低过拟合(OverFitting)的方法
- pdf格式文件转换成mobi
- 基于Cohesie单元的二维水力压裂
- 新浪短网址php源码,新浪短网址api接口腾讯短网址api接口分享
- java 个人通讯录_java个人通讯录管理系统
- 各类国外热门网站的镜像网站汇总
- 贴片式SIM卡,eSIM卡,MFF2 SIM Cards Specs
- linux-Perl-语言入门
- 使用命令行登陆Mysql
- 维天运通(路歌)招股书失效:毛利率波动明显,冲刺上市遇挫?
- 国家知识产权局一行走访易保全调研区块链,提升相关专利审查工作质效