我正在使用专有的许可编译器 - QNX 6.5.0 SP1以防万一 - 我想验证在构建期间是否允许调用多个编译器实例。
是的,我正在调用make all -j8
,但是在查看我的Windows资源监视器时,它似乎只有一个 compiler.exe 一次处于活动状态我可以看到 make.exe 的多个实例同时处于活动状态;显然这不是一个强有力的方法。
问题:如何验证多个 compiler.exe 实例同时处于活动状态?
GNU Make 3.81
答案 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核心被完全运用而不是其他核心,那通常意味着编译不会并行运行。