Class Result<T extends Result<T>>

java.lang.Object
org.openjdk.jmh.results.Result<T>
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AverageTimeResult, LinuxPerfProfiler.PerfResult, PausesProfiler.PausesProfilerResult, SafepointsProfiler.SafepointProfilerResult, SampleTimeResult, ScalarDerivativeResult, ScalarResult, SingleShotResult, StackProfiler.StackResult, TextResult, ThroughputResult

public abstract class Result<T extends Result<T>> extends Object implements Serializable
Base class for all types of results that can be returned by a benchmark.
See Also:
  • Field Details

  • Constructor Details

  • Method Details

    • of

      protected static Statistics of(double v)
    • getLabel

      public String getLabel()
      Return the result label.
      Returns:
      result label
    • getRole

      public ResultRole getRole()
      Return the result role.
      Returns:
      result role
    • getStatistics

      public Statistics getStatistics()
      Return the statistics holding the subresults' values.

      This method returns raw samples. The aggregation policy decides how to get the score out of these raw samples. Use getScore(), getScoreError(), and getScoreConfidence() for scalar results.

      Returns:
      statistics
    • getScoreUnit

      public final String getScoreUnit()
      The unit of the score for this result.
      Returns:
      String representation of the unit
    • getScore

      public double getScore()
      The score for this result.
      Returns:
      double representing the score
      See Also:
    • getScoreError

      public double getScoreError()
      The score error for this result.
      Returns:
      score error, if available
      See Also:
    • getScoreConfidence

      public double[] getScoreConfidence()
      The score confidence interval for this result.
      Returns:
      score confidence interval, if available; if not, the CI will match getScore()
      See Also:
    • getSampleCount

      public long getSampleCount()
      Get number of samples in the current result.
      Returns:
      number of samples
    • getThreadAggregator

      protected abstract Aggregator<T> getThreadAggregator()
      Thread aggregator combines the thread results into iteration result.
      Returns:
      thread aggregator
    • getIterationAggregator

      protected abstract Aggregator<T> getIterationAggregator()
      Iteration aggregator combines the iteration results into benchmar result.
      Returns:
      iteration aggregator
    • getZeroResult

      protected T getZeroResult()
      Returns "0" result. This is used for un-biased aggregation of secondary results. For instance, profilers might omit results in some iterations, thus we should pretend there were 0 results.
      Returns:
      result that represents "empty" result, null if no sensible "empty" result can be created
    • getDerivativeResults

      protected Collection<? extends Result> getDerivativeResults()
      Returns:
      derivative results for this result. These do not participate in aggregation, and computed on the spot from the aggregated result.
    • toString

      public String toString()
      Result as represented by a String.
      Overrides:
      toString in class Object
      Returns:
      String with the result and unit
    • extendedInfo

      public String extendedInfo()
      Print extended result information
      Returns:
      String with extended info
    • simpleExtendedInfo

      protected String simpleExtendedInfo()
    • distributionExtendedInfo

      protected String distributionExtendedInfo()
    • printPercentiles

      private void printPercentiles(Statistics stats, StringBuilder sb)
    • printHisto

      private void printHisto(Statistics stats, StringBuilder sb)