Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sun.squawk
Class GC

    java.lang.Object
      com.sun.squawk.GC

All Implemented Interfaces:
  GlobalStaticFields

    public class GC

extends Object
implements GlobalStaticFields

Pure static class that handles object creation and GC control and monitoring. The particular GC implementation used is a subclass of `GarbageCollector`. Many of the "public" methods of this class are actually "suite-private". See the file "squawk.library.properties" for the list of exported methods.

Nested Class Summary
`static class` | `GC.ClassStat`

Method Summary
`static void` | `allObjectsFromDo(Object startObj, DoBlock doBlock)` Perform doBlock with all objects starting from startObject.
`static void` | `arraycopy(Object src, int srcPos, Object dst, int dstPos, int lth)` Copy data from one array to another.
`static int` | `calculateOopMapSizeInBytes(int size)` Calculates the size (in bytes) of an oop map that will have a bit for every word in a memory of a given size.
`static long` | `freeMemory()` Returns the amount of free memory in the system.
`static int` | `getArrayLength(Object array)` Get the length of an array.
`static int` | `getBytesAllocatedSinceLastGC()` Get the number of bytes allocated since the last GC.
`static GarbageCollector` | `getCollector()` Gets a reference to the installed collector.
`static int` | `getFullCount()` Returns the number of full-heap collections.
`static int` | `getHashCode(Object object)` Get the hashcode for an object.
`static Klass` | `getKlass(Object object)` Get the class of an object.
`static int` | `getPartialCount()` Returns the number of partial-heap collections.
`static int` | `getTotalCount()` Returns the total number of garbage collections that have been performed by the VM.
`static void` | `initHeapStats()` Pre-create all data structures used in heap stats, so heap walking won't allocate more memory.
`static boolean` | `inRam(Address start, Address end)` Determines if any part of the range is in RAM.
`static boolean` | `inRam(Object object)` Determines if a given object is in RAM.
`static boolean` | `isGCEnabled()` Is Garnage collection enabled?
`static boolean` | `isSafeToSwitchThreads()` Test to see if this is a safe time to switch threads.
`static String` | `makeEightBitString(Object oop)` Change the type of the given object to com.sun.squawk.StringOfBytes.
`static String` | `makeSixteenBitString(Object oop)` Change the type of the given object to java.lang.String.
`static void` | `printHeapStats(Object startObj, boolean printInstances)` Do actual heap walk, from start object, or whole heap is startObj is null.
`static int` | `roundUpToWord(int value)` Rounds up a 32 bit value to the next word boundry.
`static boolean` | `setGCEnabled(boolean newState)` Enable or disable the garbage collector.
`static void` | `stringcopy(Object src, int srcPos, Object dst, int dstPos, int lth)` Copy data from one string to another.
`static long` | `totalMemory()` Returns the total amount of RAM memory in the Squawk Virtual Machine.

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

Method Detail

### getCollector

    public static GarbageCollector getCollector()

  Gets a reference to the installed collector.

  Returns:
    a reference to the installed collector

### roundUpToWord

    public static int roundUpToWord(int value)
                             throws ForceInlinedPragma

  Rounds up a 32 bit value to the next word boundry.

  Parameters:
    `value` - the value to round up
  Returns:
    the result
  Throws:
    `ForceInlinedPragma`

### getBytesAllocatedSinceLastGC

    public static int getBytesAllocatedSinceLastGC()

  Get the number of bytes allocated since the last GC. May be inaccurate during a copyObjectGraph operation.

  Returns:
    bytes

### inRam

    public static boolean inRam(Object object)
                         throws ForceInlinedPragma

  Determines if a given object is in RAM.

  Parameters:
    `object` - the object to test
  Returns:
    true if `object` is an instance in RAM
  Throws:
    `ForceInlinedPragma`

### inRam

    public static boolean inRam(Address start,
                                Address end)

  Determines if any part of the range is in RAM.

  Parameters:
    `start` -
    `end` -
  Returns:
    true if any part of the range start..end overlaps with the heap

### setGCEnabled

    public static boolean setGCEnabled(boolean newState)

  Enable or disable the garbage collector.

  Parameters:
    `newState` - the new abled/disabled state of the garbage collector
  Returns:
    the garbage collector's state before this call

### isGCEnabled

    public static boolean isGCEnabled()

  Is Garnage collection enabled?

  Returns:
    true if GC enabled.

