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 区别相关推荐

  1. 圆心角 圆弧上点坐标_数控加工中心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_ ...

  2. j和jk是有区别的_【JK制服科普贴①】JK入坑,需要注意哪些问题?

    JK制服这个词语,可以分为两个部分来看~ JK为日语流行语,意为女高中生(じょしこうこうせい).取假名音 jyoshikoukousei中的J和K,jk制服,顾名思义就是日本女高中生所穿着的制服啦~ ...

  3. 给热心老哥搭个窝,2021年30分钟用Discourse搭建新一代BBS论坛站全攻略

    Discourse 是 Stack Overflow 的联合创始人 Jeff Atwood 推出的一个新的开源论坛项目,其目的是为了改变十年未变的论坛软件.它摒弃了传统论坛的话题讨论形式.拥有自学习系 ...

  4. jQuery基础:keydown( ) 与 keypress( ) 区别

    1.结论: 相同点:当按钮被按下时,会发生该事件,发生在当前获得焦点的元素上. 输入中文区别较大,试一试 <!DOCTYPE html> <html lang="en&qu ...

  5. css中.prepend,js prepend() 和append()区别

    prepend() 方法在被选元素的开头(仍位于内部)插入指定内容. prepend() 语法:$(selector).prepend(content) 或 $(selector).prepend(f ...

  6. xlim用法matlab,MATLAB之xlim 、 ylim 、zlim的简单介绍

    EDA365欢迎您登录! 您需要 登录 才可以下载或查看,没有帐号?注册 x 2 t9 e% ~6 N& L- M ylim" {1 I6 t9 a  ]. {9 z 设置或查询 y ...

  7. 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 ...

  8. HTTP协议的头信息详解 1

    HTTP协议的头信息详解 我用抓包软件抓了http的包,发现accept大多数有两种情况. # l8 X" o; I5 e# t9 y第一种:Accept: image/gif, image ...

  9. HTTP头信息(转)--1

    转自:http://www.cnblogs.com/9988/archive/2012/03/21/2409086.html 我用抓包软件抓了http的包,发现accept大多数有两种情况. 第一种: ...

最新文章

  1. [YTU]_2002(C语言实验——单词统计)
  2. ip中继对接_鼎信通达MTG系列-语音中继网关,可和VOS,IPPBX,SIP网关进行对接
  3. android111 java中调用c代码
  4. [USACO1.1]坏掉的项链Broken Necklace
  5. leetcode116. 填充每个节点的下一个右侧节点指针(层序遍历07)
  6. 使用java实现打印功能_java实现打印功能有没有比较好的方式?
  7. 浏览器渲染页面的过程
  8. python invalid syntax string_Python报错,“SyntaxError: invalid syntax”
  9. oracle sql语句_7个维度查看oracle执行计划的sql语句执行效率
  10. 深度学习中降低过拟合(OverFitting)的方法
  11. pdf格式文件转换成mobi
  12. 基于Cohesie单元的二维水力压裂
  13. 新浪短网址php源码,新浪短网址api接口腾讯短网址api接口分享
  14. java 个人通讯录_java个人通讯录管理系统
  15. 各类国外热门网站的镜像网站汇总
  16. 贴片式SIM卡,eSIM卡,MFF2 SIM Cards Specs
  17. linux-Perl-语言入门
  18. 使用命令行登陆Mysql
  19. 维天运通(路歌)招股书失效:毛利率波动明显,冲刺上市遇挫?
  20. 国家知识产权局一行走访易保全调研区块链,提升相关专利审查工作质效

热门文章

  1. OpenCL Programming Guide - OpenCL 编程指南 - 书中源代码
  2. 【Python】Python下载及安装(windows系统)
  3. 如何在SYSTEM权限下实现屏幕监控
  4. java 验证输入的是小数_java判断用户输入的是否至少含有N位小数的实例
  5. PB调用http协议接口(WebAPI)
  6. 基于FPGA的波、幅、频、相可调DDS信号发生器的设计
  7. 学生选课系统-学年学期选择器,根据入学年份自动计算当前学期
  8. 2019 kyle年度总结
  9. Spring中的IOC介绍
  10. 服务器虚拟化书籍,服务器虚拟化解决方案书模板-精选版.doc