Как я могу узнать, что используется для общего использования памяти компьютера с Python, работающего в Windows XP?
Использование памяти в Windows с помощью Python
Ответ 1
Вы хотите использовать модуль 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"
Ответ 2
Вы также можете просто вызвать GlobalMemoryStatusEx() (или любой другой файл kernel32 или user32 export) непосредственно из python:
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 в этом случае, но определенно хороший трюк, который нужно иметь в заднем кармане.
Ответ 3
Вы можете запросить счетчики производительности в WMI. Я сделал что-то подобное, но с дисковым пространством.
Очень полезной ссылкой является Python WMI Tutorial от Тима Голда.