zoukankan      html  css  js  c++  java
  • 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性能就比较差了。准备进一步翻阅资料看看到底应该取值多少。

  • 相关阅读:
    助你成功:十四个可以运用在任何领域的心理定律
    人生没有“如果…”,二十条经典领悟切莫错过!
    “潜意识”下的奇迹:成功说服的七条法则
    成就你一生的100句名言,改变从今天开始~
    命好不如习惯好!改造我们的习惯领域
    成功从现在开始:改变你一生的七句话
    职业经理人必须牢记六字原则:新、信、行、馨、型、星
    不要害怕自己与众不同:十个成功的秘诀
    价值百万:八个心态和十三个习惯成就成功者!
    代长珍(帮别人名字作诗)
  • 原文地址:https://www.cnblogs.com/baiduboy/p/6568289.html
Copyright © 2011-2022 走看看