ASPを上げる.NET Webアプリケーションの性能の24種類の方法と技巧

6808 ワード

では、パフォーマンスの問題はどのように解決すればいいのでしょうか.以下は、アプリケーションシステムのリリース前に、NET開発者がチェックするポイント.
1.debug=「false」
ASPを作成するときNET Webアプリケーション、デフォルトは「true」です.開発中は「true」に設定するのは便利ですが、アプリケーションが導入をパブリッシュするときは「false」に設定する必要があります.
<compilation defaultLanguage="C#" debug="false" targetFramework="4.0" /> 

2.tracingを閉じる(トレース)
tracingはとても怖くて、それを閉じるのを忘れたことがありますか.役に立たない場合は、Webを編集してください.configを閉じます.プログラムリソースが大量に消費されます.
<trace enabled="false" requestLimit=”10” pageoutput=”false” traceMode=”SortByTime” localOnly=”true”> 

3.セッションを無効にする
セッショントラッキングが使用できない場合は、必ず無効にしてください.各asp.Netページには次のように設定されています.
<%@ page language="c#" codebehind="webform1.aspx.cs" autoeventwireup="false" inherits="webapplication1.webform1" enablesessionstate="false" %> 

4.リリース・バージョンを使用したアプリケーションの導入
アプリケーションを本番環境に配備する場合は、デバッグモードではなくパブリッシュバージョンモードが使用されていることを確認します.デバッグテンプレートを使用すると、リクエストタイムアウトが発生しやすくなります.リリース・バージョンに配備すると、速度が大幅に向上します.
5.ページのView Stateを閉じる
View Stateは主にコミット後に表示されますが、ページ内のデータがこのページにコミットされた場合にのみ使用されます.デフォルトは「true」です.フォームデータの返信を使用していない場合は、View Stateを閉じることができます.
<%@ Page EnableViewState="false" %> 

6.Responseの使用を避ける.Redirect
Redirect(リダイレクト)は、現在の物理サーバ開発から他のサーバにジャンプするためにのみ使用される面倒です.本サーバ開発内のページジャンプのみの場合はサーバを使用してください.Transfer構文は、不要なクライアントのリダイレクトを大幅に削減します.
7.StringBuilderクラスの運用及びToString()メソッドの使用
Stringクラスオブジェクトは変更できません.Stringオブジェクトの再割り当ては、本質的にStringオブジェクトを再作成し、そのオブジェクトに新しい値を付与する方法であり、ToStringのパフォーマンスの向上は顕著ではありません.文字列の処理にはStringBuilderクラスを使用することが望ましい.NETネーミングスペースはSystem.Text.このクラスは新しいオブジェクトを作成するのではなく、Append、Remove、Insertなどの方法で文字列を直接操作し、ToString方法で操作結果を返します.その定義と操作文は次のようになります.
int num;   System.Text.StringBuilder str = new System.Text.StringBuilder(); //        str.Append(num.ToString()); //    num   Response.Write(str.ToString); //      

