Browse Prior Art Database

Dynamic Adjustment of Smalltalk/V Garbage Collection

IP.com Disclosure Number: IPCOM000105242D
Original Publication Date: 1993-Jul-01
Included in the Prior Art Database: 2005-Mar-19
Document File: 2 page(s) / 69K

Publishing Venue

IBM

Related People

Eisen, IR: AUTHOR [+2]

Abstract

Methods which bring a large amount of data into Smalltalk/V suffer severe performance degradation because of the nature of garbage collection and memory management.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Dynamic Adjustment of Smalltalk/V Garbage Collection

      Methods which bring a large amount of data into Smalltalk/V
suffer severe performance degradation because of the nature of
garbage collection and memory management.

      This article describes a technique for dynamic adjustments of
the Smalltalk/V garbage collection mechanism to substantially improve
performance of methods which are bringing a large amount of data into
Smalltalk and creating objects which maintain this data as instance
variables.

      Smalltalk/V maintains a short term area of memory and a long
term area of memory.  The basic theory is that objects which have a
"long" life should reside in the long term area while those that have
a shorter life span should reside in the short term area.  When an
object is created it is created in the short term area.  After a
certain time, if that object still exists it is moved to the long
term area.

      The short term area is divided into two areas.  When one area
fills up, the objects in it that are still "alive" are copied to the
other area.  Those not "alive" are left behind.  When the new area
fills up, the same thing happens with the live objects being copied
back to the other area.  Each time this happens it is referred to as
a "flip".  To be moved to the long term area, an object must survive
a certain number of flips.  This number is called the object's
tenure.  The default tenure to be moved to long term storage is 10.

      When a routine is bringing in a large amount of data that is
going to eventually be moved to the long term storage area it is
advisable to have it moved as soon as possible.  The longer it lives
in the short term area the worse the system performance.  This is
because when a flip occurs, every active object must be physically
copied from the active short term area to the new one.  By default
this occurs 10 times to an object before it is moved to the long term
area and no longer "flipped".  Currently there is n...