Google
 

martes, agosto 08, 2006

Recolector de basura para C++

¿Qué es?
Se encarga de liberar y reciclar toda la memoria que el programa ha dejado de utilizar.

Mitos
- Es más lento que la gestión manual de memoria.
- El recolector de basura causará pausas en mi programa.
- La gestón manual de memoria no crea pausas.
- Es incompatible con C y C++.

C++
Hay varios recolectores de basura para éste lenguaje. Recomiendo que useis libgc o su versión en desarrollo que soporta multiples hilos de ejecución.

A diferencia de lo que se cree usar un recolector de basura hará nuestro programa más rápido, sobretodo si hacemos un uso intensivo de la memoria como en el caso de sistemas de partículas, por ejemplo.

Recomiendo usarlo en todos vuestros proyectos. Con el estandard C++98 el lenguaje ha ido evolucionando cada vez más hacia los recolectores de basura pero las herramientas como auto_ptr que trae por defecto el lenguaje no son demasiado potentes e incluso a veces resultan un poco engorrosas.

2 comentarios:

Gaston dijo...

Si mal no recuerdo utilizando Managed C++ el recolector ya viene incluido...
Pero supongo que eso es precisamente lo que no quieres, usar C++ .Net

Victor M. dijo...

Pero Managed C++ usa la maquina virtual .Net que lleva ya integrado el recolector de basura. Me he basado unica y exclusivamente en el lenguaje C/C++.