如何验证make build实际上是在Windows上并行?

时间:2016-05-10 15:31:30

标签: c++ windows makefile

我正在使用专有的许可编译器 - QNX 6.5.0 SP1以防万一 - 我想验证在构建期间是否允许调用多个编译器实例。

是的,我正在调用make all -j8,但是在查看我的Windows资源监视器时,它似乎只有一个 compiler.exe 一次处于活动状态我可以看到 make.exe 的多个实例同时处于活动状态;显然这不是一个强有力的方法。

问题:如何验证多个 compiler.exe 实例同时处于活动状态?

GNU Make 3.81

1 个答案:

答案 0 :(得分:0)

我认为与您相关的可能是编译需要多长时间,对吧?所以最简单的恕我直言就是在没有并且没有并行化(完整版本)的情况下测量时间。

对于Linux,有一个非常方便的time命令可以精确测量时间。这也可以在GitBash控制台中使用(当你安装Git时)。

除此之外,在Windows上,衡量时间的最简单方法是使用:

echo Start: %time% > timelog.log
make all -jX
echo End: %time% >> timelog.log

其中X是最大值。并行命令数。将其放入批处理文件,使用-j1从头开始运行完整编译,然后使用-j8运行完整编译并比较时差。如果-j8的时间明显缩短,那么编译肯定会并行运行。

要研究的另一件事是检查CPU负载 - 如果编译器并行运行,它通常会对所有CPU内核执行100%的负载(除了极少数情况,当IO很慢时,例如在启用时网络驱动器)。如果只有一个CPU核心被完全运用而不是其他核心,那通常意味着编译不会并行运行。