【问题标题】:Is Java-style Groovy as fast as Java?Java 风格的 Groovy 和 Java 一样快吗?
【发布时间】:2011-09-05 00:39:26
【问题描述】:

如果我理解正确,Groovy 是动态类型的,但由于它几乎是 Java 的超集,因此可以选择提供静态类型信息。如果编写的东西只有少数部分对性能至关重要,同时避免使用多种语言的摩擦,这可能会很有用。只能为性能关键部分提供类型注释。

在使用类 Java 子集并提供静态类型注解的函数/类中使用 Groovy 代替 Java 会有什么性能损失?

【问题讨论】:

    标签: java performance groovy static-typing groovy++


    【解决方案1】:

    在 groovy 中声明类型不会神奇地加快速度。它仍然是 groovy 代码,需要通过 MOP 以防发生动态变化。您不会因为提供类型信息而获得静态链接。

    对于 groovy 代码不够快的性能敏感问题,您需要编写真正的 java 代码。

    这个问题与previous one 非常相似,我在其中gave an answer 深入研究生成的字节码,显示输入内容不会加快速度。

    【讨论】:

    • 我相信这个答案已经过时了,因为@CompileStatic 已被添加到主要的 Groovy 语言中。
    【解决方案2】:

    您也可以使用 Groovy++。将 groovypp.jar 放到类路径中,并使用 @Typed 注释包、类或方法。注释代码绕过 MOP,因此几乎与 Java 代码一样快。

    即使您没有声明类型,@Typed 代码也会在编译时尽可能推断类型。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      • 1970-01-01
      • 2014-06-27
      • 2014-12-06
      相关资源
      最近更新 更多