2014-09-03 40 views
0

我们注意到我们的Web应用程序中Tomcat 7和Websphere 6之间的性能差异很大。这两个Web容器中部署了相同的war文件。 Websphere中的瓶颈是编译样式表时(在日志中显示为“XL TXE-J编译样式表:jstl”)。 Websphere需要大约2到3秒,Tomcat需要几个毫秒。答案将帮助我们确定下一步修复慢速XML代码的方法。提前致谢!Tomcat 7和Websphere v8.5使用哪些库来编译xslt?

回答

0

您可以通过调用system-property('xsl:vendor')来了解XSLT处理器的使用情况。在任何复杂环境下这是一个好主意,使这一标准的做法,像

<xsl:comment>Transformed using <xsl:value-of 
       select="system-property('xsl:vendor')"/></xsl:comment> 

添加一些信息输出到您的结果文档。

对于您的应用程序来说,它对使用的XSLT处理器有点挑剔也是一个好主意。不要只考虑JAXP机制在类路径中发现的任何东西,加载应用程序实际上已经过测试的XSLT处理器。

我会怀疑您看到的性能差异并非完全由加载不同的XSLT引擎引起的,而是由样式表或其他资源的缓存等其他因素引起的。

+0

谢谢@ michael-kay。奇迹般有效! :) – 2014-09-04 01:18:04

+0

作为一个利益的问题,是两个使用不同处理器的环境? – 2014-09-04 08:40:48

+0

是的。在工作区上使用Tomcat作为开发测试环境。 Websphere部署在测试服务器上。由于许可限制,无法在我的开发计算机上使用Websphere。希望他们会以同样的方式行事,因为他们都应该符合servlet规范,并且他们运行相同的JDK版本。事实证明,IBM JDK 1.7和Oracle JDK 1.7的行为有所不同。顺便说一句,我也发现我们已经在使用Websphere 8.5。我为那些将阅读这篇文章的人更新了这个问题。 – 2014-09-09 06:36:32