[英]Getting process ram usage in megabytes
我正在嘗試檢索控制台應用程序的ram使用情況,為此,我正在使用:
var ramUsage = Process.GetCurrentProcess().WorkingSet64;
但是, WorkingSet64
返回的值確實很大,並且我假設這些值是kbs,但我不是100%肯定需要將數字除以1024以得到兆字節,還是需要將其除以1024 * 1024?
任何人都可以闡明Process.WorkingSet64
返回的值到底是什么。
根據文檔 ,此屬性返回的數字以字節為單位。
因此,要將其轉換為千字節,可以將其除以1024。要將其轉換為兆字節,可以將其除以1024 2 。 等等。
以字節為單位返回Process.WorkingSet64
屬性。 根據有關該屬性的MSDN文章:
屬性值類型:System.Int64
分配給關聯進程的物理內存量(以字節為單位)。
https://msdn.microsoft.com/en-us/library/system.diagnostics.process.workingset64%28v=vs.110%29.aspx
在Windows中,為了獲得以兆字節為單位的值,您必須正確地將其除以1024 * 1024
var ramAllocation = Process.GetCurrentProcess().WorkingSet64;
var allocationInMB = ramUsage / (1024 * 1024);
旁注:Windows使用JEDEC標准,其中1 KB = 1024字節。 IEC標准定義1千字節= 1000字節和1千字節= 1024字節。 10.6之后的OSX使用ICE兆字節,因此1 KB = 1000字節。 某些Linux發行版(例如10.10之后的Ubuntu)使用ICE前綴(1兆字節= 1024兆字節和1兆字節= 1000千字節)。 這就是為什么有時購買HDD時,在Windows中(1MB = 1024kB)似乎比廣告尺寸更小(通常1MB = 1000 kB)。
同樣,科迪·格雷指出這是分配的字節數,而不是已使用的字節數。 操作系統分配的內存多於程序使用的確切字節數,通常,不要在不使用內存后立即回收內存。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.