Class MemoryAnalyzer

  • All Implemented Interfaces:
    java.lang.Runnable

    public class MemoryAnalyzer
    extends TrackableThread
    Tracer for memory usage patterns of Radiance look-and-feel. The tracer is started when RadianceThemingCortex.GlobalScope.setTraceFilename(String) is called before setting Radiance of the look and feel. When activated, the tracer runs a thread that collects information on memory usage and appends it to the trace log file every X seconds. The X (delay) is specified in the constructor. This class is for internal use only.
    • Nested Class Summary

      • Nested classes/interfaces inherited from class java.lang.Thread

        java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private long delay
      Sleep delay between trace log iterations.
      private java.lang.String filename
      Trace logfile name.
      private static MemoryAnalyzer instance
      Singleton instance.
      private static boolean isStopRequest
      If true, this tracer has received a request to stop.
      private static java.text.SimpleDateFormat sdf
      Formatting object.
      private static java.util.ArrayList<java.lang.String> usages
      Usage strings collected during the sleep time.
      • Fields inherited from class java.lang.Thread

        MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private MemoryAnalyzer​(long delay, java.lang.String filename)
      Simple constructor.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      static void commence​(long delay, java.lang.String filename)
      Starts the memory tracing.
      static void enqueueUsage​(java.lang.String usage)
      Adds usage string.
      static java.util.ArrayList<java.lang.String> getUsages()
      Returns all queued usages.
      private static boolean hasStopRequest()
      Checks whether a request to stop tracing has been issued.
      static boolean isRunning()
      Checks whether tracer is running.
      void requestStop()
      Issues request to stop tracing.
      void run()  
      • Methods inherited from class java.lang.Thread

        activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, onSpinWait, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
      • Methods inherited from class java.lang.Object

        equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • delay

        private long delay
        Sleep delay between trace log iterations.
      • filename

        private java.lang.String filename
        Trace logfile name.
      • instance

        private static MemoryAnalyzer instance
        Singleton instance.
      • isStopRequest

        private static boolean isStopRequest
        If true, this tracer has received a request to stop.
      • usages

        private static java.util.ArrayList<java.lang.String> usages
        Usage strings collected during the sleep time.
      • sdf

        private static java.text.SimpleDateFormat sdf
        Formatting object.
    • Constructor Detail

      • MemoryAnalyzer

        private MemoryAnalyzer​(long delay,
                               java.lang.String filename)
        Simple constructor.
        Parameters:
        delay - Sleep delay between trace log iterations.
        filename - Trace logfile name.
    • Method Detail

      • commence

        public static void commence​(long delay,
                                    java.lang.String filename)
        Starts the memory tracing.
        Parameters:
        delay - Sleep delay between trace log iterations.
        filename - Trace logfile name.
      • hasStopRequest

        private static boolean hasStopRequest()
        Checks whether a request to stop tracing has been issued.
        Returns:
        true if a request to stop tracing has been issued, false otherwise.
      • isRunning

        public static boolean isRunning()
        Checks whether tracer is running.
        Returns:
        true if tracer is running, false otherwise.
      • enqueueUsage

        public static void enqueueUsage​(java.lang.String usage)
        Adds usage string.
        Parameters:
        usage - Usage string. Will be output to the trace file at next iteration of the tracer.
      • getUsages

        public static java.util.ArrayList<java.lang.String> getUsages()
        Returns all queued usages.
        Returns:
        All queued usages.
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
        Overrides:
        run in class java.lang.Thread