有没有一种方法可以检查特定Windows服务正在使用多少内存?

时间:2019-08-21 07:35:43

标签: c# windows ram

我需要知道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();
        }

1 个答案:

答案 0 :(得分:0)

如果只知道进程名称,则可以

var process = Process.GetProcessesByName("explorer").FirstOrDefault();
var memoryUsed = process?.PrivateMemorySize64;