8.放出異常の回避
例外により速度が遅くなり、アプリケーションページに例外が表示され、他の操作ができなくなります.try/catchを使用して、発生した例外をログファイルに記録できます.
9.finallyメソッドを使用してリソースを回収する
アプリケーション開発で他のデータベース接続とアクセスファイルを大量に使用している場合は、使用後に閉じることを確認します.finallyブロックはプログラムで最後に実行されるので、この中のコードは必ず実行されることを確保し、コードを閉じるには必ずこの開発方法ブロックで実行しなければならない.
10.クライアント・スクリプトによる検証
サーバ開発側の検証の代わりにクライアント検証を使用します.サーバ開発側のデータ検証では、サーバ開発上のリソースが大量に消費され、大量のページデータが転送されます.
11.Pageを使用する.IsPostback
返信コードがあまり実行されないことを確認してください.Pageを使用します.IsPostBackプロパティは、応答クライアントに返信せずにページ初期化ロジックのみを実行することを保証します.
12.ページングの使用
ほとんどのWebアプリケーションのデータは表形式で表示されます.ページングはアプリケーション開発プログラムを利用して効率的です.できるだけ小さなデータを表示するたびに、ページの表示速度が速くなります.
13.Ajax非同期呼び出しの使用
Ajaxメソッドを使用して、非同期呼び出しを行います.
14.未使用のHttpModulesを削除する
httpModulesの場合、任意のWebアプリケーションに挿入されるHttpApplicationイベントフックを確立するための汎用的なものと理解できます.HttpModuleを使用するのは多重化可能で、特定語のアプリケーションコードを必要とせず、webだけが必要である.configのエントリです.Webでconfigファイルで、未使用のHttpModulesを削除します.
15.再帰関数/ネストループの回避
どのプログラミング言語でも、パフォーマンスを向上させるためにネストされたループと再帰関数を回避する必要があります.
16.不要なServer Controlを使用しない
ASP.NETでは,多数のサーバ側コントロールがプログラム開発を容易にするが,ユーザがサーバ側コントロールを操作するたびにサーバ側との往復過程が発生するため,性能の損失をもたらす可能性がある.そのため、必要でない場合は、Server Controlをあまり使用しないでください.
17.複数のアクションを呼び出す場合は、マルチスレッドを使用します.
問題が発生した場合、シングルスレッドカードはこの問題で長時間動作します.したがって、複数のスレッドを使用して、アプリケーションの応答速度を向上させることができます.
18.データベースの接続とクローズ
データベース・リソースにアクセスするには、接続の作成、接続のオン、および接続のオフのいくつかの操作が必要です.これらのプロセスでは、認証によってサーバリソースを比較するためにデータベースと情報を複数回交換する必要があります.ASP.NETには接続プール(Connection Pool)が用意されており、データベースのオン/オフがパフォーマンスに与える影響を改善します.システムはユーザーのデータベース接続を接続プールに配置し、必要に応じて取り出し、閉じると接続を回収し、次の接続要求を待つ.接続プールのサイズは限られており、接続プールが最大限に達した後も接続を作成する必要がある場合は、パフォーマンスに大きな影響を及ぼします.したがって、データベース接続を確立した後、本当に操作が必要な場合にのみ接続を開き、使用が完了したらすぐに閉じることで、データベース接続が開く時間をできるだけ減らし、接続制限を超えないようにします.
19.SqlDataReaderクラスを高速データのみカーソルに使用する
SqlDataReaderクラスは、SQL Serverデータベースから取得したデータストリームのみを読み込む方法を提供します.ASPを作成する場合NETアプリケーションで使用できる場合、SqlDataReaderクラスはDataSetクラスよりも高いパフォーマンスを提供します.これは、SqlDataReaderがSQL Serverのネイティブネットワークデータ転送フォーマットを使用してデータベース接続から直接データを読み出すためです.また、SqlDataReaderクラスでは、サーバコントロールにデータをバインドできるIEnumerableインタフェースも実装されています.詳細については、SqlDataReaderクラスを参照してください.ASPについてNETがデータにアクセスする方法については、ASPを参照してください.NETアクセスデータ.
20.高性能のSQL文規則
  • 全表スキャン
  • は極力避ける.
  • where句におけるフィールドのnull値判断
  • は極力避ける.
  • where句での使用をできるだけ避ける!=または<>オペレータ
  • where句でorを使用する条件
  • を接続することをできるだけ避ける.
  • inとnot inも
  • を慎む
  • where句の「=」の左側で関数、算術演算、または他の式演算
  • を行わないでください.
  • Update文1、2フィールドのみを変更する場合は、Updateのすべてのフィールド
  • を使用しないでください.
  • 複数のビッグデータ量(ここ数百本は大きいとしても)のテーブルJOINに対しては、まずページを分けてからJOINしなければならない.そうしないと論理読みが高く、性能が悪い
  • である.
  • できるだけvarchar/nvarcharをchar/ncharの代わりに使用するより多くのルール方法を参照してください.http://database.51cto.com/art/201407/445934.htm

  • 21.キャッシュ
    キャッシュは空間で時間を交換する技術で、一般的には得られたデータをメモリにしばらく保存し、この短時間でサーバはデータベースや実際のデータソースを読み取るのではなく、メモリに保存されているデータを読み取ることができます.キャッシュは、Webサイトのパフォーマンス最適化に不可欠なデータ処理メカニズムであり、データベースの圧力を効果的に緩和します.ASP.NETのキャッシュは主に次のように分けられます.
  • ページキャッシュ
  • データソースキャッシュ
  • カスタムデータキャッシュ
  • 22.負荷分散とサーバ加算
    負荷等化は単に拡張性を実現する手段と見なすべきではない.拡張性が向上したに違いありませんが、リクエストとユーザーが複数のサーバを配布しているため、Webアプリケーションのパフォーマンスが向上することが多いです.
    23.FxCopによるコードチェックと最適化
    FxCopはコード分析ツールで、ルールベースのエンジンを使用して、コードの規範に合わない部分をチェックします.自分のルールをカスタマイズしてこのエンジンに参加することもできます.いくつかのルールは次のとおりです.
  • 過剰な局所変数を避ける
  • 呼び出していないプライベートコード
  • の使用を避ける.
  • インスタンス化されていない内部クラスを避ける
  • 未密封特性
  • の使用を避ける.
  • 不必要な強制変換を避ける
  • .
  • 参照タイプの静的フィールド
  • をインラインで初期化する.
  • NeutralResourcesLanguageAttributeタグセット
  • は、メンバーをStaticなどとマークします.

  • 24.ASP.NETパフォーマンスモニタリングツール
    これらは、コードのパフォーマンスを監視するためのツールです.
  • .NETメモリアナライザ
  • Red Gate ANTS性能分析ツール
  • Fiddler
  • 性能カウンタ
  •  
    転載:http://geek.csdn.net/news/detail/52589