2. IISアプリケーションプールを管理する
一般にWebアプリケーションを扱う場合は、複数のコンポーネントが関わってきます。通常はメインのWebサイトがあり、1つ以上のWebサービスがあり、場合によってはイメージハンドラアプリケーションがあります。IIS 6.0を使用すると、複数のアプリケーションプールを作成することができます。このアプリケーションプールを使用すると、アプリケーションをグループ化して、個々のワーカープロセスに処理させることができます。
アプリケーションを個々のアプリケーションプールに分けるメリットの1つは、各ワーカープロセスがそれぞれのメモリセットを使用することにあります。どれほど大量のメモリがサーバーに搭載されていても、ASP.NETワーカープロセスが使用するメモリが800~900メガバイトを超えだすと、一般に、ASP.NETワーカープロセスの速度が低下し始めます。
アプリケーションを個々のアプリケーションプールに分けると、複数のワーカープロセスが要求を処理することで、ワーカープロセスあたりのメモリ使用量を低く抑えることが可能です。アプリケーションプールの作成の詳細については、Microsoftのドキュメントを参照してください。
3. ASP.NETの状態を管理する
ASP.NETのさまざまな状態を理解することは、アプリケーションのパフォーマンスを向上するうえで非常に重要です。ASP.NETには多くの状態がありますが、その中でも、アプリケーション状態、セッション状態、プロファイルプロパティに特に注意してください。この3つはすべて、サーバー上のメモリにデータを格納します。本当に必要でない限りは、この3つの状態にあまり多くのデータを格納しないようにします。セッション状態にデータを格納する必要がある場合は、頻繁に使用する識別子フィールドや静的データなど、必要なデータのみを格納します。
ASP.NETの各状態の詳細については、すべての状態に関する多くの記事をWeb上で見つけることができます。各状態は、必要な場合に限って本来の目的で使用します。ASP.NETの状態については、時間をかけて学習し、完全に理解するようにしてください。
注意していただきたいもう1つの状態がビューステートです。これはクライアントに影響します。ビューステートは、サーバーへのラウンドトリップの間、ページまたはコントロール上の値を保持するために使用されます。ASP.NETページとコントロールでは、既定でビューステートがオンになっています。すべてのWebページでビューステートが必要なわけではありません。比較的大きなWebページは、大量のデータをビューステートに格納する可能性があります。目的のページのビューステートを知る1つの方法は、Webブラウザから[ソースの表示]を実行することです。ページの先頭にある暗号のような大きなデータブロックが、ビューステートです。各Webページを調べて、ビューステートが必要かどうかを判断してください。サーバーのポストバックイベントのないページでは、ビューステートをオフにできます。ビューステートは、必要に応じてページ全体、ユーザーコントロール、またはコントロール単位でオフにすることができます。ページまたはコントロールでビューステートをオフにした場合は、ページ全体をテストして、ページが正しく動作することを確認します。
4. スタイルシートとスクリプトファイルを整理する
Webアプリケーションのパフォーマンスを向上させる簡単な方法として、不要なコードや古いスタイルと関数のCSSスタイルシートとスクリプトファイルを除去する方法が挙げられます。開発サイクル時やWebサイトの改善時に、スタイルシートとスクリプトファイルに古いスタイルと関数がそのまま残っていることがよくあります。多くのWebサイトでは、Webサイト全体で1つのCSSスタイルシートまたはスクリプトファイルを使用しています。これらのファイルを調べて、不要なものを取り除くだけで、ページサイズが削減され、サイトのパフォーマンスが向上する場合があります。Webサイトでもう使用されていないスタイルシート内のイメージを参照している場合、そのスタイルシートにイメージを残し、スタイルシートを読み込むたびにそのイメージも読み込むことはパフォーマンスの無駄です。Webサイト内のページに対してWebページアナライザを実行すると、何が読み込まれるか、そして読み込みに最も時間がかかるものは何かを正確に把握できます。