冗余表达式,指令和限定符会影响性能吗?

时间:2016-05-25 06:19:31

标签: performance resharper redundancy

我正在使用其他人的代码,而ReSharper正在给我很多关于冗余代码的警告,例如:

  • 未使用的指令
  • 数组创建表达式(new string[]{xxx,xxx,xxx}而不是{xxx,xxx,xxx}
  • 明确委托创建(new EventHandler(xxx)而不是xxx
  • 使用指令时的限定符(System.Windows.Forms.Form而不是Form

有很多代码可以使用,所以我不确定是否值得通过它并删除所有冗余代码。

考虑到这一点,我想问一下这些警告是否只是为了改善代码风格(美观)或者这些代码实际执行额外操作并影响性能?

1 个答案:

答案 0 :(得分:2)

取决于。

  • Unused using directives don't matter

  • 缩写数组初始值设定项我很确定编译为相同的CIL

  • 显式代表创建我不太确定,但我希望性能相同

  • 不需要的限定符我非常肯定会编译到相同的CIL。

然而

计算机的时间通常远不如 时间,或者是其他人阅读代码的时间。获取一段代码并将所有int替换为System.Int32 s,需要更长时间才能阅读需要更长时间才能理解,以及也是重要的“绩效”指标。

必须编写程序供人们阅读,并且只是偶然让机器执行,作为一个比我曾经写过的更聪明的人。