我倾向于编写相当大的模板化标头C++库,我的用户通常会抱怨编译时间.在想到这件事之后,我突然意识到我不知道时间会在哪里.是否有一些简单的方法来使用常见的编译器(例如g ++,icc和xlC)来分析C++编译过程?例如,是否可以了解在C++编译的每个阶段花费了多少时间?
我有一个大量使用模板的项目.最近编译时间突然上升.我想知道是否有办法看到哪些类/行需要最多的时间来编译g ++.
以下是-ftime-report的一些输出
Execution times (seconds)
TOTAL : 0.30 0.05 0.37 9119 kB
Execution times (seconds)
garbage collection : 0.91 ( 6%) usr 0.00 ( 0%) sys 0.92 ( 5%) wall 0 kB ( 0%) ggc
callgraph construction: 0.23 ( 2%) usr 0.11 ( 3%) sys 0.37 ( 2%) wall 10652 kB ( 1%) ggc
callgraph optimization: 0.18 ( 1%) usr 0.12 ( 3%) sys 0.28 ( 2%) wall 11906 kB ( 2%) ggc
varpool construction : 0.04 ( 0%) …
Run Code Online (Sandbox Code Playgroud) 哪一个更快?
假设有一个用于 C++ 的普通编译器。
///////////////////////
Code A:
int a,b,c;
///////////////////////
Code B:
int a;
int b;
int c;
///////////////////////
Run Code Online (Sandbox Code Playgroud)
也有人说编译器完全忽略注释。喜欢-
"// Comment"
OR
/* Comment*/
Run Code Online (Sandbox Code Playgroud)
假设您的程序有一百万行的注释块。我确信编译器首先读取“ / * ”并搜索“ * / ”并将这两者之间的所有文本标识为注释。但这是否意味着编译器在遇到“ * / ”后会迭代数百万行代码来查找“ * / ”?
太长了;
我的问题是:-