使用以下代码,我可以获得给定进程的内存消耗(以 MiB 为单位):
def memory_usage_psutil():
# return the memory usage in MB
import psutil
process = psutil.Process(os.getpid())
mem = process.get_memory_info()[0] / float(2 ** 20)
return mem
如何更改它以返回内存消耗百分比?
更新:在终端中为特定进程执行top
命令时,我需要获取%MEM
列的当前值。
示例:我需要此函数为 VirtualBox 进程的进程 ID 返回 14.2。
最佳答案
这与top一致。在下面的测试脚本中,您可以将参数更改为定义 consume_memory
数组的 range 函数,该数组仅用于使用内存进行测试,并且 python 输出和 top 输出都将匹配:
import os
import psutil
def memory_usage_psutil():
# return the memory usage in percentage like top
process = psutil.Process(os.getpid())
mem = process.memory_percent()
return mem
consume_memory = range(20*1000*1000)
while True:
print memory_usage_psutil()
关于python - 如何获取进程的内存使用百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014295/