public class ProfilerTimerFilter extends IoFilterAdapter
IoFilterAdapter
class to execute. The basic
premise of the logic in this class is to get the current time
at the beginning of the method, call method on nextFilter, and
then get the current time again. An example of how to use
the filter is:
ProfilerTimerFilter profiler = new ProfilerTimerFilter( TimeUnit.MILLISECOND, IoEventType.MESSAGE_RECEIVED); chain.addFirst("Profiler", profiler);The profiled
IoEventType
are :
IoFilter.NextFilter
Constructor and Description |
---|
ProfilerTimerFilter()
Creates a new instance of ProfilerFilter.
|
ProfilerTimerFilter(java.util.concurrent.TimeUnit timeUnit)
Creates a new instance of ProfilerFilter.
|
ProfilerTimerFilter(java.util.concurrent.TimeUnit timeUnit,
IoEventType... eventTypes)
Creates a new instance of ProfilerFilter.
|
Modifier and Type | Method and Description |
---|---|
double |
getAverageTime(IoEventType type)
Get the average time for the specified method represented by the
IoEventType |
java.util.Set<IoEventType> |
getEventsToProfile()
Return the set of
IoEventType which are profiled. |
long |
getMaximumTime(IoEventType type)
The maximum time the method represented by
IoEventType has executed |
long |
getMinimumTime(IoEventType type)
The minimum time the method represented by
IoEventType has executed |
long |
getTotalCalls(IoEventType type)
Gets the total number of times the method has been called that is represented by the
IoEventType |
long |
getTotalTime(IoEventType type)
The total time this method has been executing
|
void |
messageReceived(IoFilter.NextFilter nextFilter,
IoSession session,
java.lang.Object message)
Profile a MessageReceived event.
|
void |
messageSent(IoFilter.NextFilter nextFilter,
IoSession session,
WriteRequest writeRequest)
Profile a MessageSent event.
|
void |
profile(IoEventType type)
Set the
IoEventType to be profiled |
void |
sessionClosed(IoFilter.NextFilter nextFilter,
IoSession session)
Profile a SessionClosed event.
|
void |
sessionCreated(IoFilter.NextFilter nextFilter,
IoSession session)
Profile a SessionCreated event.
|
void |
sessionIdle(IoFilter.NextFilter nextFilter,
IoSession session,
IdleStatus status)
Profile a SessionIdle event.
|
void |
sessionOpened(IoFilter.NextFilter nextFilter,
IoSession session)
Profile a SessionOpened event.
|
void |
setEventsToProfile(IoEventType... eventTypes)
Set the profilers for a list of
IoEventType |
void |
setTimeUnit(java.util.concurrent.TimeUnit timeUnit)
Sets the
TimeUnit being used. |
void |
stopProfile(IoEventType type)
Stop profiling an
IoEventType |
destroy, exceptionCaught, filterClose, filterWrite, init, onPostAdd, onPostRemove, onPreAdd, onPreRemove, toString
public ProfilerTimerFilter()
public ProfilerTimerFilter(java.util.concurrent.TimeUnit timeUnit)
timeUnit
- the time increment to setpublic ProfilerTimerFilter(java.util.concurrent.TimeUnit timeUnit, IoEventType... eventTypes)
new ProfilerTimerFilter( TimeUnit.MILLISECONDS, IoEventType.MESSAGE_RECEIVED, IoEventType.MESSAGE_SENT);Note : you can add as many
IoEventType
as you want. The method accepts
a variable number of arguments.timeUnit
- Used to determine the level of precision you need in your timing.eventTypes
- A list of IoEventType
representation of the methods to profilepublic void setTimeUnit(java.util.concurrent.TimeUnit timeUnit)
TimeUnit
being used.timeUnit
- the new TimeUnit
to be used.public void profile(IoEventType type)
IoEventType
to be profiledtype
- The IoEventType
to profilepublic void stopProfile(IoEventType type)
IoEventType
type
- The IoEventType
to stop profilingpublic java.util.Set<IoEventType> getEventsToProfile()
IoEventType
which are profiled.IoEventType
public void setEventsToProfile(IoEventType... eventTypes)
IoEventType
eventTypes
- the list of IoEventType
to profilepublic void messageReceived(IoFilter.NextFilter nextFilter, IoSession session, java.lang.Object message) throws java.lang.Exception
messageReceived
in interface IoFilter
messageReceived
in class IoFilterAdapter
nextFilter
- The filter to call nextsession
- The associated sessionmessage
- the received messagejava.lang.Exception
public void messageSent(IoFilter.NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws java.lang.Exception
messageSent
in interface IoFilter
messageSent
in class IoFilterAdapter
nextFilter
- The filter to call nextsession
- The associated sessionwriteRequest
- the sent messagejava.lang.Exception
public void sessionCreated(IoFilter.NextFilter nextFilter, IoSession session) throws java.lang.Exception
sessionCreated
in interface IoFilter
sessionCreated
in class IoFilterAdapter
nextFilter
- The filter to call nextsession
- The associated sessionjava.lang.Exception
public void sessionOpened(IoFilter.NextFilter nextFilter, IoSession session) throws java.lang.Exception
sessionOpened
in interface IoFilter
sessionOpened
in class IoFilterAdapter
nextFilter
- The filter to call nextsession
- The associated sessionjava.lang.Exception
public void sessionIdle(IoFilter.NextFilter nextFilter, IoSession session, IdleStatus status) throws java.lang.Exception
sessionIdle
in interface IoFilter
sessionIdle
in class IoFilterAdapter
nextFilter
- The filter to call nextsession
- The associated sessionstatus
- The session's statusjava.lang.Exception
public void sessionClosed(IoFilter.NextFilter nextFilter, IoSession session) throws java.lang.Exception
sessionClosed
in interface IoFilter
sessionClosed
in class IoFilterAdapter
nextFilter
- The filter to call nextsession
- The associated sessionjava.lang.Exception
public double getAverageTime(IoEventType type)
IoEventType
type
- The IoEventType
that the user wants to get the average method call timeIoEventType
public long getTotalCalls(IoEventType type)
IoEventType
type
- The IoEventType
that the user wants to get the total number of method callsIoEventType
public long getTotalTime(IoEventType type)
type
- The IoEventType
that the user wants to get the total time this method has
been executingIoEventType
public long getMinimumTime(IoEventType type)
IoEventType
has executedtype
- The IoEventType
that the user wants to get the minimum time this method has
executedIoEventType
public long getMaximumTime(IoEventType type)
IoEventType
has executedtype
- The IoEventType
that the user wants to get the maximum time this method has
executedIoEventType
Copyright © 2004-2019 Apache MINA Project. All Rights Reserved.