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

时间:2014-03-27 11:49:37

标签: c++

哪一个更快?

假设C ++的平均编译器。

///////////////////////
Code A:

int a,b,c;
///////////////////////
Code B:

int a;
int b;
int c;
///////////////////////

还有人说编译器完全忽略了注释。象 -

"// Comment"
OR
/* Comment*/

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

TLDR;

我的问题是: -

  • 1)代码A更快还是代码B ???短代码意味着编译时间更短吗?
  • 2)评论是否有助于编译时间?
  • 3)我如何学习优化代码以获得最佳性能?

3 个答案:

答案 0 :(得分:4)

  1. 不,短代码并不意味着执行时间更短。例如,请参阅here
  2. 不,评论不会改变代码的执行时间。 (如果你注意到编译时间增加,我会很惊讶)
  3. 有几个talks在线查看此内容。最重要的是:衡量一切!

答案 1 :(得分:2)

它们将是完全相同的代码,速度相同。变量声明通常不是编译器某事的指令,只是对他的声明,“将stackpointer-8字节作为无符号整数处理”。如果你在不同的行中声明这些变量,则没有区别。

答案:

  1. 一般不会。
  2. 不,它们将在编译的第一阶段被淘汰。
  3. 太宽了。通常,您应该使用优化的代码和高效的算法。

答案 2 :(得分:2)

1)不,不是一般规则。 '睡眠(24 * 60 * 60 * 1000)'需要一天的时间来执行。

2)不,当然不是。最糟糕的'可能发生的事情是建筑需要稍微长一点,我的意思是“稍微”。 - 计算机真的很快。

3)了解更多关于编译过程和计算机的知识。