繁体   English   中英

XSLT转换性能

[英]XSLT Transforming performance

这是我的文件XMLXSLTInclude XSLT的链接

你好

我正在将xml转换为html。 我的xml文件约为10kb,我的xslt为70kb,输出的html约为10kb。

Transformer xformer = StylesheetCache.newTransformer(templateFile);
xformer.transform(new DOMSource(outlineDoc),new StreamResult(out));

创建变压器需要大约10秒钟的时间,这就是为什么我创建了将其缓存到300ms的缓存的原因。 转换线需要3秒钟才能执行。 现在这么长。 我在Windows Mobile上编写了类似的转换,其执行时间约为<= 1s

我将TransformerFactory更改为Saxon,但结果大致相同。

谢谢

您的问题是使用DOMSource,请尽可能不要使用它。 与使用流式源或SAX源相比,Saxon的性能特别差-这是因为Saxon会构建自己的高度优化(供xslt使用)的树(“小树”)。 有关此问题的解决方法以及完整的解释,请访问: http : //dev.saxonica.com/blog/mike/2007/03/#000138

但是,即使您使用的是Xalan(默认为JDK),也可以使用原始输入而不构建中间DOM结构。 XSLT处理器本身可以构建最佳的内存表示形式,并且通常可以更高效地构建它们。

我发现了问题...我认为我需要踢自己。 我当时在家里玩手机,所以我决定稍微玩一下该应用程序。 突然间,初始化负载就像1s,随后的调用像500ms。 所以在这一点上我很沮丧。 我就这样拔出笔记本电脑,插入手机并进行调试,突然又变成了12秒。 我是个疯狂的IDE。 一旦我通过eclipse运行它,它就会减速到12s。

:-\\

您在每次转换时都遇到这样的延迟吗? 我注意到,Android需要一段时间才能将第三方库加载到该过程中。 确切的时间取决于库的大小。 例如,加载joda-time大约需要3秒钟。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM