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.