Performance Play与Grails的性能差异

Performance Play与Grails的性能差异,performance,grails,playframework,Performance,Grails,Playframework,我试图在一个简单的应用程序中衡量Play与Grails的性能。该应用程序对内存数据库中的H2进行100次查询,并返回结果列表。我在发出500个并发请求时,以JMeter为单位的度量是: 平均响应时间: 播放时间:2326毫秒 Grails:214124毫秒 Play应用程序使用“Play stage”启动脚本运行,Grails应用程序打包到WAR中并部署到Tomcat。对于Tomcat,我没有更改任何内容,同样的情况也适用于开始脚本。它们都在完全相同的环境中运行。这些应用程序没有以任何方式进

我试图在一个简单的应用程序中衡量Play与Grails的性能。该应用程序对内存数据库中的H2进行100次查询,并返回结果列表。我在发出500个并发请求时,以JMeter为单位的度量是:

平均响应时间:

  • 播放时间:2326毫秒
  • Grails:214124毫秒
Play应用程序使用“Play stage”启动脚本运行,Grails应用程序打包到WAR中并部署到Tomcat。对于Tomcat,我没有更改任何内容,同样的情况也适用于开始脚本。它们都在完全相同的环境中运行。这些应用程序没有以任何方式进行优化,因为我想测试这些框架的默认设置


你知道为什么差异如此之大吗?

我怀疑,因为即使是一个简单的Grails应用程序也远远不能做到这一点。即使你不使用它们,也会有大量的事情发生。如果你真的想做一个苹果对苹果的比较,你需要拆开Grails应用程序,把它剥离到最低限度。关闭视图中的open session、http sessions,尽可能多地删除当前未专门使用的内容。在Grails环境中,默认为development,其中启用了重新加载机制,要获得更准确的度量,请运行
grails prod war
为生产创建一个war。他说他正在Tomcat中运行一个war-war任务的默认环境是prod,因此
grails prod war
是多余的
grails test app
是另一个不默认为dev的脚本,它默认为test。@LojzaIbg调优你的应用不是我建议的,尽管如果你想要最好的性能,这是个好主意。我的建议是理解Grails中的一个小应用程序会带来什么。Grails是一个巨大的框架,构建于Spring之上,在默认情况下,它有许多功能是启用/内置的,您可能没有使用这些功能,并且很可能在您的Play应用程序中没有启用/可用。在不知道您正在测试什么的情况下,简单地组装一个您描述的应用程序并测试它的“性能”是不明智的。@LojzaIbg我不是说Grails很慢。我想说的是,你的“小应用”根本不是一个小应用。Grails所做的比你想象的要多得多。所以你的比较是无效的。