Entradas

Mostrando entradas de septiembre, 2011

A recoger la basura

Este post surgió por una consulta en mi trabajo asi que Gracias Guille por la idea! Vamos a hablar un poco del famosisimo proceso de Garbage colection de javascript Como sabrán (deberían) el Garbage colector de un lenguage es el encargado de liberar la memoria que ya no se está utilizando, pero... como es que hace esto? La parte dificil aqui es decidir cual es la memoria que se debe liberar y cual no, entonces es necesario un algoritmo para marcar que objetos en memoria no son más necesarios. En las primeras implementaciones (javascript 1.1 Netscape 3) el garbage collector utilizaba un mecanismo llamado Reference Counting (Conteo de referencias) el cual basicamente mantiene un registro de la cantidad de variables que apuntan a un objeto en memoria. var a = {}; //creamos un objeto en memoria y lo apuntamos desde la variable a // la cantidad de variables (referencias al objeto) es 1 var b=a; //con b apuntamos al mismo objeto aumentando su reference counting en 1 //por lo tanto a