From: Leandro Lucarella Date: Fri, 19 Jun 2009 23:54:06 +0000 (-0300) Subject: Mencionar problema de fragmentación X-Git-Tag: entrega-2010-10-08~40 X-Git-Url: https://git.llucax.com/z.facultad/75.00/informe.git/commitdiff_plain/6e74d0a5708f7882c1fe837ad413974db3275012?ds=inline Mencionar problema de fragmentación --- diff --git a/source/gc.rst b/source/gc.rst index a1eb360..6abc764 100644 --- a/source/gc.rst +++ b/source/gc.rst @@ -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