0

メモリリークがあります。大きなオブジェクト グラフを作成してから、それを逆参照しています。

 var a = MyDomainModel.Create();
 a = null;
 //GC.Collect();
 Console.ReadLine();

そこには管理されていないものはありません。JustTrace と ANTS (バージョン 6) はどちらも、オブジェクトが「System.Object[]」によって保持されていることを報告しています。内部でArrayListを使用している静的フィールド(リスト/辞書/ハッシュセット)がどこかに隠されていると想定しています。私は少しテキスト検索を行う予定です (おそらく正規表現もそこにあるでしょう)。これは、30 のプロジェクトを持つかなり大きなソリューションです。「現在のプロジェクトと、現在のプロジェクトによって直接/間接的に参照されているソリューション内のすべてのプロジェクト」で Visual Studio のテキスト検索を行う方法はありますか? 基礎となる物理ファイル フォルダーは、これらの依存関係を意味のある形で表す方法で編成されていません。

4

2 に答える 2

1

Windows 7 を使用している場合は、ライブラリを作成し、プロジェクトの場所をライブラリに追加します。実際に何かを移動したりコピーしたりせずに、それらすべてを 1 か所に整理する必要があります。次に、Visual Studio からライブラリ フォルダーでテキスト検索を実行します。

于 2012-08-14T07:54:19.610 に答える
0

問題はすでに解決されていると思います。他の誰かが同様のことを経験している場合、JustTrace はルート パス ビューを通じてこのシナリオを処理するようになりました。ここにいくつかのパスがあります。

  1. 最大のメモリ保持者: object[] によってメモリに保持されているオブジェクトの 1 つを見つけます。オブジェクトを選択し、リボンの [ルート パス] ボタンをクリックします。

  2. タイプ別: タイプを選択し、リボンの [インスタンス] ボタンをクリックします。インスタンスの 1 つを選択し、[ルート パス] をクリックします。

  3. Incoming References by Type: タイプを選択し、リボンの [Instances] ボタンをクリックします。インスタンスの 1 つを選択し、[ルート パス] をクリックします。

ルート パス グラフには、インスタンスを保持するメンバー名が表示され、静的なフィールド/プロパティがマークされます。例については、下の画像を参照してください。

静的なルート パス

于 2013-02-14T08:17:09.587 に答える