-2

正如标题所说,这是一个很容易描述的问题。

每次我可以将两个单独的语句放在一个块中时,我都会想到这个问题。尤其是当我为诸如 NP 完全问题之类的 CPU 成本问题编写代码时。

是否有必要将两个单独的语句组合在一起?

4

2 回答 2

5

“int a, b;”之间的性能差异 和“int a; 诠释 b;”?

这些声明在语义上是等价的,没有任何理由会产生与另一个不同的程序,因此也没有理由会有性能差异。

但是,第一个声明短了几个字符,因此编译过程可能比从磁盘加载源文件所需的时间快几微秒。

是否有必要将两个单独的语句组合在一起?

一般来说,没有。

于 2018-10-28T14:30:08.063 回答
1

正如其他人所说,两者都是等效的声明。一个可能比另一个编译得稍微快一些。

它们都是声明
声明可以在运行时通过在内存中分配空间(例如在堆栈上)、保留寄存器或忽略来实现。

如果编译器为变量分配发出指令,则处理时间可以忽略不计(以纳秒或微秒为单位)。

在考虑性能时,您的第一个检查列表项应该是(按以下顺序):

  1. 需求 - 消除需求可以加快程序的速度。
  2. 设计 - 高效算法、去除变量、高效接口
  3. 实施(编码) - 算法的高效编码。
  4. 编译器优化级别——将编译器优化级别设置为最高。
  5. 平台特定技巧——使用特殊的处理器算法、硬件支持等。

通常,客户宁愿使用速度较慢的高质量程序,也不愿使用真正快速但不可靠的程序。
利益相关者宁愿让程序开发得更快,也不愿为没有高投资回报 (ROI) 的优化付费。

专注于质量和稳健性。仅在必要时进行优化。

于 2018-10-28T18:04:25.980 回答