Pool (Informatik) - Pool (computer science)

In der Informatik ist ein Pool eine Sammlung von Ressourcen , die einsatzbereit gehalten werden, anstatt bei Verwendung erworben und anschließend freigegeben zu werden. In diesem Zusammenhang können Ressourcen auf Systemressourcen wie z. B. Dateihandles , die sich außerhalb eines Prozesses befinden, oder interne Ressourcen wie Objekte verweisen . Ein Pool- Client fordert eine Ressource aus dem Pool an und führt die gewünschten Vorgänge für die zurückgegebene Ressource aus. Wenn der Client die Verwendung der Ressource beendet hat, wird sie an den Pool zurückgegeben und nicht freigegeben und geht verloren.

Die Bündelung von Ressourcen kann in Situationen mit hohen Kosten im Zusammenhang mit der Ressourcenbeschaffung, einer hohen Rate an Ressourcenanforderungen und einer geringen Gesamtzahl gleichzeitig verwendeter Ressourcen zu einer erheblichen Verlängerung der Reaktionszeit führen. Pooling ist auch nützlich, wenn die Latenz ein Problem darstellt, da ein Pool vorhersehbare Zeiten bietet, die zum Abrufen von Ressourcen erforderlich sind, da diese bereits erworben wurden. Diese Vorteile gelten hauptsächlich für Systemressourcen, für die ein Systemaufruf erforderlich ist , oder für Remote-Ressourcen, für die eine Netzwerkkommunikation erforderlich ist, z. B. Datenbankverbindungen , Socket-Verbindungen , Threads und Speicherzuweisung . Das Pooling ist auch nützlich für teuer zu berechnende Daten, insbesondere große Grafikobjekte wie Schriftarten oder Bitmaps , die im Wesentlichen als Datencache oder Memoisierungstechnik dienen .

Sonderfälle von Pools sind Verbindungspools , Thread-Pools und Speicherpools .

Objektpools

Pools können auch für Objekte verwendet werden. In diesem Kontext bezieht sich ein Pool auf ein Entwurfsmuster zum Implementieren von Pools in objektorientierten Sprachen , z. B. im Objektpoolmuster . Objekte selbst enthalten keine externen Ressourcen und belegen nur Speicher, obwohl ein bereits erstelltes Objekt die bei der Objekterstellung erforderliche Speicherzuordnung vermeidet. Objektpools sind nützlich, wenn die Kosten für die Objekterstellung hoch sind. In bestimmten Situationen ist dieses einfache Objektpooling jedoch möglicherweise nicht effizient und kann die Leistung beeinträchtigen.

Verweise