限制.NET进程可以使用的最大RAM量?

时间:2014-11-05 21:13:45

标签: c# .net memory-management process

我有一个.NET进程,由于我不会进入的原因,消耗大量的RAM。我想要做的是实现此进程可以使用的RAM量的上限。有没有办法做到这一点?

我找到的最接近的是Process.GetCurrentProcess().MaxWorkingSet根据我读过的文档,我根本不认为我想要的是什么。

我提出的最好的方法是使用GC.GetTotalMemory(true)来获取正在使用的RAM量,如果超过一定量则重新启动。但这并不理想。

1 个答案:

答案 0 :(得分:2)

您可以致电SetProcessWorkingSetSizeExSetProcessWorkingSetSize来设置流程工作集的最小和最大尺寸。

SetProcessWorkingSetSize有一个pinvoke.net条目。

请务必阅读MSDN文档,了解您决定拨打的任何功能。

请注意,这不会阻止您的应用程序分配更多虚拟内存,而是限制进程的虚拟内存在任何给定时间占用的物理RAM量。