使用Groovy和Spring有性能下降吗?

ras*_*orp 1 java groovy spring

Spring框架支持使用Groovy等动态语言.

由于Groovy现在可以进行静态编译,因此据我所知,groovy类与Java类相比应该具有相似的性能.

因此,例如,如果我通过导入类文件或使用lang:groovy元素在Groovy中编写我的spring bean,例如:

<lang:groovy id="myBean" script-source="classpath:mypackage/MyClass.groovy" />
Run Code Online (Sandbox Code Playgroud)

或内联定义如:

<lang:groovy id="myBean">
    <lang:inline-script>
        package mypackage

        class MyClass {
            String helloWorld() { "Hello World" }
        }
    </lang:inline-script>
</lang:groovy>
Run Code Online (Sandbox Code Playgroud)

我的问题是,与仅使用java类相比,如果这会影响应用程序的性能,我也想知道使用不同于原型,会话,请求等单例的bean时会出现问题.

有没有人用这种方法开发Spring应用程序?我指的是现实世界的专业项目.

Bil*_*l K 5

Java倾向于做一些惊人的优化 - 这些天我确信它确实会导致性能命中的框架不会显着改变大多数应用程序的性能.

春天适合这个.如果你在使用Spring时看到堆栈转储,你会看到方法调用之间经常注入大约10帧.每当spring必须拦截你的代码时,它会做很多工作!事实上,Java是如此之快,即使它可能会使你的方法调用减慢100倍,谁在乎呢?它仍然比你需要它快1000倍.

另一件事 - 静态编译groovy可以很快,但如果你真的在乎,请注意,因为如果你陷入groovy库,你可能会花费比你想象的更长的时间.

总的来说,最重要的是要记住的是第一位评论者所说的所有邪恶的根源.

提前注意性能几乎没有意义.即使您知道自己会遇到性能问题,也可以将其编码为可读,然后对其进行分析并返回并转换结果太慢的地方.