.NETでガベージコレクションを一時停止する方法

.net garbage-collection memory-management performance

私は、大量のデータを処理する.NETコードでパフォーマンステストをいくつか実行しています。 ガベージコレクタが自分の結果に影響を及ぼさないことを確認するテストが必要です。 ガベージコレクタを一時停止する方法

  4  0


ベストアンサー

BCL APIを介してこれを行う方法はありません。

特定のアルゴリズムのプロファイリングのためにそれをオフにすることも、誤った結果をもたらすので、あまり良い考えではありません。 プログラムの実行中にガベージコレクタが実行されます。 GCなしでプロファイリングを行うと、現実の世界で多くのガベージコレクションが発生する場合、アルゴリズムに関する実際の問題を隠すことができます。

11


私はこれに答えるのが少し遅れていることを知っています、しかしMSDN http://msdn.microsoft.com/en-us/library/system.runtime.gcsettings.latencymode.aspxによるとここで `GCSettings.LatencyModeと呼ばれるプロパティです`LowLatency`に設定できます。 この値は、メモリ不足状態が発生していないか、GCを開始するための明示的な呼び出しが行われていない限り、Gen2 GCを防ぎます。

3


実世界にはガベージコレクションが含まれます。 これはランダム到着プロセス(ポアソン)であるため、モンテカルロ方式でそれを行い、数1000回のプロファイリングを実行して結果を平均することには価値があります。

2


タイトルとURLをコピーしました