Class PerformanceProfiler
- java.lang.Object
-
- org.eclipse.persistence.sessions.SessionProfilerAdapter
-
- org.eclipse.persistence.tools.profiler.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 Summary
Fields Modifier and Type Field Description protected int
nestLevel
protected long
nestTime
protected java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.lang.Long>>
operationStartTimesByThread
protected java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.lang.Long>>
operationTimingsByThread
protected java.util.List<Profile>
profiles
protected long
profileTime
protected org.eclipse.persistence.internal.sessions.AbstractSession
session
protected boolean
shouldLogProfile
-
Fields inherited from interface org.eclipse.persistence.sessions.SessionProfiler
ALL, AssignSequence, CacheCoordination, CacheCoordinationSerialize, CacheHits, CacheMisses, CacheSize, Caching, ChangeSetsNotProcessed, ChangeSetsProcessed, ClientSessionCreated, ClientSessionReleased, ConnectionManagement, ConnectionPing, Connects, DescriptorEvent, Disconnects, DistributedMerge, HEAVY, JtsAfterCompletion, JtsBeforeCompletion, Logging, LoginTime, Merge, NONE, NORMAL, ObjectBuilding, OptimisticLockException, QueryPreparation, RcmReceived, RcmSent, RcmStatus, Register, Remote, RemoteChangeSet, RemoteLazy, RemoteMetadata, RowFetch, SessionEvent, SessionName, SqlGeneration, SqlPrepare, StatementExecute, Transaction, UowCommit, UowCommits, UowCreated, UowReleased, UowRollbacks
-
-
Constructor Summary
Constructors Constructor Description PerformanceProfiler()
PUBLIC: Create a new profiler.PerformanceProfiler(boolean shouldLogProfile)
PUBLIC: Create a new profiler.PerformanceProfiler(Session session)
Deprecated.replaced by PerformanceProfiler()PerformanceProfiler(Session session, boolean shouldLogProfile)
Deprecated.replaced by PerformanceProfiler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
addProfile(Profile profile)
Profile
buildProfileSummary()
INTERNAL: Return a summary profile reporting on the profiles contained.java.util.Hashtable
buildProfileSummaryByClass()
INTERNAL: Return a map of summary profiles reporting on the profile contained.java.util.Hashtable
buildProfileSummaryByQuery()
INTERNAL: Return a map of summary profiles reporting on the profile contained.PerformanceProfiler
clone()
void
dontLogProfile()
PUBLIC: Set whether after each query execution the profile result should be logged.void
endOperationProfile(java.lang.String operationName)
INTERNAL: End the operation timing.void
endOperationProfile(java.lang.String operationName, DatabaseQuery query, int weight)
INTERNAL: End the operation timing.protected int
getNestLevel()
protected long
getNestTime()
protected java.util.Map<java.lang.String,java.lang.Long>
getOperationStartTimes()
protected java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.lang.Long>>
getOperationStartTimesByThread()
protected java.util.Map<java.lang.String,java.lang.Long>
getOperationTimings()
protected java.util.Map<java.lang.Integer,java.util.Map<java.lang.String,java.lang.Long>>
getOperationTimingsByThread()
java.util.List<Profile>
getProfiles()
Return the profiles logged in this profiler.protected long
getProfileTime()
int
getProfileWeight()
INTERNAL: Return DMS sensor weight(DMS)org.eclipse.persistence.internal.sessions.AbstractSession
getSession()
void
initialize()
INTERNAL: Initialize EclipseLink noun tree(DMS)void
logProfile()
PUBLIC: Set whether after each query execution the profile result should be logged.void
logProfileSummary()
PUBLIC: Log a profile summary.void
logProfileSummaryByClass()
PUBLIC: Log a profile summary by class.void
logProfileSummaryByQuery()
PUBLIC: Log a profile summary by query.java.lang.Object
profileExecutionOfQuery(DatabaseQuery query, Record row, org.eclipse.persistence.internal.sessions.AbstractSession session)
INTERNAL: Finish a profile operation if profiling.protected void
setNestLevel(int nestLevel)
protected void
setNestTime(long nestTime)
protected void
setOperationStartTimes(java.util.Map<java.lang.String,java.lang.Long> operationStartTimes)
protected void
setOperationStartTimesByThread(java.util.Hashtable operationStartTimesByThread)
protected void
setOperationTimings(java.util.Map<java.lang.String,java.lang.Long> operationTimings)
protected void
setOperationTimingsByThread(java.util.Hashtable operationTimingsByThread)
protected void
setProfiles(java.util.Vector profiles)
protected void
setProfileTime(long profileTime)
void
setSession(Session session)
INTERNAL: Set the session.void
setShouldLogProfile(boolean shouldLogProfile)
PUBLIC: Set whether after each query execution the profile result should be logged.boolean
shouldLogProfile()
void
startOperationProfile(java.lang.String operationName)
INTERNAL: Start the operation timing.void
startOperationProfile(java.lang.String operationName, DatabaseQuery query, int weight)
INTERNAL: Start the operation timing.protected void
writeNestingTabs(java.io.Writer writer)
-
Methods inherited from class org.eclipse.persistence.sessions.SessionProfilerAdapter
occurred, occurred, setProfileWeight, update
-
-
-
-
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.
-
clone
public PerformanceProfiler clone()
- Overrides:
clone
in classjava.lang.Object
-
dontLogProfile
public void dontLogProfile()
PUBLIC: Set whether after each query execution the profile result should be logged. By default this is false.
-
endOperationProfile
public void endOperationProfile(java.lang.String operationName)
INTERNAL: End the operation timing.- Specified by:
endOperationProfile
in interfaceSessionProfiler
- Overrides:
endOperationProfile
in classSessionProfilerAdapter
-
endOperationProfile
public void endOperationProfile(java.lang.String operationName, DatabaseQuery query, int weight)
INTERNAL: End the operation timing.- Specified by:
endOperationProfile
in interfaceSessionProfiler
- Overrides:
endOperationProfile
in classSessionProfilerAdapter
-
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 interfaceSessionProfiler
- Overrides:
profileExecutionOfQuery
in classSessionProfilerAdapter
- 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)
-
setSession
public void setSession(Session session)
Description copied from class:SessionProfilerAdapter
INTERNAL: Set the session.- Specified by:
setSession
in interfaceSessionProfiler
- Overrides:
setSession
in classSessionProfilerAdapter
-
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()
-
startOperationProfile
public void startOperationProfile(java.lang.String operationName)
INTERNAL: Start the operation timing.- Specified by:
startOperationProfile
in interfaceSessionProfiler
- Overrides:
startOperationProfile
in classSessionProfilerAdapter
-
startOperationProfile
public void startOperationProfile(java.lang.String operationName, DatabaseQuery query, int weight)
INTERNAL: Start the operation timing.- Specified by:
startOperationProfile
in interfaceSessionProfiler
- Overrides:
startOperationProfile
in classSessionProfilerAdapter
-
writeNestingTabs
protected void writeNestingTabs(java.io.Writer writer)
-
getProfileWeight
public int getProfileWeight()
Description copied from class:SessionProfilerAdapter
INTERNAL: Return DMS sensor weight(DMS)- Specified by:
getProfileWeight
in interfaceSessionProfiler
- Overrides:
getProfileWeight
in classSessionProfilerAdapter
-
initialize
public void initialize()
Description copied from class:SessionProfilerAdapter
INTERNAL: Initialize EclipseLink noun tree(DMS)- Specified by:
initialize
in interfaceSessionProfiler
- Overrides:
initialize
in classSessionProfilerAdapter
-
-