Pool (informática)

Un pool o fondo en informática es un conjunto de recursos inicializados que se mantienen listos para su uso, en lugar de ser asignados y destruidos bajo demanda. Un cliente del pool solicitará un objeto del pool y realizará operaciones en el objeto devuelto. Cuando el cliente ha terminado con un objeto (o recurso), lo devuelve al pool, en lugar de destruirlo.

El uso de pools de recursos puede ofrecer un significativo aumento del rendimiento en situaciones donde el coste de inicializar una instancia de una clase es alto, la tasa de creación de instancias de una clase es alta y el número de instancias en uso en cualquier momento es bajo. Un recurso de un pool es obtenido en un tiempo predecible mientras que la creación de nuevos objetos (en especial sobre la red) puede tardar un tiempo variable.

Sin embargo, estos beneficios son principalmente ciertos para objetos que son caros con respecto al tiempo, tales como conexiones de bases de datos, conexiones de sockets, hilos y grandes objetos gráficos como fuentes o mapas de bits. En ciertas situaciones, el uso de pools de objetos simples (que no mantienen recursos externos, sino que sólo ocupan memoria) puede no ser eficiente y podría disminuir el rendimiento.[1]

Casos especiales son:

Pool puede también hacer referencia a un patrón de diseño para implementarlos en lenguajes orientados a objetos, como el patrón de pool de objetos.

Referencias

  1. «Java theory and practice: Urban performance legends, revisited». ibm.com. 27 de septiembre de 2005. Archivado desde el original el 29 de diciembre de 2011. Consultado el 31 de octubre de 2013.