【问题标题】:Does fixing the Checkstyle INFOs improve performance of the Java code修复 Checkstyle INFO 是否会提高 Java 代码的性能
【发布时间】:2014-01-31 14:05:08
【问题描述】:

我在修复 CheckStyle 信息时想知道这是否会带来任何性能改进。我知道这些信息不能被认真对待,但我们仍将不胜感激。

我个人认为他们没有提供任何此类改进,但我可能是错的,因此最好寻求专家建议:)

【问题讨论】:

  • “CheckStyle 信息”?那是什么,究竟是什么?这是 CheckStyle 专门针对性能的检查的子集吗?
  • 您的意思是CheckStyle Plugin 建议吗?
  • 是的@sansix,我的意思是除了错误,警告Checkstyle插件显示INFO。
  • 请注意,Checkstyle 显示为 INFO 严重性的内容完全取决于 Checkstyle 配置。任何规则都可以配置为具有 INFO 严重性。

标签: java performance checkstyle


【解决方案1】:

假设您参考标准 Checkstyle 检查:http://checkstyle.sourceforge.net/availablechecks.html 它们指的是源代码的风格,而不是真正的“编程风格”。例如,代码格式(“ArrayTrailingComma”、“GenericWhitespace”...)不会影响从该类生成的实际 bytecode。可能有一个类会导致数百个警告,而另一个类没有警告,最终它们可能会编译为相同的字节码。

然而,一些检查可能会以改变字节码的方式影响代码,因此,至少理论上会影响性能。例如,“EqualsHashCode”检查:如果这导致您插入 equals/hashCode 方法,这当然可能会影响性能(但更重要的是:您的程序的行为!)。 “BooleanExpressionComplexity”之类的内容可能会导致您拆分复杂的表达式,从而导致在字节码中生成更多指令。但总的来说,这些更改不应该对性能产生真正显着的影响。

【讨论】:

  • 我希望许多建议实际上会导致性能略较弱,但代码质量更高。 CheckStyle 根本与性能无关。
  • 正如您所说,它们中的大多数根本不打算(也不)影响性能。有些(极少数)理论上可能会影响性能,但这也可能取决于如何它们实际上是固定的。
【解决方案2】:

实际上有一项检查可以大大提高您的表现。如果你足够疯狂地编写很长的方法,JIT 就会放弃,你最终会得到一个未优化的代码。修复MethodLength后,我看到加速因子为8(不是checkstyle,是我说方法太长了)。

【讨论】:

  • 听起来很有趣@maaartinus。我会尝试。恐怕我们有时会写很长的方法:/
  • @Saik0:我写的是一个 CPU 模拟,你知道一个开关有大约 256 个案例,每个案例可能有 10 行代码,即非常长。但是你知道,更短的方法几乎总是更好,而且 JIT 在内联方面非常好,所以没有什么可失去的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
相关资源
最近更新 更多