【发布时间】:2017-11-02 12:18:02
【问题描述】:
我们正在调整我们的构建系统,它很大,使用 gnu make 和 g++。我们想运行一个完整的构建并找出 c++ 预处理花费了多少时间。任何人都可以建议这样做的策略吗?
【问题讨论】:
-
请说明您指的是 C++ 预处理器还是其他一些预处理器。
我们正在调整我们的构建系统,它很大,使用 gnu make 和 g++。我们想运行一个完整的构建并找出 c++ 预处理花费了多少时间。任何人都可以建议这样做的策略吗?
【问题讨论】:
g++ -ftime-report 将显示预处理时间的估计值,如下所示:
$ yes 'int f();' | head -n 1000000 > t.c
$ g++ -ftime-report -c t.c
Execution times (seconds)
phase setup : 0.01 ( 0%) usr 0.00 ( 0%) sys 0.01 ( 0%) wall 1386 kB ( 0%) ggc
phase parsing : 3.13 (100%) usr 2.06 (100%) sys 5.19 (100%) wall 772546 kB (100%) ggc
|name lookup : 0.41 (13%) usr 0.11 ( 5%) sys 0.52 (10%) wall 90 kB ( 0%) ggc
preprocessing : 0.46 (15%) usr 0.84 (41%) sys 1.10 (21%) wall 65548 kB ( 8%) ggc
parser (global) : 2.51 (80%) usr 1.19 (57%) sys 3.87 (74%) wall 706998 kB (91%) ggc
varconst : 0.16 ( 5%) usr 0.03 ( 1%) sys 0.22 ( 4%) wall 0 kB ( 0%) ggc
TOTAL : 3.14 2.07 5.21 773943 kB
如果没有可识别的时间用于预处理,preprocessing 的行可能不会显示。
【讨论】: