内存信息

Process.memory_info() - 原文

返回具有变量字段的命名元组,具体取决于表示有关进程的内存信息的平台。 所有平台上可用的 “portable” 字段是 rssvms 。 所有数字都以字节表示。

LinuxmacOSBSDSolarisAIXWindows
rssrssrssrssrssrss(wset的别名 )
vmsvmsvmsvmsvmsvms (pagefile的别名)
sharedpfaultstext--num_page_faults
textpageinsdata--peak_wset
lib-stack--wset
data----peak_paged_pool
dirty----paged_pool
-----peak_nonpaged_pool
-----nonpaged_pool
-----pagefile
-----peak_pagefile
-----private
  • rss: 又名 "常驻内存大小"(Resident Set Size), 这是进程使用的非交换物理内存。在 UNIX 上,它匹配“top”的 RES 列)。在 Windows 上,这是 wset 字段的别名,它匹配 taskmgr.exe 的 “Mem Usage” 列。
  • vms: 又名 “虚拟内存大小”(Virtual Memory Size), 这是进程使用的虚拟内存总量。在 UNIX 上,它匹配“top”的 VIRT 列。 在 Windows 上,这是 pagefile 字段的别名,它匹配 taskmgr.exe 的“Mem Usage” “VM Size”列。
  • shared: (Linux) 可能与其他进程共享的内存。 这与“top”SHR 列匹配。
  • text (Linux, BSD): 又名 TRS (text resident set) 专用于可执行代码的内存量。 这与“top”CODE 列匹配。
  • data (Linux, BSD): 又名 DRS (data resident set) 用于非可执行代码的物理内存量。它匹配“top”DATA 列。
  • lib (Linux): 共享库使用的内存。
  • dirty (Linux): 脏页数。
  • pfaults (macOS): 页错误数。
  • pageins (macOS): 实际页面的数量。

对于 Windows 字段的解释依赖于 PROCESS_MEMORY_COUNTERS_EX 结构文档。 Linux 上的示例:

>>> import psutil
>>> p = psutil.Process()
>>> p.memory_info()
pmem(rss=15491072, vms=84025344, shared=5206016, text=2555904, lib=0, data=9891840, dirty=0)

4.0.0 版本中修改: 多个字段返回, 不仅仅是 rssvms.

Process.memory_info_ex() - 原文

memory_info() 相同(已弃用)。

*⚠️警告:在 4.0.0 版本中已弃用;使用 memory_info() 替换.