2017-10-19 166 views
1

我需要在C#中獲取進程的「提交大小」(Windows任務管理器>詳細信息)。任務管理器中的進程提交大小C#

enter image description here

一見鍾情Process類不提供相關財產。 有人能幫助我嗎?

編輯

private static void ShowCommitSize(string processName) 
    { 
     Process process = Process.GetProcessesByName(processName).FirstOrDefault(); 
     if (process != null) 
     { 
      var pagedMemMb = ConvertBytesToMegabytes(process.PagedMemorySize64); 
      Console.WriteLine(process.ProcessName + "\t" + process.Id + "\t" + Math.Round(pagedMemMb, 3) + " MB"); 
     } 
     Console.ReadLine(); 
    }  

    static double ConvertBytesToMegabytes(long bytes) 
    { 
     return (bytes/1024f)/1024f; 
    } 

輸出

還有就是我的計算提交大小和在任務管理器 '提交大小' 之間的差異。有任何想法嗎?

enter image description here

private static void ShowCommitSize(string processName) 
    { 
     var process = Process.GetProcessesByName(processName).FirstOrDefault(); 
     if (process != null) 
     { 
      var memKb = ConvertBytesToKilobytes(process.PagedMemorySize64); 
      Console.WriteLine(process.ProcessName + "\t" + process.Id + "\t" + memKb.ToString("N") + " K"); 
     } 
     Console.ReadLine(); 
    }  

    static double ConvertBytesToKilobytes(long bytes) 
    { 
     return (bytes/1024f); 
    } 
+0

可能重複的[可用頁面文件大小/虛擬內存](https://stackoverflow.com/questions/14590162/available-pagefile-size-virtual-memory) – Martheen

回答

2

此值是在PagedMemorySize64屬性。文檔中提到,這是「頁面文件大小」進程的性能計數器和here它被記錄在Vista/2008的任務管理器中被稱爲「提交大小」(我會假設更新的操作系統)。

+0

謝謝!我編輯了我的問題,並使用了PagedMemorySize64屬性。計算的提交大小與任務管理器中顯示的值之間仍然存在差異。有任何想法嗎? – BertAR

+0

@BertAR你問的是哪部分差異? 124552 Kb = 121.6 Mb。你問的是0.6 Mb還是誤將kB與Mb比較?截圖之間的值是否有變化? –

+0

感謝您的迅速回復!確實,我的轉換是錯誤的。祝你今天愉快。 – BertAR

相關問題