Python 如何获取进程的内存使用百分比?

Python 如何获取进程的内存使用百分比?,python,linux,psutil,Python,Linux,Psutil,使用以下代码,我可以在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 如何更改此值以返回内存消耗的百分比 更新:在终端中为特

使用以下代码,我可以在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一致。在下面的测试脚本中,您可以将参数更改为定义
消耗内存数组的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()

提供“内存消耗百分比”的定义将使您需要做的事情更加明显。@JonathonReinhart更新了我的问题。再次提供该值的定义将引导您找到答案。简单地说,这意味着什么?百分比是多少?请看。@JonathonReinhart添加了一个示例
import os
import sys
import psutil


for id in psutil.pids():
    p = psutil.Process(id)
    if ( p.name() == 'firefox' ):
        print("id of firefox process : " + str(id))
        mem = p.memory_percent()
        print ("Memory Perentage for Firefox process is " + str(mem))