我需要知道Windows服务或程序当时使用了多少ram,但我不知道如何到达那里。
这使我重新启动了在服务控制器上指示的服务,但是只有当ram超过我必须指示的某个特定值时,我才需要这样做
ServiceController service = new ServiceController("MSSQLSERVER");
try
{
int millisec1 = Environment.TickCount;
TimeSpan timeout = TimeSpan.FromMilliseconds(100000);
service.Stop();
service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);
int millisec2 = Environment.TickCount;
timeout = TimeSpan.FromMilliseconds(50000 - (millisec2 - millisec1));
service.Start();
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
Console.WriteLine("Errore");
Console.ReadLine();
}
答案 0 :(得分:0)
如果只知道进程名称,则可以
var process = Process.GetProcessesByName("explorer").FirstOrDefault();
var memoryUsed = process?.PrivateMemorySize64;