簡體   English   中英

從Python中獲取總/可用RAM

[英]Getting total/free RAM from within Python

在Python應用程序中,如何以跨平台的方式獲取系統的RAM總量以及當前有多少RAM?

理想情況下,可用RAM的數量應該只考慮實際可以分配給Python進程的物理內存。

您是否嘗試過SIGAR - 系統信息收集器和報告器 安裝后

import os, sigar

sg = sigar.open()
mem = sg.mem()
sg.close() 
print mem.total() / 1024, mem.free() / 1024

希望這可以幫助

對於空閑內存部分,wx庫中有一個函數:

wx.GetFreeMemory()

不幸的是,這僅適用於Windows。 Linux和Mac端口返回“-1”或引發NotImplementedError

psutil將是另一個不錯的選擇。 它還需要安裝一個庫。

>>> import psutil
>>> psutil.virtual_memory()
vmem(total=8374149120L, available=2081050624L, percent=75.1,
     used=8074080256L, free=300068864L, active=3294920704,
     inactive=1361616896, buffers=529895424L, cached=1251086336)

你不能只使用標准的Python庫來做到這一點,盡管可能有一些第三方軟件包可以做到這一點。 除此之外,您可以使用os包來確定您所使用的操作系統,並使用該信息獲取您希望用於該系統的信息(並將其封裝到單個跨平台功能中)。

在Windows中我使用這種方法。 它有點hacky但它​​使用標准的os庫:

import os
process = os.popen('wmic memorychip get capacity')
result = process.read()
process.close()
totalMem = 0
for m in result.split("  \r\n")[1:-1]:
    totalMem += int(m)
print totalMem / (1024**3)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM