3

私は現在、このアプリケーションの稼働時間をできるだけ 100% に近づける必要があるため、リークがあるかどうかを判断するために取り組んでいる C# プロジェクトでメモリ分析を行おうとしています。Ants Memory Profiler バージョン 7.4 を使い始めたところ、マネージド メモリはそうではなかったのに、アンマネージド メモリが時間の経過とともに継続的に増加していることに気付きました。

Console.ReadLine()さらに実験した後、命令をブロックするだけのプログラムで同様の分析を試みました。分析を実行したところ、同じことが起こっていることに気付きました。管理されていないヒープがゆっくりと成長していました。実際には、(スナップショット機能によって) ガベージ コレクターが呼び出されている間だけ大きくなるように見えました。では、ガベージ コレクションを繰り返し呼び出すと、アンマネージ メモリが際限なく増加するのはなぜでしょうか? ANTSと関係あるの?

できればwindbgやSOSなどの他のツールを使用して、管理されていないメモリの使用量を確認したいと思います。その内容を知ることは今のところ重要ではありませんが、これは長期的にはデバッグに役立つかもしれません。現在実行中のアプリケーションのアンマネージ メモリ使用量を特定しようとしているだけです。これが本当にアリの問題なのか、それとも環境がどのように機能するかについての私の誤解なのかを確認したいと思います. 私のプロセスに関する正確な情報を提供するために、ある種の.net、ビジュアルスタジオ、またはWindowsツールがあれば、これに役立ちます。

4

3 に答える 3

0

ガベージ コレクター プロファイラーを使用します。バケット 2 と 3 に 1 よりも多くのオブジェクトがある場合、管理されていないリソースを正しく管理していません。

于 2013-04-04T14:37:25.613 に答える