0

我想知道如何在 .NET 4.0 中设置以下值(它有一个 getter,但没有一个 setter):

Process.GetCurrentProcess().PeakWorkingSet64();

更新:

我想将此设置为一个非常高的值,以减少由于程序工作集的增加而导致的软页面错误。这可能有助于解决我们使用探查器确定的延迟问题。

更新:

正如玉修所指出的,你不能设定峰值(它更像是一种观察)。我真正想做的是为 64 位进程设置工作集:

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

更新:

这个问题的正确答案是如何在 64 位 .NET 进程中设置 MinWorkingSet 和 MaxWorkingSet?

4

1 回答 1

1

您在通过 .NET 中存在的SetProcessWorkingSetSize之后

Process.GetCurrentProcess().MinWorkingSet = xxx;

通过这种方式,您可以确保(几乎)所有页面都不会被分页。当您处理延迟时,分页只是一个问题。如果你有一个大对象图,GC 时间也会对延迟时间产生负面影响。本质上,大小确实很重要。如果您减少整体内存消耗,您将获得更短的 GC 时间和更少的工作集,从而更不可能被分页。

于 2012-08-30T19:42:23.773 回答