Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Performance Grails性能:tomcat中的XML处理速度比运行应用程序慢4倍?_Performance_Tomcat_Grails_Tomcat6 - Fatal编程技术网

Performance Grails性能:tomcat中的XML处理速度比运行应用程序慢4倍?

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中没

有人知道为什么Grails应用程序在tomcat(6和7)中运行速度比通过Grails run应用程序运行速度慢4倍吗?否则,我会很感激关于如何自己追踪这件事的一般建议

形势 我有一个web应用程序,它可以执行一些相当密集的XML处理(解析、xpath、序列化)。对于较大的输入,当通过
grailsdevrunapp
运行时,返回结果大约需要5秒钟

当我在tomcat6中运行相同的应用程序时,速度会慢4倍! 相同的应用程序、相同的环境、相同的机器:响应相同的帖子需要4倍(20秒)

  • tomcat中没有记录任何错误;只是我期望的日志输出
  • Tomcat正在非调试模式下运行(Ubuntu 13.04默认设置+
    -XX:MaxPermSize=512m
  • 相同的Java版本

更新 在Tomcat中,以下运行速度似乎慢了约12倍:

XPathFactory.newInstance().newXPath()
。。。我经常这么说。嗯,现在已经解决了,但我还是想知道:

  • 是什么原因导致Tomcat的速度如此之慢
  • 我可以采取哪些工具/方法来更容易地实现这一发现?(为了解决这个问题,我做了很多手动调试。)

  • 服务提供者机制确定使用哪个类作为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()