]> git.llucax.com Git - z.facultad/75.00/informe.git/blobdiff - source/gc.rst
Mencionar problema de fragmentación
[z.facultad/75.00/informe.git] / source / gc.rst
index a1eb36080314e62a361ad32bfef5f7e8364a45a7..6abc764357d16f414b1794df82df06d28af10bc1 100644 (file)
@@ -1687,7 +1687,16 @@ utiliza para asignar nuevas celdas de forma lineal, asumiendo un *heap*
 contiguo, incrementando un puntero (ver figura :vref:`fig:gc-copy`).  Esto se
 conoce como *pointer bump allocation* y es, probablemente, la forma más
 eficiente de asignar memoria (tan eficiente como asignar memoria en el
-*stack*).
+*stack*). Esto permite además evitar el problema de la *fragmentación* de
+memoria [#gcfrag]_ que normalmente afectan a los otros algoritmos clásicos (o
+sus *low level allocators*).
+
+.. [#gcfrag] La *fragmentación* de memoria sucede cuando se asignan objetos
+   de distintos tamaños y luego libera alguno intermedio, produciendo
+   *huecos*. Estos *huecos* quedan inutilizables hasta que se quiera
+   asignar un nuevo objeto de tamaño igual al *hueco* (o menor). Si esto no
+   sucede y se acumulan muchos *huecos* se dice que la memoria está
+   *fragmentada*.
 
 .. fig:: fig:gc-copy