Windows XP で実行されている Python から、コンピュータの全体的なメモリ使用量を知るにはどうすればよいですか?
11834 次
3 に答える
23
Python から直接 GlobalMemoryStatusEx() (またはその他の kernel32 または user32 エクスポート) を呼び出すこともできます。
import ctypes
class MEMORYSTATUSEX(ctypes.Structure):
_fields_ = [
("dwLength", ctypes.c_ulong),
("dwMemoryLoad", ctypes.c_ulong),
("ullTotalPhys", ctypes.c_ulonglong),
("ullAvailPhys", ctypes.c_ulonglong),
("ullTotalPageFile", ctypes.c_ulonglong),
("ullAvailPageFile", ctypes.c_ulonglong),
("ullTotalVirtual", ctypes.c_ulonglong),
("ullAvailVirtual", ctypes.c_ulonglong),
("sullAvailExtendedVirtual", ctypes.c_ulonglong),
]
def __init__(self):
# have to initialize this to the size of MEMORYSTATUSEX
self.dwLength = ctypes.sizeof(self)
super(MEMORYSTATUSEX, self).__init__()
stat = MEMORYSTATUSEX()
ctypes.windll.kernel32.GlobalMemoryStatusEx(ctypes.byref(stat))
print("MemoryLoad: %d%%" % (stat.dwMemoryLoad))
この場合、必ずしも WMI ほど役立つわけではありませんが、手元に置いておくと便利なトリックであることは間違いありません。
于 2010-01-07T01:42:13.183 に答える
12
wmiモジュールを使用する必要があります。このようなもの:
import wmi
comp = wmi.WMI()
for i in comp.Win32_ComputerSystem():
print i.TotalPhysicalMemory, "bytes of physical memory"
for os in comp.Win32_OperatingSystem():
print os.FreePhysicalMemory, "bytes of available memory"
于 2010-01-07T01:27:57.017 に答える
0
WMI でパフォーマンス カウンターを照会できます。私は似たようなことをしましたが、代わりにディスク容量を使用しました。
非常に便利なリンクは、Tim Golden による Python WMI チュートリアルです。
于 2010-01-07T01:29:38.043 に答える