[英]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.