0

.NET 4.0 内で次の値を設定する方法を知りたいです (ゲッターはありますが、セッターはありません)。

Process.GetCurrentProcess().PeakWorkingSet64();

アップデート:

プログラムのワーキング セットの増加によって発生するソフト ページ フォールトを減らすために、これを非常に高い値に設定したいと考えています。これは、プロファイラーで特定された遅延の問題に役立つ場合があります。

アップデート:

Yuxiu が指摘したように、ピークを設定することはできません (むしろ観測です)。私が本当にやりたいことは、64 ビット プロセスのワーキング セットを設定することです。

Process.GetCurrentProcess().WorkingSet64() = xxx;

アップデート:

この質問に対する正しい答えは、64 ビット .NET プロセスで MinWorkingSet と MaxWorkingSet を設定する方法ですか?

4

1 に答える 1

1

経由で.NETに存在するSetProcessWorkingSetSizeの後です

Process.GetCurrentProcess().MinWorkingSet = xxx;

このようにして、(ほぼ) すべてのページがページアウトされないようにすることができます。ページングは​​、レイテンシに対処する際の問題の 1 つにすぎません。大きなオブジェクト グラフがある場合、GC 時間もレイテンシ時間に悪影響を及ぼします。本質的にサイズは重要です。全体的なメモリ消費量を減らすと、GC 時間が短くなり、ワーキング セットが少なくなり、ページ アウトされる可能性が低くなります。

于 2012-08-30T19:42:23.773 に答える