相关疑难解决方法(0)

分析C++编译过程

我倾向于编写相当大的模板化标头C++库,我的用户通常会抱怨编译时间.在想到这件事之后,我突然意识到我不知道时间会在哪里.是否有一些简单的方法来使用常见的编译器(例如g ++,icc和xlC)来分析C++编译过程?例如,是否可以了解在C++编译的每个阶段花费了多少时间?

c++ profiling compilation

75
推荐指数
5
解决办法
1万
查看次数

gcc了解编译时间的位置

我有一个大量使用模板的项目.最近编译时间突然上升.我想知道是否有办法看到哪些类/行需要最多的时间来编译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++ gcc templates g++

8
推荐指数
2
解决办法
6276
查看次数

在下列情况下,哪一个更快?

哪一个更快?

假设有一个用于 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)

假设您的程序有一百万行的注释块。我确信编译器首先读取“ / * ”并搜索“ * / ”并将这两者之间的所有文本标识为注释。但这是否意味着编译器在遇到“ * / ”后会迭代数百万行代码来查找“ * / ”?

太长了;

我的问题是:-

  • 1)代码A更快还是代码B更快?短代码是否意味着更少的编译时间?
  • 2)注释会影响编译时间吗?
  • 3) 我如何学习优化代码以获得最佳性能?

c++

-4
推荐指数
1
解决办法
132
查看次数

标签 统计

c++ ×3

compilation ×1

g++ ×1

gcc ×1

profiling ×1

templates ×1