¿Sabías que conviene ser cuidadoso creando objetos?

La instanciacrión de objetos, una tarea fundamental en los lenguajes orientados a objetos, tiene en Java dos costes asociados que hay que tener en cuenta a la hora de realizar aplicaciones donde los tiempos de respuesta son crýticos.

Por un lado está el coste de reservar memoria para el objeto. Cada objeto consume una determinada cantidad de memoria. Grafos complejos de objetos pueden llegar a consumir bastante memoria y siempre es una buena práctica intentar maximizar la reutilizacrión de este tipo de entidades.

Por otra parte tenemos el coste de seguimiento del objeto. En Java, el proceso de recoleccrión de basura se encarga de liberar automáticamente la memoria que ocupan objetos que no son accesibles. Para poder realizar este proceso de liberacrión es necesario mantener un seguimiento de todos los objetos que se crean en la mýquina virtual. Cada cierto tiempo, el recolector de basura se lanza y chequea todos los objetos creados para ver si existen referencias a los mismos. Cuantos más objetos hayamos creado, más tiempo durarý el proceso de chequeo y menos memoria tenemos disponible. Nuevamente, la reutilizacrión de objetos se muestra como una gran práctica para evitar la creacrión masiva de entidades.

Para poder ver los efectos de la recoleccrión de basura, se puede utilizar el parýmetro -verbose:gc al lanzar la mýquina virtual de Java. De este modo obtendremos informacrión sobre el tiempo gastado en el proceso de recoleccrión de basura, la memoria utilizada y la memoria liberada en cada ejecucrión de dicho proceso.

No hay comentarios: