代码之家  ›  专栏  ›  技术社区  ›  LambdaBeta

分析GPRBuild

  •  1
  • LambdaBeta  · 技术社区  · 6 年前

    我有一个基于GPR的大型项目,编译可能需要30分钟以上。

    在分析构建过程后,我注意到许多明显的低效(多次调用gprbuild而不是聚合,过度使用替代文件而不是配置,等等)。我想知道是否有一些方法可以“分析”构建过程,以了解什么需要这么长时间。

    尤其是当单个文件发生更改并且其中存在错误时,重新编译大约需要5分钟。理论上,应该很快意识到必须重新编译该文件(这是唯一一个这样做的文件),并开始编译过程,快速发现错误。

    从详细的输出来看,解析用于定义构建的大量gpr文件需要花费相当长的时间,但我想知道它在哪里花费了大部分时间。

    因此,我的问题是:是否可以分析gprbuild完成的构建?如果是,如何?

    1 回复  |  直到 6 年前
        1
  •  5
  •   Jacob Sparre Andersen    6 年前

    从低复杂性到高复杂性:

    • gprbuild 报告有关其对标志所做操作的更多详细信息 -vh
    • gprbuild公司 通过 strace
    • 重建 gprbuild公司 使用所需的标志对其进行分析 gprof (但请注意 gprof公司 并不总是说实话)。