- PR -

JSPのレスポンスが遅い

1
投稿者投稿内容
ボブ
常連さん
会議室デビュー日: 2007/10/03
投稿数: 44
投稿日時: 2008-03-04 17:11
Tomcat5.5.17

クライアント(ブラウザ)からあるJSPのページを
リクエストし、HTMLのページを表示させるものを作成しています。

ここで、HTMLのページサイズが軽ければいいのですが、
大きくなると、すごく時間がかかります。

デバックを実行したところ、
CoyoteAdapter.service(CoyoteAdapter.java 151)
のところで時間がかかっているようです。

CoyoteAdapter.javaのソースを見たところ、
147: try {
148: // Parse and set Catalina and configuration specific
149: // request parameters
150: postParseRequest(req, request, res, response);
151: // Calling the container
152: connector.getContainer().invoke(request, response);
153: response.finishResponse();
154:
155: req.action( ActionCode.ACTION_POST_REQUEST , null);
156: } catch (IOException e) {
157: ;
158: } catch (Throwable t) {
159: log(sm.getString("coyoteAdapter.service"), t);
160: } finally {
161: // Recycle the wrapper request and response
162: request.recycle();
163: response.recycle();
164: }

このあたりで時間がかかっているのですが、
原因は何でしょうか?
何か解決策があればご教示頂きたく。

[ メッセージ編集済み 編集者: ボブ 編集日時 2008-03-04 17:14 ]
さんぞう
会議室デビュー日: 2008/03/04
投稿数: 3
投稿日時: 2008-03-04 17:31
プリコンパイルしてみてはどうでしょう。
ボブ
常連さん
会議室デビュー日: 2007/10/03
投稿数: 44
投稿日時: 2008-03-04 17:59
コンパイルはしてあります。
一気に大量のページを表示させるのは
無理があるのでしょうか。。。
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2008-03-04 18:40
デバッガでCoyoteAdapter内を1行ずつ追っていって
どの処理で時間が掛かっているのか
確認してはいかがでしょうか。

実は出力されるHTMLのサイズが大きいので
転送及びブラウザのHTML解析に時間掛かっているだけとか
nagise
ぬし
会議室デビュー日: 2006/05/19
投稿数: 1141
投稿日時: 2008-03-04 18:50
プロファイラなりでどこの処理で時間がかかっているか計測しないことには始りませんね。
Webシステムの場合はネットワークがボトルネックの可能性も考慮しないといけませんし。
HTMLのデータ量によりますが、あすかさんの言うように、
クライアントでのレンダリングが遅いという可能性もありますし。

ページサイズの増加に対して、時間が一次関数的な増え方であれば妥当とも言える。
「すごく時間がかかる」というのも感性では話にならないのでデータ量と
時間の関係を計測して傾向を見て判断する必要がありますね。
ボブ
常連さん
会議室デビュー日: 2007/10/03
投稿数: 44
投稿日時: 2008-03-04 19:17
どうやらクライアント側のIEで、CPUがぶん回ってますので
あすかさん nagiseさんの言われるように

表示に時間がかかっているだけなのかもしれませんね。

もう少し、時間とサイズの関係を調べてみます。
1

スキルアップ/キャリアアップ(JOB@IT)