logo

tamaño de en Python

Cuando escribimos scripts grandes o código de muchas líneas, la gestión de la memoria debe ser nuestra máxima prioridad. Por lo tanto, además de buenos conocimientos de programación, debemos tener buenos conocimientos sobre el manejo eficiente de la memoria. Tenemos muchas funciones en Python para obtener el tamaño en la memoria de un objeto particular presente en el programa, y ​​una de esas funciones es __sizeof__(). En este tutorial, aprenderemos sobre la función __sizeof__() y su funcionamiento dentro de un programa Python.

Función __sizeof__() de Python

La función __sizeof__() en Python no nos dice exactamente el tamaño del objeto. No devuelve el tamaño de un objeto generador ya que Python no puede decirnos de antemano cuánto tamaño tiene un generador. Aún así, en realidad, devuelve el tamaño interno de un objeto particular (en bytes) que ocupa la memoria.

Para entender esto, veamos el siguiente programa de ejemplo con un objeto generador sin fin.

rdbms

Ejemplo 1: Mire el siguiente programa Python:

 # A default function with endless generator object in it def endlessGenerator(): # A counting variable to initialize the generator counting = 0 # Using while loop to create an endless generator while True: yield counting counting += 1 # Creating infinite loop # Printing memory size of a generator object print('Internal memory size of endless generator object: ', endlessGenerator.__sizeof__()) 

Producción

 Internal memory size of endless generator object: 120 

Explicación:

Hemos utilizado una función predeterminada, es decir, infinitaGenerador(), para crear un objeto generador sin fin en el programa. En la función, hemos inicializado una variable, es decir, contando = 0. Hemos utilizado un bucle while en la variable de conteo sin dar un punto de interrupción en el bucle. Al crear un bucle infinito en la función, hemos convertido la función predeterminada en un objeto generador sin fin. Finalmente, hemos impreso el tamaño de la memoria interna del objeto generador sin fin usando la función __sizeof__().

personaje en cuerda

Ahora podemos comprender claramente el funcionamiento de la función __sizeof__(). Como el objeto generador sin fin en el programa anterior no tiene ningún final ni punto de interrupción, Python no puede decirnos el tamaño del generador de antemano. Pero al mismo tiempo, podemos verificar el tamaño de la memoria interna asignada al objeto generador mediante la función __sizeof__(), ya que debe estar ocupando algo de memoria interna en Python.

Veamos un ejemplo más en el que usamos la función __sizeof__() para obtener el tamaño de la memoria interna sin ninguna sobrecarga.

Ejemplo 2:

 # Define an empty list in the program emptyList = [] # Printing size of empty list print('Internal memory size of an empty list: ', emptyList.__sizeof__()) # Define some lists with elements a = [24] b = [24, 26, 31, 6] c = [1, 2, 6, 5, 415, 9, 23, 29] d = [4, 5, 12, 3, 2, 9, 20, 40, 32, 64] # Printing internal memory size of lists print('Memory size of first list: ', a.__sizeof__()) print('Memory size of second list: ', b.__sizeof__()) print('Memory size of third list: ', c.__sizeof__()) print('Memory size of fourth list: ', d.__sizeof__()) 

Producción

comando superior de Unix
 Internal memory size of an empty list: 40 Memory size of first list: 48 Memory size of second list: 104 Memory size of third list: 104 Memory size of fourth list: 136 

Explicación:

Usando la función __sizeof__(), podemos ver claramente que el tamaño de la memoria interna de una lista vacía es de 40 bytes y cada elemento presente en la lista agrega un tamaño de 8 bytes al tamaño total de la memoria de la lista.