From 6e74d0a5708f7882c1fe837ad413974db3275012 Mon Sep 17 00:00:00 2001 From: Leandro Lucarella Date: Fri, 19 Jun 2009 20:54:06 -0300 Subject: [PATCH] =?utf8?q?Mencionar=20problema=20de=20fragmentaci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- source/gc.rst | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 -- 2.43.0