Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.java.recycle
Class AdaptiveController

    java.lang.Object
      |
      +--org.apache.java.recycle.AdaptiveController

public class AdaptiveController
extends java.lang.Object
implements Controller

This controller creates a simple yet very effective negative feedback that stabilizes the level of the container. It is based on a simple idea but it proves to be very adaptive to any kind of load creating the minimum level that, on average, the container needs to fully satisfy its requests without consuming memory or being empty.

The control is based on the assumption that if the container is empty, some new object will be created and will later on be recycled. Following this assumption, when the container is empty, its optimum level is raised to allow more objects to be stored when they will be recycled.

On the other end, when the container reaches its top level, it means there are too many objects and the level is lowered.

There is room for objects to be recycled only when the level is lower than the top one. Note that you don't need to define any parameter to this controller since it will find the best top level based on the history of the requests, optimizing memory use by itself.

Version:
  $Revision: 1.3 $ $Date: 1999/06/24 00:50:48 $

Field Summary
`private int` | `level`
`private int` | `top`

Constructor Summary
`AdaptiveController()`

Method Summary
`void` | `down()` Signal an object request.
`boolean` | `isThereRoomFor(Recyclable object)` Evaluates the room for the recyclable object
`void` | `up()` Signal an object recycle.

Methods inherited from class java.lang.Object
`, clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait`

Field Detail

### top

    private int top

### level

    private int level

Constructor Detail

### AdaptiveController

    public AdaptiveController()

Method Detail

### up

    public void up()

  Signal an object recycle.
  Specified by:
    up in interface Controller

### down

    public void down()

  Signal an object request.
  Specified by:
    down in interface Controller

### isThereRoomFor

    public boolean isThereRoomFor(Recyclable object)

  Evaluates the room for the recyclable object
  Specified by:
    isThereRoomFor in interface Controller

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD