¿Cómo puedo saber cuál es el uso general de la memoria de la computadora desde Python, que se ejecuta en Windows XP?Obtener el uso de memoria de la computadora en Windows con Python
Respuesta
Querrá utilizar el módulo wmi. Algo como esto:
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"
Puede consultar los contadores de rendimiento en WMI. He hecho algo similar, pero con espacio en disco.
Un enlace muy útil es el Python WMI Tutorial by Tim Golden.
También se puede simplemente llamar GlobalMemoryStatusEx() (o cualquier exportación otra kernel32 o user32) directamente desde 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))
No
necesariamente tan útil como WMI en este caso, pero sin duda un buen truco para tener en tu bolsillo trasero.
Este fue increíble, no tenía idea de que pudieras hacer esto en Windows. – Anders
¿Eso es un retorno en __init__? ¿Por qué harías eso? – Arafangion
La supercomparación puede omitirse porque dwLength se ha inicializado antes y los otros _campos _ no necesitan inicializarse. – phobie
- 1. Cómo obtener el uso de memoria en Windows en C++
- 2. ¿Cómo controlo la CPU, la memoria y el uso del disco de la computadora en Java?
- 3. Uso de memoria de Python con BeautifulSoup
- 4. Obteniendo el nombre de la computadora con Windows ejecutando la secuencia de comandos python?
- 5. ¿Cómo perfilo el uso de la memoria en Python?
- 6. Uso de la memoria del diccionario Python
- 7. Obtener el nombre de la computadora en un servicio de Windows?
- 8. ¿Cómo perfil el uso de la memoria?
- 9. ¿Cómo puedo obtener el nombre de la computadora y la dirección IP de la computadora local?
- 10. Comprobar el uso de memoria del subproceso en Python
- 11. Uso de la memoria del diccionario en Python?
- 12. En C++/Windows, ¿cómo obtengo el nombre de red de la computadora en la que estoy?
- 13. El servicio de Windows creado para apagar la computadora no funciona cuando la computadora está bloqueada
- 14. Optimizar el uso de memoria en numpy
- 15. ¿La memoria de Python pierde el seguimiento?
- 16. Cómo depurar un MemoryError en Python? Herramientas para el uso de la memoria de seguimiento?
- 17. Uso de la memoria Python de las matrices numpy
- 18. Uso de recursos en Windows
- 19. Obtener captura de pantalla en Windows con Python?
- 20. Uso de la biblioteca de imágenes de Python con VirtualEnv en Windows
- 21. Cómo reducir el uso de memoria del código python enhebrado?
- 22. No puedo encontrar my.cnf en mi computadora con Windows
- 23. El uso de la memoria Django aumenta con cada solicitud
- 24. Obtener información de la memoria con Qt
- 25. Obtenga una ID de computadora única en Python en Windows y Linux
- 26. Uso de la memoria de Python: ¿Cuál de mis objetos está ocupando la mayor cantidad de memoria?
- 27. Diferencia de uso de memoria Java entre Linux y Windows
- 28. Uso de la computadora portátil como segundo monitor de programación
- 29. ¿Cómo medir el uso del ancho de banda de la memoria en Windows?
- 30. Script de PowerShell para obtener la velocidad de la tarjeta de red de una computadora con Windows
Lo siento, esto obtiene la memoria física total (obviamente) - Lo dejaré abierto ya que es un paso en la dirección correcta hasta que encuentre el comando WMI para obtener la memoria usada/libre. –
+1. Será trivial cambiar esto para recuperar los datos correctos. – Skurmedel
@NigelHeffernan La respuesta existente ya usa Win32_OperatingSystem para acceder a FreePhysicalMemory. –