我正在创建一个服务器(控制台应用程序),但经过一些长期测试后,我发现它越来越多吃RAM。对于本地测试套件,我没有使用大量内存 (8GB-DDR3 @ 2400MHz)如果使用超过'x'的RAM,有没有办法(在Program.cs中,我假设)重启程序?另外,一种方法可能是定时循环/检查?
答案 0 :(得分:0)
您可以使用GC.GetTotalMemory
。它返回程序分配的内存的近似值(long
)。
您可以创建Timer
对象并在Tick
事件处理程序下进行此比较。
有关详细信息,请查看此处:http://msdn.microsoft.com/en-us/library/system.gc.gettotalmemory.aspx
答案 1 :(得分:0)
我同意其他人对修复内存泄漏的看法。
如果要重新启动程序,请创建第二个监视第一个进程的应用程序。然后,当原始应用程序中的内存过高时,请安全地将其关闭并允许第二个应用程序再次启动它。