c# 获取某进程占用的内存

Process[] processes = Process.GetProcesses();
            long totalMemery = 0;
            StringBuilder sbResult = new StringBuilder();
            foreach (Process process in processes)
            {
                sbResult.AppendFormat("名称:{0} 内存大小:{1}KB \n", process.ProcessName, process.PrivateMemorySize64 / 1024);
                totalMemery += process.PrivateMemorySize64 / 1024;
            }
            string result = string.Format("进程总数 {0} 个,共占内存:{1}MB \n", processes.Length, totalMemery / 1024)
                + sbResult.ToString();
            MessageBox.Show(result);

===================

使用这个方法,获取到内存与[任务管理器]里面获取到的内存,不一致,怎么获取到和[任务管理器]里一致的数据??


茅侃侃
浏览 1828回答 2
2回答

三国纷争

Process 类关于 MemorySize 的属性有好几个,你只是取了 PrivateMemorySize64 属性而已。你仔细看下“任务管理器”,里面关于进程内存的列也有好几个。

慕妹3242003

拿到pid  从tasklist 找。
打开App,查看更多内容
随时随地看视频慕课网APP