Medir eficientemente el uso de memoria de objetos Python con sys.getsizeof()
Con sys.getsizeof() puedes comprobar el uso de memoria de un objeto:
import sys
mylist = range(0, 10000)
print(sys.getsizeof(mylist)) # 48
¡Espera…! ¿Por qué esta lista enorme ocupa solo 48 bytes?
Es porque la función range devuelve un objeto iterable que se comporta como una lista de números, pero internamente solo mantiene la cuenta de la última iteración. Un range es mucho más eficiente en memoria que una lista real de números.
Puedes verificarlo tú mismo usando una comprensión de lista para crear una lista real de Python a partir del mismo rango:
import sys
myreallist = [x for x in range(0, 10000)]
print(sys.getsizeof(myreallist)) # 87632
Eso son aproximadamente 87 KB para 10,000 números.
python
- Preparación Esencial de Primavera para Equipos de Construcción: Ahorra Tiempo y Alarga la Vida Útil
- Chequeo trimestral de salud de la cadena de suministro: Garantice operaciones fluidas
- Dominando tipos de datos en Python: Guía práctica
- Dominando operadores en Python: Guía completa
- Dominando bucles for en Python: Sintaxis, ejemplos y patrones avanzados
- Dominando la sentencia pass en Python: Guía práctica
- Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
- Dominando Diccionarios en Python: Creación, Manipulación y Técnicas Avanzadas
- Dominando la función range() de Python: desde lo básico a casos avanzados
- Python time.sleep(): cómo añadir retrasos en tu código (ejemplos)
- Comprobación de existencia de archivos y directorios en Python – Guía práctica