2015-05-03 3 views
6

Используя следующий код, я могу получить потребление памяти процесса поддавки в МиБ:Как получить процент использования памяти в процессе?

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 

Как я могу изменить это, чтобы вернуть процент потребления памяти?

Update: Мне нужно, чтобы получить текущее значение столбца %MEM при выполнении команды top в терминале для конкретного процесса.

Пример: Мне нужна эта функция, чтобы вернуть 14.2 для идентификатора процесса процесса VirtualBox.

enter image description here

+1

Предоставление вашего определения «процент потребления памяти» сделает более очевидным то, что вам нужно сделать. –

+0

@JonathonReinhart Обновлен мой вопрос. – Meysam

+0

Опять же, предоставление определения этого значения приведет вас к вашему ответу. Что, простыми словами, это означает? Процент * того, что *? –

ответ

8

использование process.memory_percent()

Это согласуется с верхней. В тестовом скрипте ниже, вы можете изменить аргумент функции диапазона, определяющую consume_memory массива, который является только там, чтобы использовать память для тестирования, и как выход питона и верхний выход будут соответствовать:

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() 

pythonVstop

0
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))