是否有估计表明JSR-292会对Groovy性能产生多大影响?
答案 0 :(得分:4)
invokedynamic确实是一个复杂的故事,因为JDK7中的性能特征一直在变化。在将Groovy移植到indy期间,我真的非常接近Java,大约是因子1.5。但是我必须使用catchExceptionGuard,它会将性能降低到3-4因子。我们仍然需要研究避免使用该防护的方法。也许我们必须打破Groovy 2.2中的一些现有代码。无论如何,我不需要上面提到的invokeMethod后备的守卫。 GroovyRuntimeExceptions可能包含其他异常,我必须解包或做其他事情。因此,对于现有方法,理论上可能的性能似乎介于Java和Java速度的一半之间。调用invokeMethod的性能完全不同。
如果您需要更多,请在Groovy 2.0中使用@CompileStatic。
答案 1 :(得分:3)
我认为还没有基准测试,直到某人执行它我们只能猜测...
您可能会发现此事this post很有趣。
答案 2 :(得分:2)
答案 3 :(得分:0)
我不确定它对Groovy有多大适用性。如果我记得很清楚,Groovy有一些后备(例如invokeMethod方法)。我认为不可能简单地使用invokedynamic回退。
但是,有一些方法: