TOP 的 DATA 欄位是什麼意思?

TOP 的 DATA 欄位是什麼意思?

我試圖弄清楚所有不同記憶體分類的含義,例如 VIRT、RES、SHR 和 DATA。雖然我通常理解前 3 個,但我不知道 DATA 列的含義,除了它的官方定義為 DATA = Data+Stack size (kb)。這與其他 3 類記憶有何關係?

答案1

根據https://techtalk.intersec.com/2013/07/memory-part-2-understanding-process-memory/

此欄位由核心計算為兩個變數之間的差異:total_vm,與 VIRT 和 shared_vm 相同。 shared_vm 在某種程度上與 SHR 類似,因為它共享可共享記憶體的定義,但它不僅僅包含駐留部分,而是包含所有尋址檔案支援記憶體的總和。此外,計數是在映射層級完成的,而不是在頁面一級完成的,因此對於修改後的私有檔案支援內存,shared_vm 不具有與 SHR 相同的微妙性。因此,shared_vm 是像限 2、3 和 4 的總和。

DATA 欄位包含保留的私有匿名記憶體量。根據定義,私有匿名記憶體是特定於程式並保存其資料的記憶體。它只能透過以寫入時複製的方式分叉來共享。它包括(但不限於)堆疊和堆2。此列不包含有關程式實際使用了多少內存的任何信息,它只是告訴我們程式保留了一定量的內存,但是該內存可能會長時間保持不變。

答案2

從手冊頁:

 s: DATA  --  Data+Stack size (kb)
 The amount of physical memory devoted to other than executable code, also known  as
 the ’data resident set’ size or DRS.

換句話說,記憶體用於儲存程式(不是可執行程式)的變數數據

可以說記憶體中的數組是可變資料。

stack size正如所說的那樣,系統用於執行特定程式的堆疊的大小。堆疊是系統儲存程式/進程正在呼叫的函數的回溯的地方。請記住,該指標表示堆疊大小,而不是堆疊本身。

有關您提到的其他內存列的更多信息這裡

答案3

從手冊頁這裡

The amount of private memory **reserved** by a process.  It is also
known as the Data Resident Set or DRS.  Such memory may not yet
be mapped to physical memory (RES) but will always be included in
the virtual memory (VIRT) amount.

相關內容