close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Changes between Initial Version and Version 2 of Ticket #1079


Ignore:
Timestamp:
Feb 3, 2011, 9:41:45 AM (14 years ago)
Author:
Víctor de Buen Remiro
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #1079

    • Property Cc Jorge Pedro Gea added
  • Ticket #1079 – Description

    initial v2  
    1 El sistema de conteo de referencias de TOL es muy complicado y tiene errores y situaciones inesperadas que producen a veces pérdidas de memoria (memory leaks) y otros errores peores aunque con menor frecuencia.
     1El sistema de conteo de referencias de TOL es muy complicado y tiene errores y situaciones inesperadas que producen a veces pérdidas de memoria (''memory leaks'') y otros errores peores aunque con menor frecuencia.
    22
    3 Si existiera un sistema de recolección de basura (Garbage collector) que se ocupara de ese problema de forma externa podríamos ahorrarnos mucho esfuerzo en la persecución de este tipo de errores, que son tremendamente difíciles de aislar y aún más de arreglar.
     3Si existiera un sistema de recolección de basura (GC: ''Garbage Collector'') que se ocupara de ese problema de forma externa podríamos ahorrarnos mucho esfuerzo en la persecución de este tipo de errores, que son tremendamente difíciles de aislar y aún más de arreglar.
    44
     5Estas son las posibilidades que se recomiendan a la hora de integrar un GC en una aplicación C/C++:
     6
     7 * '''Conservative garbage collector''': Estos sistemas aportan funciones de asignación y reasignación que hay que llamar en lugar de malloc, realloc o new. En teoría es posible sustituir las funciones del sistema por las del GC para que no haya que tocar el código. [http://www.hpl.hp.com/personal/Hans_Boehm/gc/issues.html Aquí] se pueden ver ventajas e inconvenientes de este tipo de sistemas
     8  * [http://www.hpl.hp.com/personal/Hans_Boehm/gc/ Boehm-Demers-Weiser GC]: de HP con licencia GPL
     9  * [http://developers.sun.com/solaris/articles/libgc.html libgc ]: Creo sólo funciona en el sistema Oracle Solaris y no estoy seguro del tipo de licencia.
     10  * [http://www.codeproject.com/KB/cpp/conservative_gc.aspx CGCC]: Proyecto unipersonal de Yasin HINISLIOGLU con licencia GPL
     11 * '''Template Smart Pointers''': Hay que heredar de una clase base y llamar a un template del tipo para el alojamiento de memoria. Sólo sirve en C++ por razones obvias.
     12  * [http://blog.ilikeblues.com/2010/09/c-garbage-collection-usando-la-libreria-boost/ shared_ptr]: se distribuye dentro de BOOST
     13  * [http://www.codeproject.com/KB/cpp/automatic_gc_using_sp.aspx gcPtr]: Proyecto unipersonal sin licencia específica