public abstract class AbstractPerfAsmProfiler extends java.lang.Object implements ExternalProfiler
Modifier and Type | Class and Description |
---|---|
(package private) static class |
AbstractPerfAsmProfiler.ASMLine |
(package private) static class |
AbstractPerfAsmProfiler.Assembly |
(package private) static class |
AbstractPerfAsmProfiler.GeneratedRegion |
(package private) static class |
AbstractPerfAsmProfiler.MethodDesc |
(package private) static class |
AbstractPerfAsmProfiler.NativeRegion |
protected static class |
AbstractPerfAsmProfiler.PerfEvents |
(package private) static class |
AbstractPerfAsmProfiler.PerfResult |
(package private) static class |
AbstractPerfAsmProfiler.PerfResultAggregator |
(package private) static class |
AbstractPerfAsmProfiler.Region |
(package private) static class |
AbstractPerfAsmProfiler.UnknownRegion |
Modifier and Type | Field and Description |
---|---|
private int |
delayMsec |
private boolean |
drawInterJumps |
private boolean |
drawIntraJumps |
protected java.util.List<java.lang.String> |
events |
protected java.lang.String |
hsLog |
private boolean |
intelSyntax |
private int |
mergeMargin |
protected java.lang.String |
perfBinData |
protected java.lang.String |
perfParsedData |
private boolean |
printCompilationInfo |
private int |
printMargin |
private double |
regionRateThreshold |
private int |
regionShowTop |
private int |
regionTooBigThreshold |
private boolean |
saveLog |
private java.lang.String |
saveLogTo |
private java.lang.String |
saveLogToFile |
private boolean |
savePerfBin |
private java.lang.String |
savePerfBinFile |
private java.lang.String |
savePerfBinTo |
private boolean |
savePerfOutput |
private java.lang.String |
savePerfOutputTo |
private java.lang.String |
savePerfOutputToFile |
protected joptsimple.OptionSet |
set |
private boolean |
skipAssembly |
private boolean |
skipInterpreter |
private boolean |
skipVMStubs |
Modifier | Constructor and Description |
---|---|
protected |
AbstractPerfAsmProfiler(java.lang.String initLine,
java.lang.String... events) |
Modifier and Type | Method and Description |
---|---|
java.util.Collection<java.lang.String> |
addJVMOptions(BenchmarkParams params)
Add JVM these options to the run.
|
protected abstract void |
addMyOptions(joptsimple.OptionParser parser) |
java.util.Collection<? extends Result> |
afterTrial(BenchmarkResult br,
long pid,
java.io.File stdOut,
java.io.File stdErr)
Run this code after the trial is done.
|
boolean |
allowPrintErr()
If target VM communicates with profiler with standard error, this method
can be used to shun the output to console.
|
boolean |
allowPrintOut()
If target VM communicates with profiler with standard output, this method
can be used to shun the output to console.
|
void |
beforeTrial(BenchmarkParams params)
Run this code before starting the trial.
|
private java.util.List<Interval> |
figureHotIntervals(java.util.SortedSet<java.lang.Long> allAddrs,
long from,
long to) |
(package private) java.util.List<AbstractPerfAsmProfiler.Region> |
makeRegions(AbstractPerfAsmProfiler.Assembly asms,
AbstractPerfAsmProfiler.PerfEvents events) |
private java.lang.Long |
parseAddress(java.lang.String address) |
protected abstract void |
parseEvents()
Parse profiler events from binary to text form.
|
protected abstract java.lang.String |
perfBinaryExtension()
Get perf binary data extension (optional).
|
(package private) void |
printDottedLine(java.io.PrintWriter pw) |
(package private) void |
printDottedLine(java.io.PrintWriter pw,
java.lang.String header) |
private static void |
printLine(java.io.PrintWriter pw,
AbstractPerfAsmProfiler.PerfEvents events,
java.lang.String event,
long count) |
private AbstractPerfAsmProfiler.PerfResult |
processAssembly(BenchmarkResult br,
java.io.File stdOut,
java.io.File stdErr) |
(package private) AbstractPerfAsmProfiler.Assembly |
readAssembly(java.io.File stdOut) |
protected abstract AbstractPerfAsmProfiler.PerfEvents |
readEvents(double skipSec)
Read parsed events.
|
(package private) java.util.Collection<java.util.Collection<java.lang.String>> |
splitAssembly(java.io.File stdOut) |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addJVMInvokeOptions
getDescription
protected final java.util.List<java.lang.String> events
private final double regionRateThreshold
private final int regionShowTop
private final int regionTooBigThreshold
private final int printMargin
private final int mergeMargin
private final int delayMsec
private final boolean skipAssembly
private final boolean skipInterpreter
private final boolean skipVMStubs
private final boolean savePerfOutput
private final java.lang.String savePerfOutputTo
private final java.lang.String savePerfOutputToFile
private final boolean savePerfBin
private final java.lang.String savePerfBinTo
private final java.lang.String savePerfBinFile
private final boolean saveLog
private final java.lang.String saveLogTo
private final java.lang.String saveLogToFile
private final boolean printCompilationInfo
private final boolean intelSyntax
protected final java.lang.String hsLog
protected final java.lang.String perfBinData
protected final java.lang.String perfParsedData
protected final joptsimple.OptionSet set
private final boolean drawIntraJumps
private final boolean drawInterJumps
protected AbstractPerfAsmProfiler(java.lang.String initLine, java.lang.String... events) throws ProfilerException
ProfilerException
protected abstract void addMyOptions(joptsimple.OptionParser parser)
public java.util.Collection<java.lang.String> addJVMOptions(BenchmarkParams params)
ExternalProfiler
addJVMOptions
in interface ExternalProfiler
params
- benchmark parameters used for current launchpublic void beforeTrial(BenchmarkParams params)
ExternalProfiler
beforeTrial
in interface ExternalProfiler
params
- benchmark parameters used for current launchpublic java.util.Collection<? extends Result> afterTrial(BenchmarkResult br, long pid, java.io.File stdOut, java.io.File stdErr)
ExternalProfiler
afterTrial
in interface ExternalProfiler
br
- benchmark result that was the result of the trialstdOut
- file containing the standard output from the benchmark JVMstdErr
- file containing the standard error from the benchmark JVMpublic boolean allowPrintOut()
ExternalProfiler
allowPrintOut
in interface ExternalProfiler
public boolean allowPrintErr()
ExternalProfiler
allowPrintErr
in interface ExternalProfiler
protected abstract void parseEvents()
protected abstract AbstractPerfAsmProfiler.PerfEvents readEvents(double skipSec)
skipSec
- Seconds to skip.protected abstract java.lang.String perfBinaryExtension()
private AbstractPerfAsmProfiler.PerfResult processAssembly(BenchmarkResult br, java.io.File stdOut, java.io.File stdErr)
private static void printLine(java.io.PrintWriter pw, AbstractPerfAsmProfiler.PerfEvents events, java.lang.String event, long count)
void printDottedLine(java.io.PrintWriter pw)
void printDottedLine(java.io.PrintWriter pw, java.lang.String header)
java.util.List<AbstractPerfAsmProfiler.Region> makeRegions(AbstractPerfAsmProfiler.Assembly asms, AbstractPerfAsmProfiler.PerfEvents events)
private java.util.List<Interval> figureHotIntervals(java.util.SortedSet<java.lang.Long> allAddrs, long from, long to)
java.util.Collection<java.util.Collection<java.lang.String>> splitAssembly(java.io.File stdOut)
AbstractPerfAsmProfiler.Assembly readAssembly(java.io.File stdOut)
private java.lang.Long parseAddress(java.lang.String address)