- - PR -
処理が遅くなる原因について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-04-07 21:10
最近、時々利用させて頂いてます
ASP.NET3.5(言語:vb.net)で開発しています 商品のカスタマイズ画面の処理が遅くなってしまい 困っています プルダウンリストを変更する度に autopostback=trueでDBを見に行き、情報を取得し表示しているのですが 20回程度変更するとかなり遅くなってきます sp(ストアードプロシージャ)の処理速度やデータ転送量はずっと変わらないのですが 表示時間のみ、遅くなってきます よろしくご教授ください | ||||
|
投稿日時: 2009-04-07 21:59
「データの転送量」というのは、どこからどこへの転送量でしょう?
DB サーバーから Web-App サーバーであれば、Web-App サーバーからクライアントの転送量を測ってみてください。 # どこが負荷掛けているかは、計測できる人が計測しないと、憶測でしか答えられませんよ? | ||||
|
投稿日時: 2009-04-07 22:29
jittaさん、お世話になります
>「データの転送量」というのは、どこからどこへの転送量でしょう? クライアントでリクエストしてから WEBサーバーから画面に表示するまでの SENDとレシーブを測っています よろしくお願いします | ||||
|
投稿日時: 2009-04-08 02:38
現在の調査状況です
http://msdn.microsoft.com/ja-jp/library/cc419183.aspx このサイトの内容をもとに、色々試しています <%@ Page Buffer = "true" %> バッファリングを有効にしても効果なしです プルダウンの変更回数が20回を過ぎたぐらいから CPUの使用率が100%近くから下がらなくなります よろしくお願いします | ||||
|
投稿日時: 2009-04-08 08:53
情報の小出しはやめぃ!
なんのCPU使用率?WEBブラウザ?IIS?SQLServer? | ||||
|
投稿日時: 2009-04-08 11:08
(1)Traceによる確認
サーバ側の処理が怪しいと思われるのであれば、適切な箇所でTrace出力を出して 処理時間を見てみればよいのではないでしょうか。 DBのアクセス前後などで出力しておけば、時間がかかっている箇所を絞り込めます。 (2)HTTPレベルの確認 Fiddler等でブラウザ〜IIS間の通信状況を確認してみてはいかがでしょうか。 通信回数やデータ量、所要時間などがわかります。
これは多分辞めた方がいいかもしれません。 プルダウンリストにフォーカスがある状態で、マウスのホイールを回すと 連続してpostbackが起こるので、場合によりサーバにかなりの負荷が 発生すると思います。 CPU負荷というのがクライアント側の話とするなら、 もしかしたら処理が遅くなっていると思われているのは、 描画に時間のかかる巨大画面(巨大DataGridとか)で、 ブラウザがpostbackのレスポンスを受けきっていない状態か もしくは描画に時間がかかっている状態で次のpostbackを発生させ それらが積み重なっている状態なのかもしれません。 (あくまで憶測です) | ||||
|
投稿日時: 2009-04-08 11:19
お世話様です
タコツボさん 指摘されている(1)(2)については 計測致しました (1)(2)とも最初〜20回までほとんど変化がない状態です AJAXを実装していますから、最初のプルダウン変更の後のリクエストは全て はじく作りにしています (ですので、POSTバックが重なることはございません) 甕星さん CPUの使用率はIEです IEの使用率が上がってきます 以上、よろしくお願いします | ||||
|
投稿日時: 2009-04-09 00:56
原因、ある程度、分りました
ajaxの処理の対応不足でした プルダウンリストの変更回数が増える程、 add_endRequestの回数も増えることを知らず、考慮が足りませんでした 最初のadd_endRequestの処理以外は、はじくように 処理を追加しました それでも、CPU負荷が上がるラインが滑らかになっただけで 完全に解消できたわけではないですが,, ajaxを使ったサイトは重いと言われる意味が少しわかった気がします |