【发布时间】:2015-01-29 10:40:54
【问题描述】:
所以我正在尝试通过 python 获取我的 PC 的可用 RAM 和总 RAM。这就是我现在所拥有的:
def get_memory_status():
kernel32 = ctypes.windll.kernel32
c_ulong = ctypes.c_ulong
class MEMORYSTATUS(ctypes.Structure):
_fields_ = [
("dwLength", c_ulong),
("dwMemoryLoad", c_ulong),
("dwTotalPhys", c_ulong),
("dwAvailPhys", c_ulong),
("dwTotalPageFile", c_ulong),
("dwAvailPageFile", c_ulong),
("dwTotalVirtual", c_ulong),
("dwAvailVirtual", c_ulong)
]
memoryStatus = MEMORYSTATUS()
memoryStatus.dwLength = ctypes.sizeof(MEMORYSTATUS)
kernel32.GlobalMemoryStatus(ctypes.byref(memoryStatus))
return (memoryStatus.dwAvailPhys, memoryStatus.dwTotalPhys)
avail, total = get_memory_status()
print avail + " " + total
如果我执行此操作,我总是会得到相同的可用 RAM 和总 RAM 值。当我要求dwMemoryLoad 时,我得到的值与 Window 的任务管理器中显示的值相同,即“物理内存”是已用 RAM 的百分比(不是 0)。但我想要精确的字节数。难道我做错了什么?
我不能使用任何额外的库,如果可以的话,我早就这样做了。
【问题讨论】:
标签: python windows memory ctypes ram