It is something that tries to keep a pool of objects in memory to be re-used later and hence it will reduce the load of object creation to a great extent. Whenever there is a request for a new object, the pool manager will take the request and it will be served by allocating an object from the pool. Pooling basically means u ilizing the resources efficiently, by limiting access of the objects to only the period the client requires it.
The key benefit of object pooling is a reduction in object construction and initialization time. Object pooling works well with expensive and heavyweight objects that increase memory overhead, resulting in optimized resources that may be allocated prior to starting the application. Object pooling also suits Web server components created when responding to multiple simultaneous client requests. Object pooling facilitates the sharing of required but expensive object access resources.
Originally, object pooling was implemented in COM+ in Windows 2000 to configure pooling by reusing objects for performance and scaling benefits. This service also may be used in applications built in .NET frameworks and in .NET components. It also works with legacy applications written with COM/COM+. Unlike Visual Basic 6.0 components, Visual Basic .NET components make use of object pooling.
Object pooling depends on an operating system's application domain. In Windows 2000 and for library mode of application activation, the object pool is created in the default application domain. In Windows XP and Windows Server 2003 each application domain has its own object pool. For server mode, clients use the object pool created in the application domain.
When combined with Just-In-Time (JIT) activation, object pooling yields good performance by speeding object reactivation time while controlling dedicated client resources.
Instantiate and Destroy objects in the game, especially those that run on mobile games, is a very expensive resource command. Use instantiate / Destroy game while running is one thing to avoid when setting up the game. But there are times when you will need to instantiate multiple objects (eg bullets ...). How can minimize instantiate / Destroy the running game?
A very popular technique to overcome this problem is Object Pooling. The basic idea of Object Pooling is not Destroy objects that move objects out somewhere outside GameWorld (off screen). When you need to instantiate, you will get in Pool Object (are off screen) and to instantiate into the site.
nice post thanks for share
An object pool is a collection of a particular object that an application will create and keep on hand for those situations where creating each instance is expensive. A good example would be a database connection or a worker thread. The pool checks instances in and out for users like books out of a library.
Usually object pooling is handled by a Java EE application server. If you need to do it yourself, best to use something like Apache's object pool. Don't write one yourself; thread safety and other issues can make it complicated.