En este artículo vamos a ver el consumo de memoria en los diccionarios y una lista de tuplas.
Consumo de memoria por dict vs lista de tuplas
El diccionario ocupa mucho más espacio que una lista de tuplas. Incluso un dictado vacío ocupa mucho espacio en comparación con una lista de tuplas.
Ejemplo 1: Como podemos ver claramente, hay una gran diferencia entre el consumo de memoria de ambos tipos de datos cuando ambos están vacíos.
Python3
import sys dict = {} print(dict) # We will get size of empty dict print(sys.getsizeof(dict)) t1 = () d = list(t1) print(d) # We will get size of empty list of tuples print(sys.getsizeof(d))
Producción:
{} 240 [] 64
Ejemplo 2: en este ejemplo, por lo tanto, 3-4 elementos en dict y lista de tuplas.
Python3
import sys # for dict dict = {(1, "G"), (2, "F"), (3, "G")} print(dict) print(sys.getsizeof(dict)) # for list of tuples list1 = (1, 2, 3) list2 = ("G", "F", "G") LoT = list(zip(list1, list2)) print(LoT) print(sys.getsizeof(LoT))
Producción:
{(3, 'G'), (1, 'G'), (2, 'F')} 224 [(1, 'G'), (2, 'F'), (3, 'G')] 112
Nuevamente, podemos comparar que el consumo de memoria es de 224 bytes en dict mientras que 112 para la lista de tuplas.
Ejemplo 3: Consideremos 1-100 elementos en dict y la lista de tuplas y verifiquemos cuál es el resultado.
Python3
import sys # for dict dict = {} for i in range(1, 101): dict[i] = i print(dict) print(sys.getsizeof(dict)) # for list of tuples lst = list(range(1, 101)) print(lst) print(sys.getsizeof(lst))
Producción:
{1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10, 11: 11, 12: 12, 13 : 13, 14: 14, 15: 15, 16: 16, 17: 17, 18: 18, 19: 19, 20: 20, 21: 21, 22: 22, 23: 23, 24: 24, 25: 25 , 26: 26, 27: 27, 28: 28, 29: 29, 30: 30, 31: 31, 32: 32, 33: 33, 34: 34, 35: 35, 36: 36, 37: 37, 38 : 38, 39: 39, 40: 40, 41: 41, 42: 42, 43: 43, 44: 44, 45: 45, 46: 46, 47: 47, 48: 48, 49: 49, 50: 50 , 51: 51, 52: 52, 53: 53, 54: 54, 55: 55, 56: 56, 57: 57, 58: 58, 59: 59, 60: 60, 61: 61, 62: 62, 63 : 63, 64: 64, 65: 65, 66: 66, 67: 67, 68: 68, 69: 69, 70: 70, 71: 71, 72: 72, 73: 73, 74: 74, 75: 75 , 76: 76, 77: 77, 78: 78, 79: 79, 80: 80, 81: 81, 82: 82, 83: 83, 84: 84, 85: 85, 86: 86, 87: 87, 88 : 88, 89: 89, 90: 90, 91: 91, 92: 92, 93: 93, 94: 94, 95: 95, 96: 96, 97: 97, 98: 98, 99: 99, 100: 100 }
4704
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 , 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50 , 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75 , 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100 ]
1008
Para una mayor cantidad de elementos, podemos ver claramente que no hay comparación en el consumo de memoria. dict es casi 4,7 veces la lista de tuplas para solo 100 elementos. Si tenemos miles de elementos para almacenar, solo piense en la memoria tomada por un dict.
Hemos determinado los cambios en el tamaño de ambos objetos después de agregar los elementos que se mencionan a continuación.
Vacío | tipos de datos | consumo de memoria |
---|---|---|
64 | lista de tuplas | aumenta en 64 después de cada 8 elementos |
240 | dictar | aumenta a 368 desde el 6º elemento; 1184 desde el 22º elemento; 2280 del elemento 43; 4704 de 86; 9320 de 171 |
Publicación traducida automáticamente
Artículo escrito por thenavneet y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA