0

以下のコードを XSLT 変換に使用しています。この変換には入力ストリームと出力ストリームを使用します。ここで、xsltIn と xmlIn は入力ストリームです。私は

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

バインディングとして saxon を設定します。だから私の質問は、処理を最適化するための最良の方法は何ですか. ストリーミング テンプレートと呼ばれるものについて聞きました。

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 に答える