c# - パフォーマンスモニタ - powershell ガベージコレクション



ガベージコレクタは、システム全体とアプリケーション全体のどちらに対応していますか。 (3)

私の同僚と話し合っている間に、.netのガベージコレクタがシステム全体またはアプリケーション全体に機能することに疑問を抱いていました。

すべてのアプリケーションに独自のGCがある場合、それはシステムパフォーマンスに影響を与えますか?

私はそれについて少し混乱しています。


Workstation \ Serverバージョンの.NETランタイムには、プロセスごとにガベージコレクタがあります。 GCでは、管理対象プロセスごとにCPUのオーバーヘッドが発生します。

これがシステムパフォーマンスに影響を与えるかどうかは、管理対象プロセスの数と、それらがガベージコレクションに多くの時間を費やしているかどうかによって異なります。 パフォーマンスカウンタ「GCで費やした時間の割合」を調べることで、プロセスがゴミの収集に費やしている時間を分析できます。



各プロセスには独自の管理ヒープがあり、別々に収集されます。

システム全体のヒープはないので、システム全体のGCは存在できません。

(同じプロセスで複数のCLRを実行している場合は、それぞれに独自のGCもあります。ただし、これは非常にまれな状況です。)





garbage-collection