Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Method and System for Creating Object Pools of Frequently Used Objects

IP.com Disclosure Number: IPCOM000202363D
Publication Date: 2010-Dec-14
Document File: 2 page(s) / 46K

Publishing Venue

The IP.com Prior Art Database

Abstract

A method and system for creating objects pools of frequently used objects is disclosed.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 51% of the total text.

Page 01 of 2

Method and System for Creating Object Pools of Frequently Used Objects

Disclosed is a method and system for creating objects pools of frequently used objects.

Application frameworks with higher stack depths cause creation and allocation of a substantially large number of temporary objects. Substantially high rate of creation and allocation of temporary objects may cause memory bandwidth contention and cache pollution. This can also result in frequent Garbage Collection (GC) and cause degradation in application execution and poor cache performance. Further, high rate of creation and allocation of temporary objects causes frequent minor collections in nursery heap in case of generational collectors. In case of non-generational collectors, the high rate causes heap fragmentation. Therefore, there is a need for an efficient method and system for handling temporary objects.

The method and system disclosed herein uses an automatic and adaptive object pooling mechanism for creating object pools for frequently used temporary objects within a Virtual Machine (VM) runtime. Object pools are initially created for objects, which may be referred to as "hot" objects that are being used by multiple methods or processes at an instant of time. Creation of object facilitates an increased cache locality of reference. Further, the method and system considers cost of creation and destruction of objects while choosing the objects that are required to be pooled. Cost of creation and destruction of objects is determined by analyzing memory usage due to pooling and efforts required for restructuring and changing the code. Objects for pooling may also be identified by determining objects invoked by methods that are close to each other in a call graph. This results in localization of reference and c...