문제

파이썬 응용 프로그램 내에서 시스템의 총 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 Ports는 "-1"을 반환하거나 NotImplementedError.

표준 파이썬 라이브러리만으로는이 작업을 수행 할 수는 없지만 타사 패키지가있을 수 있습니다. 이를 제외하고 OS 패키지를 사용하여 어떤 운영 체제를 사용하고 있는지 확인하고 해당 정보를 사용하여 해당 시스템에 원하는 정보를 획득하고이를 단일 크로스 플랫폼 기능으로 캡슐화 할 수 있습니다.

Windows에서는이 방법을 사용합니다. 다소 해킹되지만 Standard 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