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.
- Timestamp:
-
Feb 3, 2011, 9:41:45 AM (14 years ago)
- Author:
-
Víctor de Buen Remiro
- Comment:
-
Legend:
- Unmodified
- Added
- Removed
- Modified
-
- Property Cc Jorge Pedro Gea added
-
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. |
| 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. |
2 | 2 | |
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. |
| 3 | Si 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. |
4 | 4 | |
| 5 | Estas 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 |