### isSafeToSwitchThreads

    public static boolean isSafeToSwitchThreads()

  Test to see if this is a safe time to switch threads.

  Returns:
    true if it is

### calculateOopMapSizeInBytes

    public static int calculateOopMapSizeInBytes(int size)

  Calculates the size (in bytes) of an oop map that will have a bit for every word in a memory of a given size.

  Parameters:
    `size` - the size (in bytes) of the memory that the oop map will describe
  Returns:
    the size (in bytes) of an oop map that will have a bit for every word in a memory region of size `size` bytes

### getKlass

    public static Klass getKlass(Object object)
                          throws ForceInlinedPragma

  Get the class of an object.

  Parameters:
    `object` - the object
  Returns:
    its class
  Throws:
    `ForceInlinedPragma`

### getArrayLength

    public static int getArrayLength(Object array)
                              throws ForceInlinedPragma

  Get the length of an array.

  Parameters:
    `array` - the array
  Returns:
    the length in elements of the array
  Throws:
    `ForceInlinedPragma`

### arraycopy

    public static void arraycopy(Object src,
                                 int srcPos,
                                 Object dst,
                                 int dstPos,
                                 int lth)

  Copy data from one array to another.

  Parameters:
    `src` - the source array
    `srcPos` - the start position in the source array
    `dst` - the destination array
    `dstPos` - the start position in the destination array
    `lth` - number of elements to copy

### stringcopy

    public static void stringcopy(Object src,
                                  int srcPos,
                                  Object dst,
                                  int dstPos,
                                  int lth)

  Copy data from one string to another.

  Parameters:
    `src` - the source string
    `srcPos` - the start position in the source string
    `dst` - the destination string
    `dstPos` - the start position in the destination string
    `lth` - number of characters to copy

### makeEightBitString

    public static String makeEightBitString(Object oop)

  Change the type of the given object to com.sun.squawk.StringOfBytes.

  Parameters:
    `oop` - the object
  Returns:
    the converted object

### makeSixteenBitString

    public static String makeSixteenBitString(Object oop)

  Change the type of the given object to java.lang.String.

  Parameters:
    `oop` - the object
  Returns:
    the converted object

### getHashCode

    public static int getHashCode(Object object)

  Get the hashcode for an object.

  Parameters:
    `object` - the object the hashcode is needed for.
  Returns:
    the hashcode

### freeMemory

    public static long freeMemory()

  Returns the amount of free memory in the system. Calling the `gc` method may result in increasing the value returned by `freeMemory.`

  Returns:
    an approximation to the total amount of memory currently available for future allocated objects, measured in bytes.

### totalMemory

    public static long totalMemory()

  Returns the total amount of RAM memory in the Squawk Virtual Machine. The value returned by this method may vary over time, depending on the host environment.

  Note that the amount of memory required to hold an object of any given type may be implementation-dependent.

  Returns:
    the total amount of memory currently available for current and future objects, measured in bytes.

### getPartialCount

    public static int getPartialCount()

  Returns the number of partial-heap collections.

  Returns:
    the count of partial-heap collections.

### getFullCount

    public static int getFullCount()

  Returns the number of full-heap collections.

  Returns:
    the count of full-heap collections.

### getTotalCount

    public static int getTotalCount()

  Returns the total number of garbage collections that have been performed by the VM.

  Returns:
    the total count of collections.

### initHeapStats

    public static void initHeapStats()

  Pre-create all data structures used in heap stats, so heap walking won't allocate more memory.

### allObjectsFromDo

    public static void allObjectsFromDo(Object startObj,
                                        DoBlock doBlock)

  Perform doBlock with all objects starting from startObject.

  Parameters:
    `startObj` - the object to start walking from , or null
    `doBlock` - callback to perform on each object

### printHeapStats

    public static void printHeapStats(Object startObj,
                                      boolean printInstances)

  Do actual heap walk, from start object, or whole heap is startObj is null. Count how many instances, and how many bytes are used, by all objects that are the same aage or youngre than startObj. Print out statistics of each class that has at least one instance in the set found in the heap walk. Statistics are NOT sorted.

  Parameters:
    `startObj` - the object to start walking from , or null
    `printInstances` - if true, print information about each object before printing statistics

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| " 2013 FRC Java API "
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

"
For updated information see the Java FRC site
"