如果我理解正确Groovy是动态类型的,但由于它几乎是Java的超集,因此可以选择提供静态类型信息。如果只编写几个部分对性能至关重要的东西,同时避免使用多种语言的摩擦,这可能很有用。可以仅为性能关键部分提供类型注释。
在使用类似Java的子集和提供静态类型注释的函数/类中使用Groovy而不是Java会有什么性能损失?
答案 0 :(得分:12)
在groovy中声明类型并不会神奇地加快速度。它仍然是groovy代码,需要通过MOP以防万一动态变化。您没有获得静态链接只是因为您已经提供了类型信息。
对于性能敏感的东西,groovy代码不够快,你需要编写真正的java代码。
这个问题非常类似于previous one,其中我gave an answer深入研究生成的字节代码,显示输入内容不会加快速度。
答案 1 :(得分:8)
您也可以使用Groovy ++。将groovypp.jar拖放到类路径中,并使用@Typed注释包,类或方法。带注释的代码绕过MOP,因此几乎和Java代码一样快。
即使您没有声明类型,@ Typed代码也会在编译时推断出类型。