performance - 冗余表达式、指令和限定符是否会影响性能?

标签 performance resharper redundancy

我现在正在使用其他人的代码,ReSharper 向我发出了很多关于冗余代码的警告,例如:

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

有很多代码需要处理,所以我不确定是否值得遍历所有代码并删除所有冗余代码。

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

最佳答案

这取决于。

  • Unused using directives don't matter .

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

  • 显式委托(delegate)创建我不太确定,但我期望相同的性能

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

但是

计算机的时间通常远没有您的时间重要,或者其他人阅读代码的时间重要。取一段代码,将所有 int 替换为 System.Int32,则读取时间会更长,并且读取时间也会更长。了解,这些也是重要的“性能”指标。

程序必须编写供人们阅读,并且只是顺便让机器执行,就像一个比我聪明得多的人曾经写过的那样。

关于performance - 冗余表达式、指令和限定符是否会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429180/

相关文章:

python - 集合中的快速随机元素 - Python

mysql - 缓慢的 MySQL 查询让我伤透了脑筋!

refactoring - 是否可以使用 NDepend 来查找 OOP 语言中的类分区?

c++ - QProcess *p 行不是多余的吗?

c++ - 多个if语句中的相同操作,如何减少代码冗余

java - 将元素存储到 ArrayList 但会出现冗余?

mysql - 迁移后什么会导致mysql性能下降?

performance - CPU利用率和能耗之间有什么关系?

c# - 使用 ReSharper 的 'Remove Not Accessed Field' 快速修复后导航

resharper - 自动禁用每个项目的 ReSharper