@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

処理が遅くなる原因について

投稿者投稿内容
未記入
常連さん
会議室デビュー日: 2009/03/11
投稿数: 28
投稿日時: 2009-04-07 21:10
最近、時々利用させて頂いてます

ASP.NET3.5(言語:vb.net)で開発しています

商品のカスタマイズ画面の処理が遅くなってしまい
困っています

プルダウンリストを変更する度に
autopostback=trueでDBを見に行き、情報を取得し表示しているのですが
20回程度変更するとかなり遅くなってきます

sp(ストアードプロシージャ)の処理速度やデータ転送量はずっと変わらないのですが
表示時間のみ、遅くなってきます

よろしくご教授ください


Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2009-04-07 21:59
「データの転送量」というのは、どこからどこへの転送量でしょう?
DB サーバーから Web-App サーバーであれば、Web-App サーバーからクライアントの転送量を測ってみてください。

# どこが負荷掛けているかは、計測できる人が計測しないと、憶測でしか答えられませんよ?
未記入
常連さん
会議室デビュー日: 2009/03/11
投稿数: 28
投稿日時: 2009-04-07 22:29
jittaさん、お世話になります

>「データの転送量」というのは、どこからどこへの転送量でしょう?

クライアントでリクエストしてから
WEBサーバーから画面に表示するまでの
SENDとレシーブを測っています

よろしくお願いします
未記入
常連さん
会議室デビュー日: 2009/03/11
投稿数: 28
投稿日時: 2009-04-08 02:38
現在の調査状況です

http://msdn.microsoft.com/ja-jp/library/cc419183.aspx

このサイトの内容をもとに、色々試しています

<%@ Page Buffer = "true" %>
バッファリングを有効にしても効果なしです

プルダウンの変更回数が20回を過ぎたぐらいから
CPUの使用率が100%近くから下がらなくなります

よろしくお願いします
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2009-04-08 08:53
情報の小出しはやめぃ!

引用:

未記入さんの書き込み (2009-04-08 02:38) より:
プルダウンの変更回数が20回を過ぎたぐらいから
CPUの使用率が100%近くから下がらなくなります


なんのCPU使用率?WEBブラウザ?IIS?SQLServer?
タコツボ
常連さん
会議室デビュー日: 2004/01/20
投稿数: 22
お住まい・勤務地: 京都・大阪
投稿日時: 2009-04-08 11:08
(1)Traceによる確認
サーバ側の処理が怪しいと思われるのであれば、適切な箇所でTrace出力を出して
処理時間を見てみればよいのではないでしょうか。
DBのアクセス前後などで出力しておけば、時間がかかっている箇所を絞り込めます。

(2)HTTPレベルの確認
Fiddler等でブラウザ〜IIS間の通信状況を確認してみてはいかがでしょうか。
通信回数やデータ量、所要時間などがわかります。

引用:

プルダウンリストを変更する度に
autopostback=trueでDBを見に行き、情報を取得し表示しているのですが


これは多分辞めた方がいいかもしれません。
プルダウンリストにフォーカスがある状態で、マウスのホイールを回すと
連続してpostbackが起こるので、場合によりサーバにかなりの負荷が
発生すると思います。

CPU負荷というのがクライアント側の話とするなら、
もしかしたら処理が遅くなっていると思われているのは、
描画に時間のかかる巨大画面(巨大DataGridとか)で、
ブラウザがpostbackのレスポンスを受けきっていない状態か
もしくは描画に時間がかかっている状態で次のpostbackを発生させ
それらが積み重なっている状態なのかもしれません。
(あくまで憶測です)
未記入
常連さん
会議室デビュー日: 2009/03/11
投稿数: 28
投稿日時: 2009-04-08 11:19
お世話様です

タコツボさん
指摘されている(1)(2)については
計測致しました

(1)(2)とも最初〜20回までほとんど変化がない状態です

AJAXを実装していますから、最初のプルダウン変更の後のリクエストは全て
はじく作りにしています
(ですので、POSTバックが重なることはございません)

甕星さん

CPUの使用率はIEです
IEの使用率が上がってきます

以上、よろしくお願いします







未記入
常連さん
会議室デビュー日: 2009/03/11
投稿数: 28
投稿日時: 2009-04-09 00:56
原因、ある程度、分りました

ajaxの処理の対応不足でした

プルダウンリストの変更回数が増える程、
add_endRequestの回数も増えることを知らず、考慮が足りませんでした

最初のadd_endRequestの処理以外は、はじくように
処理を追加しました

それでも、CPU負荷が上がるラインが滑らかになっただけで
完全に解消できたわけではないですが,,

ajaxを使ったサイトは重いと言われる意味が少しわかった気がします

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