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

  • 相关阅读:
    【Linux】【Apatch Tomcat】Linux、CentOS7安装最新版Apartch Tomcat环境
    【Linux】【Java】CentOS7安装最新版Java1.8.191运行开发环境
    【Linux】SSH证书免密码远程登陆Linux(Putty)
    [Web][高中同学毕业分布去向网站+服务器上挂载]二、敲定思路与方向(HTML5+JS(JQuery+ECharts))
    [Web][DreamweaverCS6][高中同学毕业分布去向网站+服务器上挂载]一、安装与破解DreamweaverCS6+基本规划
    [Python][Scrapy 框架] Python3 Scrapy的安装
    [Python][小知识][NO.5] 使用 Pyinstaller 打包成.exe文件
    Java 数值类型以及计算
    weblogic 双机集群搭建
    [已解决]“ImportError: No module named flask”
  • 原文地址:https://www.cnblogs.com/baiduboy/p/6568289.html
Copyright © 2011-2022 走看看