Saltar al contenido

Recorrido narrado

La memoria que gasta cada nodo

Además de la caché, la lista gasta más memoria:

  • cada nodo guarda su valor y un enlace (dos en la lista doble);
  • cada nodo es una reserva de memoria aparte, con su propio costo de reservar y liberar.

Un array de 1000 números de 8 bytes ocupa unos 8000 bytes en un solo bloque. Una lista doble de los mismos números ocupa unos 24 000 bytes (valor y dos enlaces por nodo), repartidos en mil reservas.

En la figura, un elemento de cada representación, con el mismo ancho por cada 8 bytes.

Memoria por elemento: array frente a lista dobleUn elemento del array ocupa 8 bytes: solo el valor. Un nodo de la lista doble ocupa 24 bytes: un enlace anterior de 8, el valor de 8 y un enlace siguiente de 8. Con mil números, el array ocupa 8000 bytes en un solo bloque y la lista doble 24 000 bytes repartidos en mil reservas.Arrayvalor 8 B× 1000 = 8000 bytes en un solo bloqueLista dobleanterior 8 Bvalor 8 Bsiguiente 8 B× 1000 = 24 000 bytes en mil reservas
Un elemento de cada representación, con el mismo ancho por cada 8 bytes.

Por todo esto, el consejo habitual es: empieza con un array. Pasa a una lista solo cuando tengas una razón concreta: que operes junto a nodos que ya tienes, sin recorrer.

Lee el recorrido de esta página. Al pasar al siguiente momento, este cuenta como leído.