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

标签 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

如何更改它以返回内存消耗百分比?

更新:在终端中为特定进程执行top 命令时,我需要获取%MEM 列的当前值。

示例:我需要此函数为 VirtualBox 进程的进程 ID 返回 14.2。

enter image description here

最佳答案

使用process.memory_percent()

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

pythonVstop

关于python - 如何获取进程的内存使用百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30014295/

相关文章:

go - 返回 Golang 中的 CPU 插槽数、核心数和线程数

python - 使用 Python 检测可用的网络适配器

python - Python 标准库中的所有类文件对象都具有 `name` 属性吗?

python - 停止 Floodfill 算法

Python lambda函数根据字典对列表进行排序

linux - 有没有办法在没有底层操作系统的情况下驱动当今的计算机 NIC?

linux - 如何在Linux上开发windows程序集

python - 后台和 fork 的效果有什么区别?

python - 如何使用matplotlib PATH绘制多边形

linux - 收到错误消息 : A single input file is required for a non-link phase when an outputfile is specified