Java风格的Groovy和Java一样快吗?

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

在使用类似 Java 的子集并提供静态类型注释的函数/类中使用 Groovy 而不是 Java 会对性能造成什么影响?


答案 1

在groovy中声明类型并不能神奇地加快速度。它仍然是时髦的代码,需要通过MOP,以防万一某些东西被动态更改。您不会仅仅因为提供了类型信息而获得静态链接。

对于时髦代码不够快的性能敏感的事情,你需要编写真正的java代码。

这个问题与上一个问题非常相似,我给出了一个答案,深入研究生成的字节代码,展示了键入某些内容如何不会加快速度。


答案 2

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

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


推荐