Archive for 2009年4月10日

JavaSE6 と GlassFish で JSP の高速コンパイル



皆様、JSR-199 (Java Compiler API)をご存知でしょうか?



Java SE 6 で拡張された機能の一つなのですが、この API を

利用すると、Java のプログラム中から Java のソースコードを

コンパイルできるようになります。

一見すると、この機能と GlassFish どのような関連があるの?

と思われる方もいらっしゃるかと思いますが、JSR-199 に対応した

JSP コンパイラが GlassFish 上で実装されています。



そこで、JSP/JSF 等のコンパイルが非常に高速になります。

(一説によると3.5倍〜10倍早いとか)

今までは、JSP をコンパイルした後、Servletコードをファイルに

出力してロードしてとアプリケーションの起動までに結構時間が掛かった

りしましたが、GlassFish ではファイルに書き出さず直接メモり上で

コンパイル等の動作を行うことができます。



ですので、

GlassFish は Java SE 6 で動かすことをおすすめ致します。Java SE 5 を

ご使用中の方は、バージョンを変更したい場合、下記のファイルを修正し

変更してください。





# vi glassfish-v2.1/config/asenv.conf

AS_JAVA=”/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home”




また、開発者の方は、上の説明でではコンパイルされたコードを

見たい場合はどうすればいいのだろう?と思う方もいらっしゃると思います。

NetBeans をご使用されている方は、Web のプロジェクトを作成した際に

デフォルトでソースコードが出力される設定が追加されています。



具体的には、プロジェクト中の設定ファイル(sun-web.xml) に

下記の行が追加されています。





<jsp-config>

<property name=”keepgenerated” value=”true”>

<description>Keep a copy of the generated servlet class’ java code.</description>

</property>

</jsp-config>




開発者の方はこれを消していただくことで、Java のコードは出力されなくなり

全てメモり上で作業が行われますので下記を消して再度配備してみてください。

逆に言うならば、NetBeans 等をご利用されていない場合は、上記のコードを

記載していない場合、Java のコードは出力されませんのでご注意ください。





ちなみに、Java のソースコードの出力先は下記になります。




glassfish-v2.1/domains/domain2/generated/jsp/j2ee-modules/APPLI_NAME/org/apache/jsp




効果の程は、是非皆様ご自身の手で試してみてください。



参考資料の抜粋:


http://blogs.sun.com/kchung/entry/speed_up_jsp_compilations_with





The performance gain for using JSR1 199 API is amazing! Preliminary measurement shows an order of magnitude improvement in raw Javac compilation speed, and a 3.5X improvement in overall execution when running JSP TCK tests!





https://glassfish.dev.java.net/ja/public/WP_GlassFish_Overview.pdf





GlassFish のもう 1 つの注目すべき変更点は、Java コンパイラの Jasper が Java SE 6
のコンパイラ API (JSR-199) を利用できるようになり、ファイル IO の回避とコンパ
イル速度の大幅な向上 (非公式の計測では約 10 倍の高速化) が実現されたことで
す。JSR-199 を使用する場合ほど高速ではありませんが、Eclipse JDT コンパイラを
使用するように Jasper を構成することもできます。残念なことに今は手元にベン
チマーク結果がないのですが、JSF 実装も大幅に改善されました。




2009年4月10日 at 2:18 午前


Java Champion & Evangelist

Translate

ご注意

このエントリは個人の見解であり、所属する会社の公式見解ではありません

カレンダー

2009年4月
 12345
6789101112
13141516171819
20212223242526
27282930  

カテゴリー

clustermap

ブログ統計情報

  • 1,267,794 hits

RSSフィード

アーカイブ