Package weka.core

# Class Memory

java.lang.Object
weka.core.Memory

All Implemented Interfaces:
  `RevisionHandler`

public class Memory extends Object implements RevisionHandler
A little helper class for Memory management. The memory management can be disabled by using the setEnabled(boolean) method.

Version:
  $Revision: 11271 $
Author:
  FracPete (fracpete at waikato dot ac dot nz)
See Also:
  - `setEnabled(boolean)`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final long`
  `LOW_MEMORY_MINIMUM`
  `static final long`
  `MAX_SLEEP_TIME`
  `static final long`
  `OUT_OF_MEMORY_THRESHOLD`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Memory()`
  initializes the memory management without GUI support
  `Memory(boolean useGUI)`
  initializes the memory management

- ## Method Summary

  Modifier and Type
  Method
  Description
  `long`
  `getCurrent()`
  returns the currently used size of the JVM heap, obtains a fresh MemoryUsage object to do so.
  `long`
  `getInitial()`
  returns the initial size of the JVM heap, obtains a fresh MemoryUsage object to do so.
  `long`
  `getMax()`
  returns the maximum size of the JVM heap, obtains a fresh MemoryUsage object to do so.
  `String`
  `getRevision()`
  Returns the revision string.
  `boolean`
  `getUseGUI()`
  whether to display a dialog in case of a problem (= TRUE) or just print on stderr (= FALSE)
  `boolean`
  `isEnabled()`
  returns whether the memory management is enabled
  `boolean`
  `isOutOfMemory()`
  checks if there's still enough memory left by checking whether there is still a 50MB margin between getUsed() and getMax().
  `static void`
  `main(String[] args)`
  prints only some statistics
  `boolean`
  `memoryIsLow()`
  Checks to see if memory is running low.
  `void`
  `setEnabled(boolean value)`
  sets whether the memory management is enabled
  `boolean`
  `showMemoryIsLow()`
  Prints a warning message if memoryIsLow (and if GUI is present a dialog).
  `void`
  `showOutOfMemory()`
  prints an error message if OutOfMemory (and if GUI is present a dialog), otherwise nothing happens.
  `void`
  `stopThreads()`
  stops all the current threads, to make a restart possible
  `static double`
  `toMegaByte(long bytes)`
  returns the amount of bytes as MB

  ### Methods inherited from class java.lang.Object

  `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### OUT_OF_MEMORY_THRESHOLD

    public static final long OUT_OF_MEMORY_THRESHOLD
    See Also:
      - Constant Field Values

  - ### LOW_MEMORY_MINIMUM

    public static final long LOW_MEMORY_MINIMUM
    See Also:
      - Constant Field Values

  - ### MAX_SLEEP_TIME

    public static final long MAX_SLEEP_TIME
    See Also:
      - Constant Field Values

- ## Constructor Details

  - ### Memory

    public Memory()
    initializes the memory management without GUI support

  - ### Memory

    public Memory(boolean useGUI)
    initializes the memory management
    Parameters:
      `useGUI` - whether a GUI is present

- ## Method Details

  - ### isEnabled

    public boolean isEnabled()
    returns whether the memory management is enabled
    Returns:
      true if enabled

  - ### setEnabled

    public void setEnabled(boolean value)
    sets whether the memory management is enabled
    Parameters:
      `value` - true if the management should be enabled

  - ### getUseGUI

    public boolean getUseGUI()
    whether to display a dialog in case of a problem (= TRUE) or just print on stderr (= FALSE)
    Returns:
      true if the GUI is used

  - ### getInitial

    public long getInitial()
    returns the initial size of the JVM heap, obtains a fresh MemoryUsage object to do so.
    Returns:
      the initial size in bytes

  - ### getCurrent

    public long getCurrent()
    returns the currently used size of the JVM heap, obtains a fresh MemoryUsage object to do so.
    Returns:
      the used size in bytes

  - ### getMax

    public long getMax()
    returns the maximum size of the JVM heap, obtains a fresh MemoryUsage object to do so.
    Returns:
      the maximum size in bytes

  - ### isOutOfMemory

    public boolean isOutOfMemory()
    checks if there's still enough memory left by checking whether there is still a 50MB margin between getUsed() and getMax(). if ENABLED is true, then false is returned always. updates the MemoryUsage variable before checking.
    Returns:
      true if out of memory (only if management enabled, otherwise always false)

  - ### memoryIsLow

    public boolean memoryIsLow()
    Checks to see if memory is running low. Low is defined as available memory less than 20% of max memory.
    Returns:
      true if memory is running low

  - ### toMegaByte

    public static double toMegaByte(long bytes)
    returns the amount of bytes as MB
    Returns:
      the MB amount

  - ### showOutOfMemory

    public void showOutOfMemory()
    prints an error message if OutOfMemory (and if GUI is present a dialog), otherwise nothing happens. isOutOfMemory() has to be called beforehand, since it sets all the memory parameters.
    See Also:
      - `isOutOfMemory()`
      - `m_Enabled`

  - ### showMemoryIsLow

    public boolean showMemoryIsLow()
    Prints a warning message if memoryIsLow (and if GUI is present a dialog).
    Returns:
      true if user opts to continue, disabled or GUI is not present.

  - ### stopThreads

    public void stopThreads()
    stops all the current threads, to make a restart possible

  - ### getRevision

    public String getRevision()
    Returns the revision string.
    Specified by:
      `getRevision` in interface `RevisionHandler`
    Returns:
      the revision

  - ### main

    public static void main(String[] args)
    prints only some statistics
    Parameters:
      `args` - the commandline arguments - ignored