2015-05-03 7 views
6

Verwendung des folgenden Codes kann ich den Speicherverbrauch eines Gebens Prozess in MiB erhalten:Wie erhält man den Prozentsatz der Speichernutzung eines Prozesses?

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 

Wie kann ich das ändern den Prozentsatz der Speicherverbrauch zurückzukehren?

aktualisieren: Ich brauche den aktuellen Wert der %MEM Spalte zu erhalten, wenn die top Befehl im Terminal für einen bestimmten Prozess ausgeführt wird.

Beispiel: Ich brauche diese Funktion, um 14.2 für die Prozess-ID des VirtualBox-Prozesses zurückzugeben.

enter image description here

+1

Wenn Sie Ihre Definition von "Prozentsatz des Speicherverbrauchs" angeben, wird es deutlicher, was Sie tun müssen. –

+0

@JonathonReinhart Meine Frage aktualisiert. – Meysam

+0

Wiederum führt die Definition dieses Wertes zu Ihrer Antwort. Was bedeutet das in einfachen Worten? Prozent * von was *? –

Antwort

8

Verwendung process.memory_percent()

Dies stimmt mit der Spitze. In das Testskript unten, können Sie das Argument der die consume_memory Array definieren Range-Funktion ändern, die nur dort ist der Speicher für die Prüfung aufbrauchen, und beide Python-Ausgang und Top-Ausgang entsprechen:

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