質問

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)
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top