CodeZine(コードジン)

特集ページ一覧

Webアプリケーションのパフォーマンス向上を実現する5つのステップ

ASP.NETパフォーマンスチェックポイント

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2008/01/18 14:00

開発者の目標は、正しいメモリ管理と、Webサーバーによる要求の処理方法を理解したうえで、適切に動作するWebアプリケーションを開発することです。しかし、それを念頭に置いているにもかかわらず、パフォーマンスを向上させるチャンスを見逃していることがよくあります。本稿では、Webアプリケーションのパフォーマンスを簡単に向上させる5つのステップを紹介します。

目次

はじめに

 ASP.NET Webアプリケーションの運用開始日が近づいているが、パフォーマンスに少々問題がある――このような経験をした覚えはないでしょうか。開発者の目標は、正しいメモリ管理と、Webサーバーによる要求の処理方法を理解したうえで、適切に動作するWebアプリケーションを開発することです。しかし、この目標を念頭に置いてアプリケーション開発に取り組んでいるにもかかわらず、パフォーマンスを向上させるチャンスを見逃していることがよくあります。そこで本稿では、Webアプリケーションのパフォーマンスを簡単に向上させる5つのステップを紹介します。

1. データアクセスオブジェクトを適切に処理する

 データアクセスオブジェクトが正しく処理されないことが、サーバー上のメモリを無駄にする原因の1つです。データアクセスオブジェクトを作成する場合は、その有効期間に加えて、不要になった場合の破棄の方法について正しく理解していることが重要です。私はこれまで、DataReaderを作成し、開き、使用して、破棄しない開発者を何人も見てきました。データアクセスオブジェクトは正しく管理するようにしてください。そうすれば、IISワーカープロセスがメモリを使用し続けて最終的にクラッシュするという問題の原因について悩まずに済みます。ソリューション内で、DataReaderのインスタンスを新規作成している箇所を検索してください。見つかった個々のインスタンスについて、それが適切に閉じられ、破棄されることを確認します。DataReaderを対象とするtry/catch/finallyブロックを使用するか、using文を使用して、例外が発生した場合はfinallyブロックでDataReaderを閉じ、破棄するようにします。

 using文の例は次のようになります。

using (IDataReader reader = MySite.GetSearchResults())
{
   //Consume the datareader
   while (reader.Read())
   {
      //Do something with the data
   }
}

 try/catch/finallyブロックの例は次のようになります。

IDataReader reader;
try
{
   reader = MyWeb.GetSearchResults();
   while (reader.Read())
   {
      //Do something with the data
   }
}
catch (Exception ex)
{
   //Log the exception
}
finally
{
   //Dispose the object if it exists
   if (reader != null)
      reader.Dispose();
}

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • Andrew Bonslater(Andrew Bonslater)

    中規模~大規模組織向けのソリューションデベロッパ。Crowe Chizek(インディアナ州インディアナポリス)の方向性を決定するリーダー。Webベースソリューションが専門。メールアドレスはabonslater@crowechizek.com。

  • japan.internet.com(ジャパンインターネットコム)

    japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.c...

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5