Diferencia entre el método __sizeof__() y getsizeof() – Python

La gestión de la memoria es de máxima prioridad cuando escribimos grandes fragmentos de código. Entonces, además de un buen conocimiento de codificación, es importante poder escribir programas para manejar la memoria de manera eficiente. 

Entonces, veamos las dos formas de obtener el tamaño de un objeto en particular en Python. Estos son el método getsizeof() y el método __sizeof(). 
getsizeof () es un método específico del sistema y, por lo tanto, tenemos que importar el módulo sys para usarlo. A continuación se muestra un código de muestra para calcular el tamaño de una lista.
 

Python3

import sys
a =[1, 2]
b =[1, 2, 3, 4]
c =[1, 2, 3, 4]
d =[2, 3, 1, 4, 66, 54, 45, 89]
print(sys.getsizeof(a))
print(sys.getsizeof(b))
print(sys.getsizeof(c))
print(sys.getsizeof(d))

Producción: 
 

80
96
96
128

El método getsizeof() llama al método __sizeof__() del objeto con una sobrecarga adicional del recolector de basura. Por lo tanto, el tamaño devuelto por el método getsize() será mayor que el devuelto por el método __sizeof()__. 
Por ejemplo, el método getsizeof() devuelve 64 bytes para una lista vacía y luego 8 bytes para cada elemento adicional.
Ahora veamos el método __sizeof__() . Devuelve el tamaño del objeto sin sobrecarga.
 

Python3

w =[1, 2]
x =[4, 5, 7, 9]
y =[2, 8, 6, 56, 45, 89, 88]
z =[54, 45, 12, 23, 24, 90, 20, 40]
print(w.__sizeof__())
print(x.__sizeof__())
print(y.__sizeof__())
print(z.__sizeof__())

Producción: 
 

56
72
96
104

Por ejemplo, el método __sizeof__() devuelve 40 bytes para una lista vacía y luego 8 bytes para cada elemento adicional.
 

Publicación traducida automáticamente

Artículo escrito por ashwinsharmap y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *