Class AbstractPerfAsmProfiler

    • Field Detail

      • requestedEventNames

        protected final java.util.List<java.lang.String> requestedEventNames
      • regionRateThreshold

        private final double regionRateThreshold
      • regionShowTop

        private final int regionShowTop
      • regionTooBigThreshold

        private final int regionTooBigThreshold
      • printMargin

        private final int printMargin
      • mergeMargin

        private final int mergeMargin
      • mergeMethods

        private final boolean mergeMethods
      • delayMsec

        private final int delayMsec
      • lengthMsec

        private final int lengthMsec
      • skipAssembly

        private final boolean skipAssembly
      • skipInterpreter

        private final boolean skipInterpreter
      • skipVMStubs

        private final boolean skipVMStubs
      • savePerfOutput

        private final boolean savePerfOutput
      • savePerfOutputTo

        private final java.lang.String savePerfOutputTo
      • savePerfOutputToFile

        private final java.lang.String savePerfOutputToFile
      • savePerfBin

        private final boolean savePerfBin
      • savePerfBinTo

        private final java.lang.String savePerfBinTo
      • savePerfBinFile

        private final java.lang.String savePerfBinFile
      • saveLog

        private final boolean saveLog
      • saveLogTo

        private final java.lang.String saveLogTo
      • saveLogToFile

        private final java.lang.String saveLogToFile
      • printCompilationInfo

        private final boolean printCompilationInfo
      • intelSyntax

        private final boolean intelSyntax
      • perfBinData

        protected final TempFile perfBinData
      • perfParsedData

        protected final TempFile perfParsedData
      • set

        protected final joptsimple.OptionSet set
      • drawIntraJumps

        private final boolean drawIntraJumps
      • drawInterJumps

        private final boolean drawInterJumps
    • Constructor Detail

      • AbstractPerfAsmProfiler

        protected AbstractPerfAsmProfiler​(java.lang.String initLine,
                                          java.lang.String... events)
                                   throws ProfilerException
        Throws:
        ProfilerException
    • Method Detail

      • addMyOptions

        protected abstract void addMyOptions​(joptsimple.OptionParser parser)
      • addJVMOptions

        public java.util.Collection<java.lang.String> addJVMOptions​(BenchmarkParams params)
        Description copied from interface: ExternalProfiler
        Add JVM these options to the run.
        Specified by:
        addJVMOptions in interface ExternalProfiler
        Parameters:
        params - benchmark parameters used for current launch
        Returns:
        options to add to JVM launch
      • beforeTrial

        public void beforeTrial​(BenchmarkParams params)
        Description copied from interface: ExternalProfiler
        Run this code before starting the trial. This method will execute before starting the benchmark JVM.
        Specified by:
        beforeTrial in interface ExternalProfiler
        Parameters:
        params - benchmark parameters used for current launch
      • afterTrial

        public java.util.Collection<? extends Result> afterTrial​(BenchmarkResult br,
                                                                 long pid,
                                                                 java.io.File stdOut,
                                                                 java.io.File stdErr)
        Description copied from interface: ExternalProfiler
        Run this code after the trial is done. This method will execute after benchmark JVM had stopped.
        Specified by:
        afterTrial in interface ExternalProfiler
        Parameters:
        br - benchmark result that was the result of the trial
        pid - pid that the forked JVM had
        stdOut - file containing the standard output from the benchmark JVM
        stdErr - file containing the standard error from the benchmark JVM
        Returns:
        profiler results
      • allowPrintOut

        public boolean allowPrintOut()
        Description copied from interface: ExternalProfiler
        If target VM communicates with profiler with standard output, this method can be used to shun the output to console. Profiler is responsible for consuming the standard output and printing the relevant data from there.
        Specified by:
        allowPrintOut in interface ExternalProfiler
        Returns:
        returns true, if profiler allows harness to print out the standard output
      • allowPrintErr

        public boolean allowPrintErr()
        Description copied from interface: ExternalProfiler
        If target VM communicates with profiler with standard error, this method can be used to shun the output to console. Profiler is responsible for consuming the standard error and printing the relevant data from there.
        Specified by:
        allowPrintErr in interface ExternalProfiler
        Returns:
        returns true, if profiler allows harness to print out the standard errpr
      • parseEvents

        protected abstract void parseEvents()
        Parse profiler events from binary to text form.
      • readEvents

        protected abstract AbstractPerfAsmProfiler.PerfEvents readEvents​(double skipMs,
                                                                         double lenMs)
        Read parsed events.
        Parameters:
        skipMs - Milliseconds to skip.
        lenMs - Milliseconds to capture after skip
        Returns:
        Events.
      • stripEventNames

        protected java.util.List<java.lang.String> stripEventNames​(java.util.List<java.lang.String> src)
        Some profilers strip modifiers from event names. To properly match the events in shared code, we need to know what those events were stripped to.
        Returns:
        stripped events
      • perfBinaryExtension

        protected abstract java.lang.String perfBinaryExtension()
        Get perf binary data extension (optional).
        Returns:
        Extension.
      • printDottedLine

        private void printDottedLine​(java.io.PrintWriter pw)
      • printDottedLine

        private void printDottedLine​(java.io.PrintWriter pw,
                                     java.lang.String header)
      • splitAssembly

        private java.util.Collection<java.util.Collection<java.lang.String>> splitAssembly​(java.io.File stdOut)
      • maybeAddress

        private boolean maybeAddress​(java.lang.String str)
      • parseAddress

        private long parseAddress​(java.lang.String address)