如何获取进程的内存使用百分比?
How to get the percentage of memory usage of a process?
使用下面的代码,我可以获得给定进程的内存消耗,以 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
如何将其更改为 return 内存消耗百分比?
更新: 我需要在终端中为特定进程执行top
命令时获取%MEM
列的当前值。
示例:我需要此函数return 14.2 用于 VirtualBox 进程的进程 ID。
这与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()
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))
使用下面的代码,我可以获得给定进程的内存消耗,以 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
如何将其更改为 return 内存消耗百分比?
更新: 我需要在终端中为特定进程执行top
命令时获取%MEM
列的当前值。
示例:我需要此函数return 14.2 用于 VirtualBox 进程的进程 ID。
这与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()
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))