V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
mq4079
V2EX  ›  C++

关于 C++编译速度的一个测试

  •  
  •   mq4079 · Sep 12, 2019 · 5648 views
    This topic created in 2424 days ago, the information mentioned may be changed or developed.

    测试环境

    IDE: clion 系统 ubuntu18.04 使用的代码:含有数个模板头的小工程

    使用 gcc7.3 编译

    | | 完整编译整个项目 | 修改含有模板的.h 文件后编译 |

    | 不使用预编译头 | 14 s | 13 s |

    | 使用预编译头 | 19 s | 12 s |

    使用 gcc9.1 编译

    | | 完整编译整个项目 | 修改含有模板的.h 文件后编译 |

    | 不使用预编译头 | 12 s | 11 s |

    | 使用预编译头 | 18 s | 10 s |

    使用 clang8 编译

    | | 完整编译整个项目 | 修改含有模板的.h 文件后编译 |

    | 不使用预编译头 | 8 s | 8 s |

    | 使用预编译头 | 10 s | 7 s |

    上表结论

    • gcc 版本越新编译速度越快,上面测试项目 9 比 7 快 15%左右
    • 新版 clang 比新版 gcc 编译速度快,上面测试项目快 35%左右
    • 使用预编译头比不使用第一次编译要慢(慢很多),但修改代码再次编译速度要比不使用快(快一点)

    总结: 以后使用 clang8+预编译头方式编译项目

    wutiantong
        1
    wutiantong  
       Sep 12, 2019
    这 tm 真是醉了
    nthhdy
        2
    nthhdy  
       Sep 12, 2019
    我对 c++ 外行。
    但是感觉选编译器不能只看速度吧,不同编译器恐怕有细微的差别,被坑到就不好了。
    luozic
        3
    luozic  
       Sep 12, 2019
    C++编译现在支持编译缓存加速的,可以去搜搜 github。
    across
        4
    across  
       Sep 12, 2019
    编译选项、优化等级、代码类、模板展开数量····

    这样没什么对比性啊。
    across
        5
    across  
       Sep 12, 2019
    另外才 10 来秒的工程量(不知道什么硬件性能),现在 C++工程里,大部分编他个十来分钟都算少了。
    GM
        6
    GM  
       Sep 12, 2019
    这感觉就像是坐进车里踩了几下油门,转几圈方向盘,绕 4S 店走了一圈,就开始发表对车的评价了?
    zhuangzhuang1988
        7
    zhuangzhuang1988  
       Sep 12, 2019
    编译 boost 测试吧。
    iyaozhen
        8
    iyaozhen  
       Sep 12, 2019
    拿个编一小时的项目再说吧
    augustheart
        9
    augustheart  
       Sep 12, 2019
    到目前为止,gcc 编译出来的结果依然整体优于 clang。
    ccpp132
        10
    ccpp132  
       Sep 12, 2019   ❤️ 1
    gcc 生成的代码优化效果稍好,支持后端更丰富
    llvm 新,代码组织的好,前端工具多

    现在要提速大部分都是往编译集群,缓存结果的路子上走了。
    mq4079
        11
    mq4079  
    OP
       Sep 12, 2019
    忘了说了,i7 8700 make -j12 编译,没开编译优化,为什么不用大项目测呢。因为懒得等。
    testcaoy7
        12
    testcaoy7  
       Sep 12, 2019
    好奇 Intel 自家的 C 编译器效率怎么样
    nicebird
        13
    nicebird  
       Sep 12, 2019
    十几秒的项目,没什么好对比的
    Gcourage
        14
    Gcourage  
       Sep 12, 2019 via iPhone
    编译项目,可以使用 ccache 来提速,空间换时间。
    cmake 也能很好都支持 ccache
    classyk
        15
    classyk  
       Sep 12, 2019
    编译结果呢?谁运行最快?谁文件最小?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2562 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 07:47 · PVG 15:47 · LAX 00:47 · JFK 03:47
    ♥ Do have faith in what you're doing.