我使用纯Groovy/Grails创建了一些REST端点。目前,大多数操作都类似于CRUD。我开始使用JMeter比较Grails应用程序与等效的Java/Spring应用程序在我所做的CRUD场景中的性能。因此,我正在将我实现的一部分场景转移到基本的Spring MVC应用程序中。我非常想看到其他人在网络上发布的性能比较。有人能给我推荐一些吗?欢迎提供任何关于测试和分析的其他信息。谢谢!
我还为Spring 4.X vs Grails 2.X设置了虚拟应用程序,Tomcat的配置完全相同(两者都使用独立的Tomcat安装,而不是Grails内置的Tomcat)。在我的测试中,我执行了HTTP GET并返回了一个JSON数组,该数组是使用静态(预实例化的)内存对象(无需DB查询)形成的。我的结果也显示Spring性能更好(很抱歉我找不到我的数据了!)。我使用Spring Boot快速组合了一个Spring应用程序,而Grails已经默认具有脚手架。
关于答案的更新:
- @Lari在下面的回答中引用了一个网站,其中包含了极其全面的测试,比较了Grails 2.X和Spring 4.X(请参见README.md),以及其他许多框架。
- 然而,这些测试将Grails运行在Resin上,而Spring运行在Tomcat上。这对我来说有点奇怪,因为Grails默认使用Tomcat。
- Resin和Tomcat在性能上有类似之处。
- 该网站有几个部分(顶部的标签),甚至还有子部分(“结果”区域的标签)。我的原始问题是关于REST的Web服务行为。为此,以下是回答我的问题的一级部分:
- 查询数据库表中的多行数据(HTTP GET)并返回JSON数组作为结果。
- 修改数据库表中的多行数据并返回JSON数组作为结果。这个测试没有使用带有正文的HTTP PUT,而是HTTP GET。滚动到页面底部查看详细信息,以及要求页面。
- 如果您对HTML渲染感兴趣,请查看幸运饼干示例。
我还为Spring 4.X vs Grails 2.X设置了虚拟应用程序,Tomcat的配置完全相同(两者都使用独立的Tomcat安装,而不是Grails内置的Tomcat)。在我的测试中,我执行了HTTP GET并返回了一个JSON数组,该数组是使用静态(预实例化的)内存对象(无需DB查询)形成的。我的结果也显示Spring性能更好(很抱歉我找不到我的数据了!)。我使用Spring Boot快速组合了一个Spring应用程序,而Grails已经默认具有脚手架。