開発者の目標は、正しいメモリ管理と、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(); }
この記事は参考になりましたか?
- japan.internet.com翻訳記事連載記事一覧
- この記事の著者
-
japan.internet.com(ジャパンインターネットコム)
japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.com や EarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
Andrew Bonslater(Andrew Bonslater)
中規模~大規模組織向けのソリューションデベロッパ。Crowe Chizek(インディアナ州インディアナポリス)の方向性を決定するリーダー。Webベースソリューションが専門。メールアドレスはabonslater@crowechizek.com。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
