こんな状況です
私はコンテンツ管理システムに取り組んでおり、最初は管理者ユーザーがコンテンツを入力できる管理側であり、2 つ目はユーザーが管理パネルから管理者によって提供されたコンテンツを表示できるユーザー側です。
ユーザーが私のウェブサイトを閲覧している場合、彼は1つのことだけを行うページにのみアクセスし、ページに従ってデータベースからコンテンツを取得し、そのコンテンツをユーザーに表示します.
問題は、ローカル IIS で Web サイトを実行し、しばらく閲覧して、IIS ワーカー プロセス (w3wp.exe) によるメモリ使用量を追跡すると、ピーク時の使用量が109,292 Kと表示されることです。
これを解決するために、このコードをglobal.asaxファイルに入れました
void Application_EndRequest(object sender, EventArgs e)
{
GC.Collect(0, GCCollectionMode.Forced);
GC.Collect(1, GCCollectionMode.Forced);
GC.Collect(2, GCCollectionMode.Forced);
}
この後、使用量はピーク時の75,980 Kに低下します。
問題は、私はここで正しいことをしていますか? 私はこれを行うべきではないという多くの記事を読んだからですGC.Collect
。
更新
実際の環境では、これは何もない状況ですGC.Collect()