- PR -

ASP.NETの高速化について

1
投稿者投稿内容
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-05-25 15:39
msoです。

いつもおせわになっています。
ASP.NET(VS2002で開発)について教えていただきたいことがあります。


現在、非常に重い画面の高速化をしています。
HTMLのソースファイルのサイズはおよそ1M程度になります。
そこで、HTMLのダイエットを試みようとしているのですが、
もっと良く見るとWebサーバコントロールを非常に多くつかっています。
そこでHTMLコントロールに置き換えてみようと思うのですが、
効果はどの程度あるでしょうか???
ViewStateが現状では300〜400kbもあるので、
ViewStateが激減する可能性があるのであれば徹底的にやってみようと思います。

とりあえず少しだけ置き換え処理をやってみたのですが、
今のところHTMLのサイズはあまり差がありません。


ひょっとしてWebサーバコントロールをHTMLコントロールに置き換えても
それほど効果がないのでしょうか?

何か良い方法や意見があれば教えてください。

#なんか支離滅裂になっていますが、高速化をしたいのです。
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2004-05-25 15:45
NAL-6295です。

http://www.atmarkit.co.jp/fdotnet/entwebapp/entwebapp03/entwebapp03_02.html
が参考になるかも?

*ここから追記
ViewStateをClient側に送信しないで、保持する方法が載っています。
ただ、記事にもあるとおり、サーバ側の負荷が増えますので、そこは注意する必要があります。


[ メッセージ編集済み 編集者: NAL-6295 編集日時 2004-05-25 17:42 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-25 16:59
 ダイエットの基本ですが、どこがどれだけ太っていて、どこが落とせて、そこを落とすことでどれだけ効果があるのか、明確にする必要があります。

 例えば、ViewStateのサイズが500KBで、DataGridが1つと、TextBoxが50個あったとします。TextBoxをすべてViewState = Falseにしても、実はDataGrid(で表示しているデータ)で400KBあったなら、いくらTextBoxのViewStateを落としても、ほとんど無駄なわけです。

 この場合、DataGrid(で表示しているデータ)を落とす必要があるわけですが、その為にはユーザの利便性を犠牲にする必要があるかもしれません。通信速度も利便性の1つですが、あちらを立てればこちらが立たず、どこかでトレードオフが必要です。

 闇雲に変換するのではなく、どこに、どれくらい使っているのか、調べましょう。


[追加]
 Sessionを使う場合は、ステートサーバを慎重に決めなければなりません。DBMSにSQL Serverを使っているなら、ステートサーバをSQL Serverにすればよいのですが、そうするとSessionに格納できるのはシリアライズ可能なオブジェクトになります。ステートサーバを別に立てた場合も同じです。
 アプリケーションがステートサーバになると、どんなオブジェクトでも保持できますが、メモリの60%にあたるメモリを確保すると、ワーカープロセスが再起動し、Session変数が消えます(Sessionも切れます)。

 この辺も考慮して、“ダイエット”する必要があります。
[/追加]

[ メッセージ編集済み 編集者: Jitta 編集日時 2004-05-25 18:29 ]
mso
ぬし
会議室デビュー日: 2003/12/04
投稿数: 496
お住まい・勤務地: 宮城
投稿日時: 2004-05-26 09:27
みなさま、助言ありがとうございます。

現状なのですが、ViewStateを削除した純粋にHTMLだけの
ものを表示したのですがやはりまだ時間がかかっています。
ダイエットが必要だと思っていたのですが、
HTMLの表示速度(レンタリングっていうのでしょうか?)に
かなり問題がある気がしていました。


また、ご指摘いただいたところなのですが、Sessionはシステム仕様で
サーバに負荷をかけないということから使用をしていません。
使うときはViewStateサーバなども含めて考慮させていただきます。

1

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