如何分析完整的C++构建?

Car*_*org 6 c++ eclipse profiling build-process makefile

我正在Windows XP上用C++开发一个应用程序,使用Eclipse作为我的IDE,以及一个基于Makefile的构建系统(使用自定义工具生成Makefile).另外,我正在使用LZZ,它允许我编写一个文件,然后将其拆分为头文件和实现文件.我正在使用TDM的GCC 4端口.

我可以使用哪些工具或技术来确定构建过程的每个部分需要多长时间,以及为什么它很慢?

特别感兴趣的是:

  • 需要花多少时间来解析Makefile,找出依赖关系,检查时间戳等?
  • Eclipse在构建之前和之后需要多长时间?
  • GCC花费多少时间来解析系统和提升标头?

PS:这是我的家庭项目,所以昂贵的工具对我来说是遥不可及的,但如果它们特别相关,可以在这里记录.

Jos*_*ley 6

由于Make和GCC对于他们正在做的事情非常冗长,因此获得对所花时间的高级概述的一种非常粗略的方法是通过脚本管道make的输出,该脚本为每一行添加时间戳:

make | perl -MTime::HiRes -pe "printf '%.5f ', Time::HiRes::time()"
Run Code Online (Sandbox Code Playgroud)

(我正在使用ActivePerl执行此操作,但从我收集的内容来看,Strawberry Perl现在可能是Windows推荐的Perl版本.)

根据自己的喜好重新格式化或处理时间戳.

要获得有关GCC的更多详细信息,请使用该--time-report选项.

要了解Eclipse添加了多少开销,请使用秒表为Eclipse和命令行构建时间.