Package io.perfmark.impl
Class SecretPerfMarkImpl.PerfMarkImpl
- java.lang.Object
-
- io.perfmark.Impl
-
- io.perfmark.impl.SecretPerfMarkImpl.PerfMarkImpl
-
- Enclosing class:
- SecretPerfMarkImpl
public static final class SecretPerfMarkImpl.PerfMarkImpl extends Impl
-
-
Field Summary
Fields Modifier and Type Field Description private static longactualGenerationThis is the generation of the recorded tasks.private static intENABLED_BIT_SPACEprivate static intGEN_TIMESTAMP_SPACEprivate static Generatorgeneratorprivate static longINCREMENTprivate static java.util.concurrent.atomic.AtomicLonglinkIdAllocprivate static java.lang.Objectloggerprivate static MarkRecordermarkRecorderprivate static longMAX_MIBROSprivate static LinkNO_LINKprivate static TagNO_TAG
-
Constructor Summary
Constructors Constructor Description PerfMarkImpl(Tag key)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidattachTag(Tag tag)protected voidattachTag(java.lang.String tagName, long tagValue)protected voidattachTag(java.lang.String tagName, long tagValue0, long tagValue1)protected voidattachTag(java.lang.String tagName, java.lang.String tagValue)<T> voidattachTag(java.lang.String tagName, T tagObject, StringFunction<? super T> stringFunction)This method is needed to work with old version of perfmark-api.protected <T> voidattachTag(java.lang.String tagName, T tagObject, java.util.function.Function<? super T,? extends java.lang.String> stringFunction)protected <T> voidattachTag(java.lang.String tagName, T tagObject, java.util.function.ToIntFunction<? super T> intFunction)protected <T> voidattachTag(java.lang.String tagName, T tagObject, java.util.function.ToLongFunction<? super T> longFunction)protected TagcreateTag(java.lang.String tagName, long tagId)(package private) static <T> java.lang.StringderiveTagValue(java.lang.String tagName, T tagObject, java.util.function.Function<? super T,? extends java.lang.String> stringFunction)(package private) static <T> longderiveTagValue(java.lang.String tagName, T tagNameObject, java.util.function.ToIntFunction<? super T> intFunction)(package private) static <T> longderiveTagValue(java.lang.String tagName, T tagNameObject, java.util.function.ToLongFunction<? super T> longFunction)(package private) static <T> java.lang.StringderiveTaskValue(T taskNameObject, java.util.function.Function<? super T,java.lang.String> stringFunction)protected voidevent(java.lang.String eventName)protected voidevent(java.lang.String eventName, Tag tag)protected voidevent(java.lang.String eventName, java.lang.String subEventName)private static longgetGen()(package private) static <T> voidhandleTagValueFailure(java.lang.String tagName, T tagObject, java.lang.Object stringFunction, java.lang.Throwable cause)(package private) static <T> voidhandleTaskNameFailure(T taskNameObject, java.lang.Object function, java.lang.Throwable cause)private static booleanisEnabled(long gen)protected voidlinkIn(Link link)protected LinklinkOut()private static voidlogEnabledChange(boolean value, boolean success)private static longmibrosFromGeneration(long currentGeneration)private static longmibrosFromNanos(long nanos)(package private) static longnextGeneration(long currentGeneration, long nanosSinceInit)protected voidsetEnabled(boolean value)protected booleansetEnabled(boolean value, boolean overload)private static booleansetEnabledQuiet(boolean value, long now)Returns true if successfully changed.protected voidstartTask(java.lang.String taskName)protected voidstartTask(java.lang.String taskName, Tag tag)protected voidstartTask(java.lang.String taskName, java.lang.String subTaskName)protected <T> voidstartTask(T taskNameObject, StringFunction<? super T> stringFunction)This method is needed to work with old version of perfmark-api.protected <T> voidstartTask(T taskNameObject, java.util.function.Function<? super T,java.lang.String> stringFunction)protected voidstopTask()protected voidstopTask(java.lang.String taskName)protected voidstopTask(java.lang.String taskName, Tag tag)protected voidstopTask(java.lang.String taskName, java.lang.String subTaskName)-
Methods inherited from class io.perfmark.Impl
packLink, packTag, unpackLinkId, unpackTagId, unpackTagName
-
-
-
-
Field Detail
-
ENABLED_BIT_SPACE
private static final int ENABLED_BIT_SPACE
- See Also:
- Constant Field Values
-
GEN_TIMESTAMP_SPACE
private static final int GEN_TIMESTAMP_SPACE
- See Also:
- Constant Field Values
-
MAX_MIBROS
private static final long MAX_MIBROS
- See Also:
- Constant Field Values
-
NO_TAG
private static final Tag NO_TAG
-
NO_LINK
private static final Link NO_LINK
-
INCREMENT
private static final long INCREMENT
- See Also:
- Constant Field Values
-
linkIdAlloc
private static final java.util.concurrent.atomic.AtomicLong linkIdAlloc
-
generator
private static final Generator generator
-
markRecorder
private static final MarkRecorder markRecorder
-
logger
private static final java.lang.Object logger
-
actualGeneration
private static long actualGeneration
This is the generation of the recorded tasks. The bottom 8 bits [0-7] are reserved for opcode packing. Bit 9 [8] is used for detecting if PerfMark is enabled or not. Bit 10 [9] is unused. Bits 11-64 [10-647] are used for storing the time since Perfmark Was last / enabled or disabled. The units are in nanoseconds/1024, or (inaccurately) called mibros (like micros, but power of 2 based).
-
-
Constructor Detail
-
PerfMarkImpl
public PerfMarkImpl(Tag key)
-
-
Method Detail
-
setEnabled
protected void setEnabled(boolean value)
- Overrides:
setEnabledin classImpl
-
setEnabled
protected boolean setEnabled(boolean value, boolean overload)- Overrides:
setEnabledin classImpl
-
logEnabledChange
private static void logEnabledChange(boolean value, boolean success)
-
setEnabledQuiet
private static boolean setEnabledQuiet(boolean value, long now)Returns true if successfully changed.
-
nextGeneration
static long nextGeneration(long currentGeneration, long nanosSinceInit)
-
mibrosFromGeneration
private static long mibrosFromGeneration(long currentGeneration)
-
mibrosFromNanos
private static long mibrosFromNanos(long nanos)
-
startTask
protected void startTask(java.lang.String taskName, Tag tag)
-
startTask
protected void startTask(java.lang.String taskName, java.lang.String subTaskName)
-
startTask
protected <T> void startTask(T taskNameObject, StringFunction<? super T> stringFunction)This method is needed to work with old version of perfmark-api.
-
startTask
protected <T> void startTask(T taskNameObject, java.util.function.Function<? super T,java.lang.String> stringFunction)
-
stopTask
protected void stopTask(java.lang.String taskName, Tag tag)
-
stopTask
protected void stopTask(java.lang.String taskName, java.lang.String subTaskName)
-
event
protected void event(java.lang.String eventName, java.lang.String subEventName)
-
attachTag
protected void attachTag(java.lang.String tagName, java.lang.String tagValue)
-
attachTag
public <T> void attachTag(java.lang.String tagName, T tagObject, StringFunction<? super T> stringFunction)This method is needed to work with old version of perfmark-api.
-
attachTag
protected <T> void attachTag(java.lang.String tagName, T tagObject, java.util.function.Function<? super T,? extends java.lang.String> stringFunction)
-
attachTag
protected <T> void attachTag(java.lang.String tagName, T tagObject, java.util.function.ToIntFunction<? super T> intFunction)
-
attachTag
protected <T> void attachTag(java.lang.String tagName, T tagObject, java.util.function.ToLongFunction<? super T> longFunction)
-
deriveTagValue
static <T> java.lang.String deriveTagValue(java.lang.String tagName, T tagObject, java.util.function.Function<? super T,? extends java.lang.String> stringFunction)
-
deriveTagValue
static <T> long deriveTagValue(java.lang.String tagName, T tagNameObject, java.util.function.ToIntFunction<? super T> intFunction)
-
deriveTagValue
static <T> long deriveTagValue(java.lang.String tagName, T tagNameObject, java.util.function.ToLongFunction<? super T> longFunction)
-
deriveTaskValue
static <T> java.lang.String deriveTaskValue(T taskNameObject, java.util.function.Function<? super T,java.lang.String> stringFunction)
-
handleTagValueFailure
static <T> void handleTagValueFailure(java.lang.String tagName, T tagObject, java.lang.Object stringFunction, java.lang.Throwable cause)
-
handleTaskNameFailure
static <T> void handleTaskNameFailure(T taskNameObject, java.lang.Object function, java.lang.Throwable cause)
-
attachTag
protected void attachTag(java.lang.String tagName, long tagValue)
-
attachTag
protected void attachTag(java.lang.String tagName, long tagValue0, long tagValue1)
-
createTag
protected Tag createTag(java.lang.String tagName, long tagId)
-
getGen
private static long getGen()
-
isEnabled
private static boolean isEnabled(long gen)
-
-