Package org.openjdk.jmh.profile
Class AbstractPerfAsmProfiler
java.lang.Object
org.openjdk.jmh.profile.AbstractPerfAsmProfiler
- All Implemented Interfaces:
ExternalProfiler,Profiler
- Direct Known Subclasses:
DTraceAsmProfiler,LinuxPerfAsmProfiler,WinPerfAsmProfiler
-
Nested Class Summary
Nested Classes -
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractPerfAsmProfiler(String initLine, String... events) -
Method Summary
Modifier and TypeMethodDescriptionaddJVMOptions(BenchmarkParams params) Add JVM these options to the run.protected abstract voidaddMyOptions(joptsimple.OptionParser parser) Collection<? extends Result>afterTrial(BenchmarkResult br, long pid, File stdOut, File stdErr) Run this code after the trial is done.booleanIf target VM communicates with profiler with standard error, this method can be used to shun the output to console.booleanIf target VM communicates with profiler with standard output, this method can be used to shun the output to console.voidbeforeTrial(BenchmarkParams params) Run this code before starting the trial.protected abstract voidParse profiler events from binary to text form.protected abstract StringGet perf binary data extension (optional).protected abstract AbstractPerfAsmProfiler.PerfEventsreadEvents(double skipMs, double lenMs) Read parsed events.stripEventNames(List<String> src) Some profilers strip modifiers from event names.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.openjdk.jmh.profile.ExternalProfiler
addJVMInvokeOptionsMethods inherited from interface org.openjdk.jmh.profile.Profiler
getDescription
-
Field Details
-
requestedEventNames
-
hsLog
-
perfBinData
-
perfParsedData
-
set
protected final joptsimple.OptionSet set
-
-
Constructor Details
-
AbstractPerfAsmProfiler
- Throws:
ProfilerException
-
-
Method Details
-
addMyOptions
protected abstract void addMyOptions(joptsimple.OptionParser parser) -
addJVMOptions
Description copied from interface:ExternalProfilerAdd JVM these options to the run.- Specified by:
addJVMOptionsin interfaceExternalProfiler- Parameters:
params- benchmark parameters used for current launch- Returns:
- options to add to JVM launch
-
beforeTrial
Description copied from interface:ExternalProfilerRun this code before starting the trial. This method will execute before starting the benchmark JVM.- Specified by:
beforeTrialin interfaceExternalProfiler- Parameters:
params- benchmark parameters used for current launch
-
afterTrial
public Collection<? extends Result> afterTrial(BenchmarkResult br, long pid, File stdOut, File stdErr) Description copied from interface:ExternalProfilerRun this code after the trial is done. This method will execute after benchmark JVM had stopped.- Specified by:
afterTrialin interfaceExternalProfiler- Parameters:
br- benchmark result that was the result of the trialpid- pid that the forked JVM hadstdOut- file containing the standard output from the benchmark JVMstdErr- file containing the standard error from the benchmark JVM- Returns:
- profiler results
-
allowPrintOut
public boolean allowPrintOut()Description copied from interface:ExternalProfilerIf 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:
allowPrintOutin interfaceExternalProfiler- Returns:
- returns true, if profiler allows harness to print out the standard output
-
allowPrintErr
public boolean allowPrintErr()Description copied from interface:ExternalProfilerIf 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:
allowPrintErrin interfaceExternalProfiler- 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
Read parsed events.- Parameters:
skipMs- Milliseconds to skip.lenMs- Milliseconds to capture after skip- Returns:
- Events.
-
stripEventNames
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
Get perf binary data extension (optional).- Returns:
- Extension.
-