10章Java EEのパフォーマンス
この章では、Java EEのバージョン6と7に注目します。具体的にはJSPとサーブレットそしてEJB 3.0のセッションBeanを取り上げます。EJB 3.0のエンティティBeanについてはJava EEのテクノロジーではないためここでは扱わず、11章で解説しています。
10.1 基本的なWebコンテナのパフォーマンス
Java EEのアプリケーションサーバーにとって最も重要なのは、Webコンテナのパフォーマンスです。WebコンテナはサーブレットやJSPのページを通じて、HTTPリクエストを処理します。
Webコンテナのパフォーマンスを向上するための基本的な方針は以下のとおりです。変更方法の詳細はJava EEの実装ごとに異なりますが、考え方は共通です。
- 出力を少なくする
- 出力されるデータを少なくすれば、Webページがブラウザに届くまでの時間を短くできます。
- 空白を少なくする
- サーブレットのコードでは、
PrintWriter
に渡す文字列に空白を含めるべきではありません。空白が増えると、ネットワーク上の通信にかかる時間が増加します(処理にかかる時間も増加しますが、ここでは通信時間のほうが重要です)。行末で改行してしまうprintln()
メソッドよりも、print()
を使いましょう。また、タブや空白などを出力しても、HTMLの構造には影響しません。Webページのソースを表示させようとするユーザーはいても、その構造を知りたいわけではありません。本当に構造に対して興味があるのなら、XMLエディタやHTMLエディタを利用すればよいのです。これは社内の品質管理部門やパフォーマンス部門についても当てはまります。確かに、ソースコードの体裁がWebページの構造を反映していれば、デバッグの作業は楽になるでしょう。しかし結局のところ、例えばアプリケーションのレスポンスタイムを改善しようとしたら、インデント表示に対応したエディタを使わざるを得ないでしょう。ほとんどのアプリケーションサーバーでは、自動的にJSPから空白を除去できます。例えばTomcatやこれに基づくオープンソースのJava ...
Get Javaパフォーマンス now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.