Si lo que buscas es mejorar la eficiencia, no puedes meter un "proceso" que esté buscando bloques a ver si se referencian, además de mantener la estructura de punteros necesaria para que eso sea posible.
Si Java incluyó el recolector de basura es porque evitaba muchos errores y el crecimiento insostenible de la aplicación, pero todo tiene un coste, y éste es el del rendimiento.
De hecho la versión de Java para tiempo real ha tenido que permitir no usar el recolector de basura, sino unas especies de malloc y free.
por
pobrecito hablador
el Jueves, 21 Febrero de 2008, 12:27h
(#1017972)
No es exactamente el rendimiento el que se ve perjudicado. El gc tiene coste 0 de asignacion/recuperacion. Lo que pasa es que el gc arranca de forma impredecible de vez en cuando (la mayoria de veces por milisegundos).
Si tienes que hacer un java en tiempo real, lo primero que tienes que eliminar es cualquier fuente de impredicibilidad (wow! palabro).
Porque recordemos que "tiempo real" no tiene nada que ver con eficiencia o velocidad. Simplemente que se puede predecir exactamente cuanto tardara una cierta operacion (Y de rebote, que es lo que realmente se busca en esos lenguajes, velocidad constante independiente del entorno).
Un GC determinista, seria perfectamente valido en un entorno TR, llamandolo a mano cuando tu quisieras. El problema es que no existen GC's genericos deterministas, con lo que se tiene que hacer a mano con malloc free o similares.
Re:Sobre la gestión de memoria
(Puntos:2)( http://press.asqueados.net/ | Última bitácora: Jueves, 17 Abril de 2014, 09:50h )
Si Java incluyó el recolector de basura es porque evitaba muchos errores y el crecimiento insostenible de la aplicación, pero todo tiene un coste, y éste es el del rendimiento.
De hecho la versión de Java para tiempo real ha tenido que permitir no usar el recolector de basura, sino unas especies de malloc y free.
Envíos descartados por Mu [barrapunto.com]
Re:Sobre la gestión de memoria
(Puntos:1)( https://blog.rcorral.es/ | Última bitácora: Martes, 29 Junio de 2010, 11:58h )
Pero desde luego coincido en que puede ser una carga adicional que no compense. Eso si, para el programador es una grandísima ayuda.
Saludos.
Disculpe que no me disculpe
Re:Sobre la gestión de memoria
(Puntos:0)Si tienes que hacer un java en tiempo real, lo primero que tienes que eliminar es cualquier fuente de impredicibilidad (wow! palabro).
Porque recordemos que "tiempo real" no tiene nada que ver con eficiencia o velocidad. Simplemente que se puede predecir exactamente cuanto tardara una cierta operacion (Y de rebote, que es lo que realmente se busca en esos lenguajes, velocidad constante independiente del entorno). Un GC determinista, seria perfectamente valido en un entorno TR, llamandolo a mano cuando tu quisieras. El problema es que no existen GC's genericos deterministas, con lo que se tiene que hacer a mano con malloc free o similares.