【问题标题】:Do compiler warnings has any impact on Web Application performance编译器警告对 Web 应用程序性能有任何影响吗
【发布时间】:2012-05-30 10:04:46
【问题描述】:

作为一个懒惰的程序员,我通常会忽略 JspJava 代码中的编译器警告。

我可以通过认为缺少 JavaScript、验证和其他东西可以在运行时解决来证明 JSP 警告是正确的。但需要确定。

但我总是被 Java 之类的警告所取笑

  • [通用类型] 是原始类型。应参数化对泛型类型 [GENERIC TYPE] 的引用。

  • 永远不会在本地读取字段 [FIELD NAME]。

还有更多。

我的问题是

警告对性能有影响吗?

  • 如果不是,那为什么编译器一直在喊?是在帮我们写好代码吗?
  • 如果可能,那么哪些类型的警告不应该被忽略?
  • 如果是,(内存可能)那么它有多深?

【问题讨论】:

  • “我可以通过认为缺少 JavaScript、验证和其他内容可以在运行时解决来证明 JSP 警告是正确的。” JSP = JavaServer Pages。它们与 JavaScript 无关。
  • JSP 可能包含 JavaScript,这反过来可能会在编译阶段产生错误或警告(例如,当 JS 未包含在 XHTML 页面上的 CDATA 标记中以及使用与号时)。
  • The field [FIELD NAME] is never read locally. 是 Eclipse 警告。不是编译器警告。
  • "帮助我们写出好的代码吗?"是的。
  • 如果您忽略[GENERIC Type] is a raw type. References to generic type [GENERIC TYPE] should be parameterized.,您的应用程序可能会抛出错误并且无法按预期工作。

标签: java performance jsp web-applications javac


【解决方案1】:

如果不是,那为什么编译器一直在喊?是在帮我们写好代码吗?

确实如此。大多数警告都是“最佳实践......未实践”:) 例如,如果 Java 现在提供泛型,为什么还要使用原始类型?

您可能有理由忽略它们。然后许多 IDE 让您可以关闭这些警告。

【讨论】:

    【解决方案2】:

    编译器警告几乎总是提醒您潜在的意外行为或不必要的代码。实际上,它们不会影响代码的运行时性能。编写性能不佳的代码(非常,非常更容易做到)是一个更大的担忧。

    就未使用的局部变量而言,某些编译器可能会对此进行优化,而根本不分配内存进行赋值。但是,产生结果的语句仍然需要执行,因为它们可能包含副作用。

    有一些方法可以关闭您承认对代码不重要的各种类型的编译器警告(例如,“应该声明一个 serialVersionUID”警告是一种常见的警告,但通常并不特别适用)。您可以使用每个类/方法/字段的 @SuppressWarnings 注释来执行此操作,或者您可以通过向其提供选项在编译器级别执行一次。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-30
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多