簡體   English   中英

獲取以兆字節為單位的進程內存使用量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM