Xalan を使用して、XSLT 変換をプログラムで実行する既存の Java コードがいくつかあります。別の (外部で構成された) TransformerFactory を使用できるようにリファクタリングしました。
Saxon (v6.5.3 および v8.7) ファクトリを使用してみましたが、パフォーマンスの向上は見られません。Saxon は Xalan よりも遅く、メモリを多く使用します。
Saxon TinyTree を使用してパフォーマンスの利点を得ることができることは理解していますが、このコードでその方法を理解することはできません。
私のコードは次の形式です。
TransformerFactory tf = (TransformerFactory) transformerFactoryClass.newInstance();
Transformer t = tf.newTransformer(pTransformFile);
t.transform(new StreamSource(pSourceFile), new StreamResult(pTargetFile));
ここで、「transformerFactoryClass」は構成済みの TransformerFactory クラスのインスタンスです。Xalan の場合は
org.apache.xalan.processor.TransformerFactoryImpl
、Saxon 8.7 の場合は
net.sf.saxon.TransformerFactoryImpl、Saxon 6.5.3 の場合は com.icl.saxon.TransformerFactoryImpl です。
助言がありますか?