2011-08-11 7 views
1

ASP.NET MVC Webアプリケーションのメモリ使用量に関するいくつかの調査を行っています。 私の研究では、私はVirtual Server 4.1でIIS 6.1とSQL Server 2008 R2でWindows Server 2008 R2を使用しています。 ライブサーバーでテストするオプションではないため、仮想サーバーを使用することを選択しました。プロファイリングのためにANTS Memory Profiler 7.0を使用しています。 最初は私がなぜ最もシンプルなウェブサイトでさえもすでに30〜40MBまで使い切っているのだろうと思っていました。

例として、私はVisual Studioのチュートリアルウェブサイトである 'My MVC Application'ウェブサイトを使用していますが、私がプロファイルしたすべてのウェブサイトに同じ概念が当てはまります。私はアイドル状態にあるウェブサイトで蟻プロファイラを実行すると、私は次の要約を取得:今.NET MVCメモリプロファイリングの質問

Generation 1: 26kb
Generation 2: 2100kb
Large object heap: 240kb
Unused memory allocated to .NET: 3265kb
Unmanaged: 20890kb

を、私は、アンマネージブロックにどのような情報である疑問に思って?このブロックのサイズを見つけて、おそらくそれを小さくする方法はありますか?

また、アイドルモードでメモリに合計で〜600kを構成する7000個の文字列オブジェクトがあります。これらの文字列はどこから来ますか?私はこれらの質問に関する情報を私に教えてください。

+0

WinDbg + SOS ... –

+0

私はすでにWinDBGとSOSを調べましたが、上記の質問にこのツールを使用する方法はわかりません。また、ANTSツールが私に与えた情報の多くを私に提供します。 –

答えて

0

ANTSメモリプロファイラ7を使用している場合は、文字列インスタンスなどのInstance Categorizerを使用して、それらを彫刻して、どこから発生したのか調べてください。このような状況では、何千ものインスタンスがあり、どこから来ているのかを考えたい場合に特に便利です。文字列は、この種の分析を非常に頻繁に必要とします。