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

2009年4月10日 at 2:18 AM



皆様、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 実装も大幅に改善されました。




広告

Entry filed under: Application Server/GlassFish.

週末の散歩シリーズ GlassFish と Tomcat の違い Part 4


Java Champion & Evangelist

ご注意

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

カレンダー

2009年4月
« 3月   5月 »
 12345
6789101112
13141516171819
20212223242526
27282930  

カテゴリー

Twitter

  • RT @backpaper0: てらださんには「テラダヨシオガンバル」って書かれたTシャツ着てほしい 4 hours ago
  • RT @sandayuu: 明日 DevOpsDays Tokyoなのですが、MR. Be Lazyの@DrewRobbins がマイクロソフトブースき来てくれることになりました!こら、質問するチャンスですよ! #DevOpsJP 9 hours ago
  • RT @navitime_tech: JJUG CCC 2017 Spring に日本マイクロソフト寺田様(@yoshioterada)と共同で登壇します。LUISを採用した理由、これからのAIやbot活用の可能性について話す予定です。https://t.co/wjRUbaNw… 3 days ago
  • RT @JJUG: JJUG CCC 2017 Spring(5/20)まで1ヶ月!コンテンツが出そろってきました。タイムテーブルをチェックして、行きたいコンテンツを確認してください。皆様のご参加をお待ちしております! buff.ly/2pGUNlu #jjug3 days ago
  • RT @vrize_inc: マイクロソフトのテクニカルエバンジェリストの方にhackfestを開催していただき、技術的な課題を一緒に解決しました。本社ブログに取り上げていただいてます!! blogs.technet.microsoft.com/livedevopsinja… 3 days ago

clustermap

ブログ統計情報

  • 944,169 hits

Feeds


%d人のブロガーが「いいね」をつけました。