psutil虚拟内存测量单位?

时间:2014-02-15 02:31:06

标签: python virtual-memory

当运行psutil.virtual_memory()时,我得到这样的输出:

    >>psutil.virtual_memory()
    vmem(total=8374149120L, available=1247768576L)

但是这些值的衡量单位是多少?文档只是声称它的“总物理内存可用”但仅此而已。我正在尝试将其转换为用户可以实际关联的值(即GB)。

提前致谢

5 个答案:

答案 0 :(得分:11)

为什么不使用位移运算符: 如果你想以人类可读的方式展示,就像这样!

values = psutil.virtual_memory()

以MB格式显示

total = values.total >> 20

以GB格式显示

total = values.total >> 30

答案 1 :(得分:7)

1024 ^ 3 = Byte to Gigabyte
所以我认为这项工作:

import psutil
memory = psutil.virtual_memory().total / (1024.0 ** 3)
print(memory)

答案 2 :(得分:6)

指定的测量单位是字节。您可以使用此代码将其转换为Gb 当你使用该值时,它将具有尾随“L”,但这不会影响计算。

values=psutil.virtual_memory()
def get_human_readable_size(self,num):
    exp_str = [ (0, 'B'), (10, 'KB'),(20, 'MB'),(30, 'GB'),(40, 'TB'), (50, 'PB'),]               
    i = 0
    while i+1 < len(exp_str) and num >= (2 ** exp_str[i+1][0]):
        i += 1
        rounded_val = round(float(num) / 2 ** exp_str[i][0], 2)
    return '%s %s' % (int(rounded_val), exp_str[i][1])
total_size = get_human_readable_size(values.total)

答案 3 :(得分:1)

只需使用 bytes2human

即可转换为更易读的格式,单位为 字节
import psutil
from psutil._common import bytes2human

mem_usage = psutil.virtual_memory()
total_in_human_format = bytes2human(mem_usage[0])
print(total_in_bytes)

输出:

15.6G

答案 4 :(得分:0)

不能注释,所以我使用“答案”。

find . -type f -name "*[!0].jpg"

这是不正确的。前缀Giga表示10 ^ 9。因此,千兆字节为1000 ^ 3字节。您可以忘记多余的24个。

因此:1000 ^ 3 =字节到千兆字节

相关问题