Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tangosol.io.nio
Class DirectBufferManager

    java.lang.Object
      com.tangosol.util.Base
          com.tangosol.io.nio.AbstractBufferManager
              com.tangosol.io.nio.DirectBufferManager

All Implemented Interfaces:
  ByteBufferManager

    public class DirectBufferManager

extends AbstractBufferManager

Manages a growable direct ByteBuffer.

Since:
  Coherence 2.2
Author:
  cp 2002.09.16
See Also:
  `ByteBuffer`

Field Summary
`static int` | `CLEANUP_FINALIZERS` Use Runtime.runFinalization() to trigger finalization (default).
`static int` | `CLEANUP_GC` Use Runtime.gc() to trigger finalization.
`static int` | `CLEANUP_NONE` Do not perform any buffer cleanup.
`protected static boolean` | `MODE_DEBUG` Set to true to use on-heap storage, false to use off-heap.
`protected static long` | `s_cbUncollected` Total amount of memory that have not been collected yet.

Constructor Summary
`DirectBufferManager(int cbInitial, int cbMaximum)` Construct a DirectBufferManager that supports a buffer of a certain initial and maximum size.

Method Summary
`protected void` | `allocateBuffer()` Allocate a new buffer, copying old data if there is any.
`protected void` | `cleanupBuffers()` Determines if and how to induce the JVM to run finalizers.
`static int` | `getAllocations()` Return the total number of buffers allocated by the DirectBufferManager.
`static int` | `getCleanupMethod()` Return the method used for buffers cleanup when the threshold is met.
`static float` | `getCleanupThreshold()` Return the value used to calculate the size threshold for the uncollected buffers that triggers a cleanup operation.
`static long` | `getTotalAllocationTime()` Return the total time spent allocating buffers, copying the previous content and cleaning up uncollected buffers.
`protected static void` | `setCleanupMethod(int nCleanupMethod)` Set the method to be used for buffers cleanup when the threshold is met.
`protected static void` | `setCleanupThreshold(float flCleanupThreshold)` Determines how often, to run the `cleanupBuffers()` method.

Methods inherited from class com.tangosol.io.nio.AbstractBufferManager
`calibrate, getBuffer, getCapacity, getGrowthThreshold, getMaxCapacity, getMaxIncrement, getMinCapacity, getShrinkageThreshold, grow, setBuffer, setCapacity, setGrowthThreshold, setMaxCapacity, setMinCapacity, setShrinkageThreshold, shrink`

Field Detail

### CLEANUP_NONE

    public static final int CLEANUP_NONE

  Do not perform any buffer cleanup.

  See Also:
    Constant Field Values

### CLEANUP_FINALIZERS

    public static final int CLEANUP_FINALIZERS

  Use Runtime.runFinalization() to trigger finalization (default).

  See Also:
    Constant Field Values

### CLEANUP_GC

    public static final int CLEANUP_GC

  Use Runtime.gc() to trigger finalization.

  See Also:
    Constant Field Values

### MODE_DEBUG

    protected static final boolean MODE_DEBUG

  Set to true to use on-heap storage, false to use off-heap.

  See Also:
    Constant Field Values

### s_cbUncollected

    protected static volatile long s_cbUncollected

  Total amount of memory that have not been collected yet.

Constructor Detail

### DirectBufferManager

    public DirectBufferManager(int cbInitial,
                               int cbMaximum)

  Construct a DirectBufferManager that supports a buffer of a certain initial and maximum size.

  Parameters:
    `cbInitial` - the initial size
    `cbMaximum` - the maximum size

Method Detail

### allocateBuffer

    protected void allocateBuffer()

  Allocate a new buffer, copying old data if there is any.

  Specified by:
    `allocateBuffer` in class `AbstractBufferManager`
  See Also:
    `ByteBuffer.allocateDirect()`

### cleanupBuffers

    protected void cleanupBuffers()

  Determines if and how to induce the JVM to run finalizers. This allows to somewhat mitigate `the cleanup threshold` frequency, induce the GC. In a 64-bit VMs this issue is probably reduced to a minimum.

### getTotalAllocationTime

    public static long getTotalAllocationTime()

  Return the total time spent allocating buffers, copying the previous content and cleaning up uncollected buffers.

  Returns:
    the number of milliseconds spent in allocating, copying and cleaning up uncollected buffers

### getAllocations

    public static int getAllocations()

  Return the total number of buffers allocated by the DirectBufferManager.

  Returns:
    the total number of allocations

### getCleanupMethod

    public static int getCleanupMethod()

  Return the method used for buffers cleanup when the threshold is met.

  The possible return values are:
  CLEANUP_FINALIZERS - use Runtime.runFinalization() (default);
  CLEANUP_GC - use Runtime.gc();
  CLEANUP_NONE - do not perform any cleanup.

  Returns:
    one of the CLEANUP_* constants representing the cleanup method

### setCleanupMethod

    protected static void setCleanupMethod(int nCleanupMethod)

  Set the method to be used for buffers cleanup when the threshold is met.

  Parameters:
    `nCleanupMethod` - a value representing the cleanup method; valid values are the CLEANUP_* constants
  Throws:
    `java.lang.IllegalArgumentException` - if passed value is not a valid CLEANUP_* constant

### getCleanupThreshold

    public static float getCleanupThreshold()

  Return the value used to calculate the size threshold for the uncollected buffers that triggers a cleanup operation. Cleanup is performed when the total size of uncollected memory has grown over the product of this value and the maximum Java heap size.

  Returns:
    a value between 0.0 and 1.0 used to calculate the cleanup frequency

### setCleanupThreshold

    protected static void setCleanupThreshold(float flCleanupThreshold)

  Determines how often, to run the `cleanupBuffers()` method. Cleanup is performed when the uncollected memory has grown over the product of this value and the maximum Java heap size.

  Parameters:
    `flCleanupThreshold` - a value between 0.0 and 1.0 used to calculate the cleanup frequency
  Throws:
    `java.lang.IllegalArgumentException` - if the passed value is not valid

Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000, 2010, Oracle. All rights reserved.