0

我正在使用下面给出的代码进行 XSLT 转换。我使用输入和输出流进行此转换。这里 xsltIn 和 xmlIn 是输入流。我用

System.setProperty("javax.xml.transform.TransformerFactory","net.sf.saxon.TransformerFactoryImpl");

将撒克逊人设置为绑定。所以我的问题是优化处理的最佳方法是什么。我听说过一种叫做 Streaming Templates 的东西。

javax.xml.transform.Result xmlResult = new javax.xml.transform.stax.StAXResult(XMLOutputFactory
    .newInstance().createXMLStreamWriter(new FileWriter(fileName)));javax.xml.transform.Source xsltSource = new javax.xml.transform.stream.StreamSource(xsltIn);
javax.xml.transform.Source source = new javax.xml.transform.stream.StreamSource(xmlIn);

javax.xml.transform.TransformerFactory transFact = javax.xml.transform.TransformerFactory
    .newInstance();
javax.xml.transform.Transformer trans = transFact.newTransformer(xsltSource);
trans.transform(source, xmlResult);
4

1 回答 1

2

专注于测量。衡量性能,评估影响性能的因素(例如源文档大小),一旦你了解了你得到的性能,你就可以开始考虑如何改进它。有多少端到端性能花费在源文档解析、样式表编译、转换、序列化上?如果您不知道,那么您需要找出答案。

了解你的目标。您需要什么性能,目前距离它还有多远?您准备投入多少精力/时间/金钱来实现所需的性能?

您可以做很多事情来提高性能。例如,您可以放入 Saxon-EE 以利用其改进的优化器和字节码生成。或者你可以购买更快的硬件。或者您从 XSLT 专家那里购买咨询服务。从问题的表述方式来看,这些事情是否会给你带来良好的投资回报是不可能的。

于 2012-09-17T17:49:44.090 回答