Pool de Objetos
1. Object Pooling (Pool de Objetos) #
El Object Pooling es un patrón de optimización que reutiliza objetos en lugar de crearlos y destruirlos repetidamente, reduciendo el costo de la memoria y el procesamiento.
¿Por qué usar un Pool de Objetos? #
- Evita la creación y destrucción repetitiva de objetos.
- Mejora el rendimiento en aplicaciones con objetos costosos (como conexiones a bases de datos o sprites en juegos).
- Reduce el impacto del Garbage Collector, evitando que se acumulen objetos temporales.
2. Ejemplo Malo (Sin Pool de Objetos) #
Cargando actividad al acercarte…
3. Ejemplo Optimizado (Con Pool de Objetos) #
Mejoras: #
- Menos objetos creados dinámicamente.
- Ahorro de memoria y CPU.
- Optimiza la memoria almacenando conexiones en un pool.
- Menos impacto en el rendimiento.
- Ideal para escenarios de alta concurrencia.
Cargando actividad al acercarte…
Resumen del tema
Conceptos clave #
- Patrón Object Pool: almacén de objetos pre-inicializados listos para su uso y posterior devolución al conjunto, en lugar de instanciar y destruir continuamente.
- Mitigación de Sobrecarga de Creación: idóneo para recursos pesados de inicializar (conexiones de sockets, pools de base de datos, hilos de ejecución, buffers de memoria, entidades en motores de videojuegos).
- Alivio del Garbage Collector: reciclar referencias minimiza la fragmentación de memoria y las pausas de recolección de basura.
Qué debes recordar #
Implementa un pool de objetos cuando la creación y destrucción recurrente de instancias costosas penalice el rendimiento y sature la memoria.