【发布时间】:2014-09-29 01:52:05
【问题描述】:
我编写了一个 C# 控制台应用程序。它可能会消耗大量内存。但是,为了保证它不会耗尽我所有的内存,我想为它设置一个最大内存,比如 5GB。一旦达到最大内存,它应该停止运行或进行一些垃圾收集。
问题是,我可以在 Visual Studio 的哪里设置这个约束?我想 App.config 中一定有一些可配置的东西。
【问题讨论】:
-
参见:stackoverflow.com/questions/1268095/… 似乎是完全相同的问题。
-
@Andy 不,这个问题更多地与设置最小内存量有关(事实上,问题的原因与此无关!)
-
@Jianxun 如果 .NET 从 Windows 收到内存不足通知,它将自动强制进行垃圾收集。请问您能澄清一下您面临的具体问题吗?
-
如果您的程序在.Net 中,我不明白您为什么要这样做。 .Net 内存管理相当懒惰:如果有可用内存,GC 不会费心释放内存。但是一旦内存变低,它就会启动。这意味着您的程序永远不会消耗系统的所有内存,除非在非常特殊的情况下(例如使用非托管内存),或者这意味着它实际上需要它,然后您手头就会遇到一个完全不同的问题。
-
您是否尝试过分析您的应用程序以查看是否有优化其操作并可能减少所需内存的方法,而不是尝试限制您的应用程序将使用的内存量?
标签: c# visual-studio memory max memory-limit