Performance Grails性能:tomcat中的XML处理速度比运行应用程序慢4倍?
有人知道为什么Grails应用程序在tomcat(6和7)中运行速度比通过Grails run应用程序运行速度慢4倍吗?否则,我会很感激关于如何自己追踪这件事的一般建议 形势 我有一个web应用程序,它可以执行一些相当密集的XML处理(解析、xpath、序列化)。对于较大的输入,当通过Performance Grails性能:tomcat中的XML处理速度比运行应用程序慢4倍?,performance,tomcat,grails,tomcat6,Performance,Tomcat,Grails,Tomcat6,有人知道为什么Grails应用程序在tomcat(6和7)中运行速度比通过Grails run应用程序运行速度慢4倍吗?否则,我会很感激关于如何自己追踪这件事的一般建议 形势 我有一个web应用程序,它可以执行一些相当密集的XML处理(解析、xpath、序列化)。对于较大的输入,当通过grailsdevrunapp运行时,返回结果大约需要5秒钟 当我在tomcat6中运行相同的应用程序时,速度会慢4倍! 相同的应用程序、相同的环境、相同的机器:响应相同的帖子需要4倍(20秒) tomcat中没
grailsdevrunapp
运行时,返回结果大约需要5秒钟
当我在tomcat6中运行相同的应用程序时,速度会慢4倍!
相同的应用程序、相同的环境、相同的机器:响应相同的帖子需要4倍(20秒)
- tomcat中没有记录任何错误;只是我期望的日志输出
- Tomcat正在非调试模式下运行(Ubuntu 13.04默认设置+
)-XX:MaxPermSize=512m
- 相同的Java版本
更新 在Tomcat中,以下运行速度似乎慢了约12倍:
XPathFactory.newInstance().newXPath()
。。。我经常这么说。嗯,现在已经解决了,但我还是想知道:
服务提供者机制确定使用哪个类作为XPathFactory的实现。类路径上包含文件
META-INF/services/javax.xml.xpath.XPathFactory
的JAR文件可以替换JRE中的默认实现
在您的案例中,类路径很可能与开发和生产环境不同
要检查使用了哪个实现,可以打印
XPathFactory.newInstance().newXPath().getClass()
。JRE中的内部实现是com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl
服务提供者机制确定使用哪个类作为XPathFactory的实现。类路径上包含文件META-INF/services/javax.xml.xpath.XPathFactory
的JAR文件可以替换JRE中的默认实现
在您的案例中,类路径很可能与开发和生产环境不同
要检查使用了哪个实现,可以打印
XPathFactory.newInstance().newXPath().getClass()
。JRE中的内部实现是com.sun.org.apache.xpath.internal.jaxp.XPathExpressionImpl
Java版本相同?Java版本相同?
XPathFactory.newInstance().newXPath()