コンパイラーとインタープリター間での選択
XQuery 式、XPath 式、または XSLT スタイル・シートの作成と実行を行う場合に、コンパイラーまたはインタープリターのいずれかを使用できます。 どちらを使用するかの選択は、まさにアプリケーションによって特定されるものであり、また、さまざまな要因によっても異なります。
このタスクについて
ここでは、アプリケーション実行時に、式、照会、またはスタイルシートを作成する場合、コンパイラーとインタープリターのどちらを選択するかについて説明します。
式、照会、およびスタイルシートは、前もって作成 (プリコンパイル) することもできます。 この作成は、アプリケーション実行時ではなく前もって行われるので最も効率的ですが、プリコンパイルがすべてのアプリケーションに適用できるとは限りません。 詳しくは、プリコンパイル関連の項目を参照してください。
手順
コンパイラーを使用する場合は、XStaticContext で setUseCompiler(true) メソッドを、インタープリターを使用する場合は setUseCompiler(false) メソッドを使用します。
デフォルトでは、インタープリターを使用して XQuery 式、XPath 式、または XSLT スタイルシートを作成します。
インタープリットされた実行可能ファイルよりもコンパイルされた実行可能ファイルのほうが作成に時間がかかりますが、一般的に、コンパイルされた実行可能ファイルのほうが実行速度は速くなります。したがって、コンパイルされた実行可能ファイルの作成にかかるコストと、実行時間の効率化は、トレードオフの関係にあります。
要因 | 説明 |
---|---|
実行可能ファイルを使用して処理を行う入力文書の数 | 実行可能ファイルが少数の入力文書の処理に限り使用される場合は、特別な時間を費やしてコンパイルされた実行可能ファイルを作成するのに値しない場合があります。これは、実行可能ファイルの効率化は図れても、作成にかかった時間の埋め合わせをするほどにはならない可能性があるためです。 実行可能ファイルが多数の入力文書の処理に使用される場合であれば、特別に時間をかけて作成する価値はあると思われます。 |
入力文書のサイズ | 入力文書が大容量であればあるほど、処理に時間がかかります。 したがって、より大容量の文書をより効率的な実行可能オブジェクトで処理させるために、コンパイルされた実行可能ファイルの作成準備に特別な時間を費やす価値はあると思われます。 |
式、照会、またはスタイルシートのサイズ | 式、照会、またはスタイルシートが大容量であればあるほど、作成に時間がかかります。 したがって、これは作成時間と実行時間のトレードオフに影響します。 |
例
// Create a new XFactory
XFactory factory = XFactory.newInstance();
// Create a new XStaticContext
XStaticContext staticContext = factory.newStaticContext();
//Use the compiler
sc.setUseCompiler(true);
//Use the interpreter
sc.setUseCompiler(false);