有没有人知道为什么Grails 应用程序在 tomcat(6 和 7)中的运行速度比 via慢 4 倍grails run-app
?否则,我将不胜感激有关如何自己追踪此问题的一般建议。
情况
我有一个 Web 应用程序,它执行一些相当密集的 XML 处理(解析、xpath、序列化)。grails dev run-app
对于大型输入,通过)运行时返回结果大约需要 5 秒。
当我在 tomcat6 中运行相同的应用程序时,速度要慢 4 倍!
grails dev war
cp target/app.war /path/to/tomcat[6|7]/webapps
相同的应用程序,相同的环境,相同的机器:响应相同的 POST需要 4 倍的时间(20 秒) 。
- 在tomcat中没有记录错误;只是我期望的日志输出
- Tomcat 在非调试模式下运行(Ubuntu 13.04 默认设置 +
-XX:MaxPermSize=512m
) - 相同的 Java 版本
更新
看起来以下在 Tomcat 中运行速度慢了大约 12 倍:
XPathFactory.newInstance().newXPath()
......我是,嗯,经常打电话。好吧,现在已经解决了,但我仍然想知道:
- 是什么可能导致这在 Tomcat 中如此缓慢?
- 我可以采取哪些工具/方法来更轻松地实现这一发现?(我做了很多手动调试来解决这个问题。)