質問
Pythonアプリケーション内から、システムのRAMの総量と現在の空き容量をクロスプラットフォームで取得するにはどうすればよいですか?
理想的には、RAMの空き容量は、Pythonプロセスに実際に割り当てることができる物理メモリのみを考慮する必要があります。
解決
SIGAR-システム情報収集およびレポーターを試しましたか? インストール後
import os, sigar
sg = sigar.open()
mem = sg.mem()
sg.close()
print mem.total() / 1024, mem.free() / 1024
これが役立つことを願って
他のヒント
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)
空きメモリ部分については、wxライブラリに関数があります:
wx.GetFreeMemory()
残念ながら、これはWindowsでのみ機能します。 LinuxおよびMacポートは" -1"を返します。または NotImplementedError
を発生させます。
標準のPythonライブラリだけでこれを行うことはできませんが、サードパーティ製のパッケージがある場合もあります。それがなければ、osパッケージを使用して、どのオペレーティングシステムを使用しているかを判断し、その情報を使用してそのシステムに必要な情報を取得できます(そして、単一のクロスプラットフォーム機能にカプセル化します)。
Windowsでは、この方法を使用します。それはちょっとハックですが、標準の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)
所属していません StackOverflow