Package com.amazonaws.util
Class TimingInfo
java.lang.Object
com.amazonaws.util.TimingInfo
Used both as a base class and a minimal support of timing info.
In contrast to TimingInfoFullSupport
, which is intended to be a full
support of the timing info, this class only provides a minimal support of
start and end time (ie with no-ops for sub-event measurements) for backward
compatiblity reasons.
This class is instantiated instead of TimingInfoFullSupport
when
request metric collection is not required during a particular service
request/response cycle.
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
TimingInfo
(Long startEpochTimeMilli, long startTimeNano, Long endTimeNano) A private ctor to facilitate the deprecation of using millisecond and migration to using nanosecond for timing measurement. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addSubMeasurement
(String subMeasurementName, TimingInfo timingInfo) static double
durationMilliOf
(long startTimeNano, long endTimeNano) Returns the duration in milliseconds as double, preserving the decimal precision as necessary, for the given start and end time in nanoseconds.getAllSubMeasurements
(String subMeasurementName) getCounter
(String key) final long
Deprecated.final long
Deprecated.final Long
final long
Deprecated.final long
final Long
getLastSubMeasurement
(String subMeasurementName) final long
Deprecated.final Long
final long
Deprecated.final long
getSubMeasurement
(String subMeasurementName) getSubMeasurement
(String subMesurementName, int index) final double
Deprecated.final Double
void
incrementCounter
(String key) final boolean
final boolean
static TimingInfo
newTimingInfoFullSupport
(long startTimeNano, long endTimeNano) Returns aTimingInfoFullSupport
based on the given start and end time in nanosecond, ignoring the wall clock time.static TimingInfo
newTimingInfoFullSupport
(long startEpochTimeMilli, long startTimeNano, long endTimeNano) Returns aTimingInfoFullSupport
based on the given start time since epoch in millisecond, and the given start and end time in nanosecond.void
setCounter
(String key, long count) void
setEndTime
(long endTimeMilli) Deprecated.void
setEndTimeNano
(long endTimeNano) static TimingInfo
Captures the current wall clock time (since epoch in millisecond) and the current time (in nanosecond) used for timing measurement.static TimingInfo
Captures the current wall clock time (since epoch in millisecond) and the current time (in nanosecond) used for timing measurement.static TimingInfo
startTimingFullSupport
(long startTimeNano) Captures the given start time in nanosecond, ignoring the wall clock time.final String
toString()
static TimingInfo
unmodifiableTimingInfo
(long startEpochTimeMilli, long startTimeNano, Long endTimeNano) Returns an instance ofTimingInfo
that is not modifiable.static TimingInfo
unmodifiableTimingInfo
(long startTimeNano, Long endTimeNano) Returns an instance ofTimingInfo
that is not modifiable, given the start and end nano times.
-
Constructor Details
-
TimingInfo
A private ctor to facilitate the deprecation of using millisecond and migration to using nanosecond for timing measurement.- Parameters:
startEpochTimeMilli
- start time since epoch in millisecondstartTimeNano
- start time in nanosecondendTimeNano
- end time in nanosecond; or null if not known
-
-
Method Details
-
startTiming
Captures the current wall clock time (since epoch in millisecond) and the current time (in nanosecond) used for timing measurement. For more info, see: https://blogs.oracle.com/dholmes/entry/inside_the_hotspot_vm_clocks -
startTimingFullSupport
Captures the current wall clock time (since epoch in millisecond) and the current time (in nanosecond) used for timing measurement. For more info, see: https://blogs.oracle.com/dholmes/entry/inside_the_hotspot_vm_clocks -
startTimingFullSupport
Captures the given start time in nanosecond, ignoring the wall clock time.- Parameters:
startTimeNano
- start time in nanosecond
-
newTimingInfoFullSupport
Returns aTimingInfoFullSupport
based on the given start and end time in nanosecond, ignoring the wall clock time.- Parameters:
startTimeNano
- start time in nanosecondendTimeNano
- end time in nanosecond
-
newTimingInfoFullSupport
public static TimingInfo newTimingInfoFullSupport(long startEpochTimeMilli, long startTimeNano, long endTimeNano) Returns aTimingInfoFullSupport
based on the given start time since epoch in millisecond, and the given start and end time in nanosecond.- Parameters:
startEpochTimeMilli
- start time since epoch in millisecondstartTimeNano
- start time in nanosecondendTimeNano
- end time in nanosecond
-
unmodifiableTimingInfo
Returns an instance ofTimingInfo
that is not modifiable, given the start and end nano times. -
unmodifiableTimingInfo
public static TimingInfo unmodifiableTimingInfo(long startEpochTimeMilli, long startTimeNano, Long endTimeNano) Returns an instance ofTimingInfo
that is not modifiable.- Parameters:
startEpochTimeMilli
- start time since epoch in millisecondstartTimeNano
- start time in nanosecondendTimeNano
- end time in nanosecond; or null if not known
-
getStartTime
Deprecated. -
getStartEpochTimeMilli
Deprecated. -
getStartEpochTimeMilliIfKnown
-
getStartTimeNano
public final long getStartTimeNano() -
getEndTime
Deprecated. -
getEndEpochTimeMilli
Deprecated. -
getEndEpochTimeMilliIfKnown
-
getEndTimeNano
public final long getEndTimeNano() -
getEndTimeNanoIfKnown
-
getTimeTakenMillis
Deprecated. -
getTimeTakenMillisIfKnown
-
durationMilliOf
public static double durationMilliOf(long startTimeNano, long endTimeNano) Returns the duration in milliseconds as double, preserving the decimal precision as necessary, for the given start and end time in nanoseconds. -
getElapsedTimeMillis
Deprecated. -
isEndTimeKnown
public final boolean isEndTimeKnown() -
isStartEpochTimeMilliKnown
public final boolean isStartEpochTimeMilliKnown() -
toString
-
setEndTime
Deprecated. -
setEndTimeNano
public void setEndTimeNano(long endTimeNano) -
endTiming
-
addSubMeasurement
-
getSubMeasurement
-
getSubMeasurement
-
getLastSubMeasurement
-
getAllSubMeasurements
-
getSubMeasurementsByName
-
getCounter
-
getAllCounters
-
setCounter
-
incrementCounter
-