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 Details

    • ENABLED_BIT_SPACE

      private static final int ENABLED_BIT_SPACE
      See Also:
    • GEN_TIMESTAMP_SPACE

      private static final int GEN_TIMESTAMP_SPACE
      See Also:
    • MAX_MIBROS

      private static final long MAX_MIBROS
      See Also:
    • NO_TAG

      private static final Tag NO_TAG
    • INCREMENT

      private static final long INCREMENT
      See Also:
    • linkIdAlloc

      private static final AtomicLong linkIdAlloc
    • generator

      private static final Generator generator
    • markRecorder

      private static final MarkRecorder markRecorder
    • logger

      private static final 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 Details

    • PerfMarkImpl

      public PerfMarkImpl(Tag key)
  • Method Details

    • setEnabled

      protected void setEnabled(boolean value)
      Overrides:
      setEnabled in class Impl
    • setEnabled

      protected boolean setEnabled(boolean value, boolean overload)
      Overrides:
      setEnabled in class Impl
    • 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(String taskName, Tag tag)
      Overrides:
      startTask in class Impl
    • startTask

      protected void startTask(String taskName)
      Overrides:
      startTask in class Impl
    • startTask

      protected void startTask(String taskName, String subTaskName)
      Overrides:
      startTask in class Impl
    • 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, Function<? super T, String> stringFunction)
      Overrides:
      startTask in class Impl
    • stopTask

      protected void stopTask()
      Overrides:
      stopTask in class Impl
    • stopTask

      protected void stopTask(String taskName, Tag tag)
      Overrides:
      stopTask in class Impl
    • stopTask

      protected void stopTask(String taskName)
      Overrides:
      stopTask in class Impl
    • stopTask

      protected void stopTask(String taskName, String subTaskName)
      Overrides:
      stopTask in class Impl
    • event

      protected void event(String eventName, Tag tag)
      Overrides:
      event in class Impl
    • event

      protected void event(String eventName)
      Overrides:
      event in class Impl
    • event

      protected void event(String eventName, String subEventName)
      Overrides:
      event in class Impl
    • attachTag

      protected void attachTag(Tag tag)
      Overrides:
      attachTag in class Impl
    • attachTag

      protected void attachTag(String tagName, String tagValue)
      Overrides:
      attachTag in class Impl
    • attachTag

      public <T> void attachTag(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(String tagName, T tagObject, Function<? super T, ? extends String> stringFunction)
      Overrides:
      attachTag in class Impl
    • attachTag

      protected <T> void attachTag(String tagName, T tagObject, ToIntFunction<? super T> intFunction)
      Overrides:
      attachTag in class Impl
    • attachTag

      protected <T> void attachTag(String tagName, T tagObject, ToLongFunction<? super T> longFunction)
      Overrides:
      attachTag in class Impl
    • deriveTagValue

      static <T> String deriveTagValue(String tagName, T tagObject, Function<? super T, ? extends String> stringFunction)
    • deriveTagValue

      static <T> long deriveTagValue(String tagName, T tagNameObject, ToIntFunction<? super T> intFunction)
    • deriveTagValue

      static <T> long deriveTagValue(String tagName, T tagNameObject, ToLongFunction<? super T> longFunction)
    • deriveTaskValue

      static <T> String deriveTaskValue(T taskNameObject, Function<? super T, String> stringFunction)
    • handleTagValueFailure

      static <T> void handleTagValueFailure(String tagName, T tagObject, Object stringFunction, Throwable cause)
    • handleTaskNameFailure

      static <T> void handleTaskNameFailure(T taskNameObject, Object function, Throwable cause)
    • attachTag

      protected void attachTag(String tagName, long tagValue)
      Overrides:
      attachTag in class Impl
    • attachTag

      protected void attachTag(String tagName, long tagValue0, long tagValue1)
      Overrides:
      attachTag in class Impl
    • createTag

      protected Tag createTag(String tagName, long tagId)
      Overrides:
      createTag in class Impl
    • linkOut

      protected Link linkOut()
      Overrides:
      linkOut in class Impl
    • linkIn

      protected void linkIn(Link link)
      Overrides:
      linkIn in class Impl
    • getGen

      private static long getGen()
    • isEnabled

      private static boolean isEnabled(long gen)