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