【问题标题】:Python : Computer Memory InformationPython:计算机内存信息
【发布时间】:2018-02-27 16:48:52
【问题描述】:

我写了一个函数来获取我电脑的内存。但我不认为这是获得它的最佳方式。

def MEMORY():
mem = psutil.virtual_memory()
MEMORYlist = []
for m in mem:
    if m > 100 :
        MEMORYlist.append( str(round(m/1073741824, 3)) + "Gb" )
    else :
        MEMORYlist.append( str(m) + "%")
return MEMORYlist

结果如下所示:

['15.804Gb', '11.303Gb', '28.5%', '4.502Gb', '11.303Gb']

我想知道是否有更好的方法来获得相同的结果。谢谢

【问题讨论】:

  • 请定义“足够好”。您希望改进哪些方面?
  • 类似this ?
  • 我不是真正的程序员,所以觉得我的代码不够好?我想让我的代码更短,消耗更少的资源并运行得更快。就是它。

标签: python python-2.7 python-2.x


【解决方案1】:

你为什么要遍历mem?,它是一个包含你可能需要的所有信息的对象。您只需要执行以下操作:

import psutil

def get_memory_info():

    mem = psutil.virtual_memory()

    def bytes_to_gb(amount):
        return round(amount / 1e+9, 2)

    data = {"total": bytes_to_gb(mem.total),
            "used": bytes_to_gb(mem.used),
            "available": bytes_to_gb(mem.available),
            "percent": mem.percent
            # Add here whatever data you need
            }

    return data

print(get_memory_info())

【讨论】:

  • 您好,epinal,谢谢您的评论,但我可以在您划分 1e+9 时问一下吗?结果不那么准确。我认为我的结果更准确。
  • @QuangLe 数据以字节为单位我刚刚使用了这个转换google.com/…,你可以使用你自己的,这只是一个例子。如果您需要其他任何内容,请告诉我,如果不需要,请接受答案;-)
  • 是否有办法检查您的代码运行速度是否比我的成本低。我确定有办法在 Python 中检查运行时间,但不确定资源
  • 当然,添加:start_time = time.time()# call the function hereend_time = time.time()print("Time elapsed in milliseconds: %s" % (end_time - start_time))。然而,问题不在于时间,而在于一种更好的方式来获取您需要的数据,并且您以某种方式跳过了一个在这种情况下是错误的实例。
  • 谢谢epinal,我明白了!
猜你喜欢
  • 2017-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多