Class PerformanceProfiler

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, SessionProfiler

    public class PerformanceProfiler
    extends SessionProfilerAdapter
    implements java.io.Serializable, java.lang.Cloneable

    Purpose: A tool used to provide high level performance profiling information.

    See Also:
    Serialized Form
    Author:
    James Sutherland
    Since:
    TopLink 1.0
    • Field Detail

      • profiles

        protected java.util.List<Profile> profiles
      • session

        protected transient org.eclipse.persistence.internal.sessions.AbstractSession session
      • shouldLogProfile

        protected boolean shouldLogProfile
      • nestLevel

        protected int nestLevel
      • nestTime

        protected long nestTime
      • profileTime

        protected long profileTime
      • operationTimingsByThread

        protected java.util.Map<java.lang.Integer,​java.util.Map<java.lang.String,​java.lang.Long>> operationTimingsByThread
      • operationStartTimesByThread

        protected java.util.Map<java.lang.Integer,​java.util.Map<java.lang.String,​java.lang.Long>> operationStartTimesByThread
    • Constructor Detail

      • PerformanceProfiler

        public PerformanceProfiler()
        PUBLIC: Create a new profiler. The profiler can be registered with a session to log performance information on queries.
      • PerformanceProfiler

        public PerformanceProfiler​(Session session)
        Deprecated.
        replaced by PerformanceProfiler()
        OBSOLETE: Create a new profiler. The profiler can be registered with a session to log performance information on queries.
      • PerformanceProfiler

        public PerformanceProfiler​(Session session,
                                   boolean shouldLogProfile)
        Deprecated.
        replaced by PerformanceProfiler()
        OBSOLETE: Create a new profiler. The profiler can be registered with a session to log performance information on queries.
      • PerformanceProfiler

        public PerformanceProfiler​(boolean shouldLogProfile)
        PUBLIC: Create a new profiler. The profiler can be registered with a session to log performance information on queries.
    • Method Detail

      • addProfile

        protected void addProfile​(Profile profile)
      • buildProfileSummary

        public Profile buildProfileSummary()
        INTERNAL: Return a summary profile reporting on the profiles contained.
      • buildProfileSummaryByClass

        public java.util.Hashtable buildProfileSummaryByClass()
        INTERNAL: Return a map of summary profiles reporting on the profile contained.
      • buildProfileSummaryByQuery

        public java.util.Hashtable buildProfileSummaryByQuery()
        INTERNAL: Return a map of summary profiles reporting on the profile contained.
      • dontLogProfile

        public void dontLogProfile()
        PUBLIC: Set whether after each query execution the profile result should be logged. By default this is false.
      • getNestLevel

        protected int getNestLevel()
      • getNestTime

        protected long getNestTime()
      • getOperationStartTimes

        protected java.util.Map<java.lang.String,​java.lang.Long> getOperationStartTimes()
      • getOperationStartTimesByThread

        protected java.util.Map<java.lang.Integer,​java.util.Map<java.lang.String,​java.lang.Long>> getOperationStartTimesByThread()
      • getOperationTimings

        protected java.util.Map<java.lang.String,​java.lang.Long> getOperationTimings()
      • getOperationTimingsByThread

        protected java.util.Map<java.lang.Integer,​java.util.Map<java.lang.String,​java.lang.Long>> getOperationTimingsByThread()
      • getProfiles

        public java.util.List<Profile> getProfiles()
        Return the profiles logged in this profiler.
      • getProfileTime

        protected long getProfileTime()
      • getSession

        public org.eclipse.persistence.internal.sessions.AbstractSession getSession()
      • logProfile

        public void logProfile()
        PUBLIC: Set whether after each query execution the profile result should be logged. By default this is true.
      • logProfileSummary

        public void logProfileSummary()
        PUBLIC: Log a profile summary.
      • logProfileSummaryByClass

        public void logProfileSummaryByClass()
        PUBLIC: Log a profile summary by class.
      • logProfileSummaryByQuery

        public void logProfileSummaryByQuery()
        PUBLIC: Log a profile summary by query.
      • profileExecutionOfQuery

        public java.lang.Object profileExecutionOfQuery​(DatabaseQuery query,
                                                        Record row,
                                                        org.eclipse.persistence.internal.sessions.AbstractSession session)
        INTERNAL: Finish a profile operation if profiling. This assumes the start operation proceeds on the stack. The session must be passed to allow units of work etc. to share their parents profiler.
        Specified by:
        profileExecutionOfQuery in interface SessionProfiler
        Overrides:
        profileExecutionOfQuery in class SessionProfilerAdapter
        Returns:
        the execution result of the query.
      • setNestLevel

        protected void setNestLevel​(int nestLevel)
      • setNestTime

        protected void setNestTime​(long nestTime)
      • setOperationStartTimes

        protected void setOperationStartTimes​(java.util.Map<java.lang.String,​java.lang.Long> operationStartTimes)
      • setOperationStartTimesByThread

        protected void setOperationStartTimesByThread​(java.util.Hashtable operationStartTimesByThread)
      • setOperationTimings

        protected void setOperationTimings​(java.util.Map<java.lang.String,​java.lang.Long> operationTimings)
      • setOperationTimingsByThread

        protected void setOperationTimingsByThread​(java.util.Hashtable operationTimingsByThread)
      • setProfiles

        protected void setProfiles​(java.util.Vector profiles)
      • setProfileTime

        protected void setProfileTime​(long profileTime)
      • setShouldLogProfile

        public void setShouldLogProfile​(boolean shouldLogProfile)
        PUBLIC: Set whether after each query execution the profile result should be logged. By default this is true.
      • shouldLogProfile

        public boolean shouldLogProfile()
      • writeNestingTabs

        protected void writeNestingTabs​(java.io.Writer writer)