0

リポジトリと NHibernate セッションを挿入するために Windsor を使用する ASP.NET MVC 3 アプリがあります。今日、初めて打ったOutOfMemoryExceptionTransient最初は、Windsor が作成していたオブジェクトをリリースしていないことが原因ではないかと考えました。簡単な実験として、私はそれらすべてをPerWebRequestライフスタイルに変えましたが、メモリ使用パターンに大きな影響を与えていないようです。まだ増加し続けています。

  • キャッシングはしていません
  • アンマネージド リソースは使用していません
  • いくつかの匿名オブジェクトの JSON シリアル化を行っています
  • ストレス テストに使用しているアクションは、小さな JSON オブジェクト (32 バイト) を返すだけなので、大きなオブジェクトはどこにも関与しません。

マネージ ヒープ サイズが安定している (Perfmon で検証済み) のに、IISExpress プライベート バイトが増加し続ける原因は何ですか?

これをデバッグするための適切なツールは何でしょうか? Perfmon はマネージド ヒープのリークを示さないため、CLR プロファイラーは役に立たない可能性があると思います。

4

1 に答える 1

8

Glimpseを無効にした後、メモリ使用量は安定しているようです。

管理されていないメモリをリークするために何ができるかはわかりませんがon="false"、web.config の Glimpse 構成セクションで設定するだけで、すぐにメモリ使用量が安定します。

于 2011-10-18T19:34:17.710 に答える