Class SuggestionWalker
- java.lang.Object
-
- org.adoptopenjdk.jitwatch.compilation.AbstractCompilationVisitable
-
- org.adoptopenjdk.jitwatch.report.AbstractReportBuilder
-
- org.adoptopenjdk.jitwatch.report.suggestion.SuggestionWalker
-
- All Implemented Interfaces:
ICompilationVisitable,ITreeVisitable
public class SuggestionWalker extends AbstractReportBuilder
-
-
Field Summary
Fields Modifier and Type Field Description private static java.lang.StringCODE_CACHE_FULLprivate intcompilationIndexprivate IMetaMembercompilationRootMemberprivate static java.util.Map<java.lang.String,java.lang.String>explanationMapprivate static java.lang.StringHOT_THROW_NOT_PREALLOCATEDprivate static com.chrisnewland.freelogj.Loggerloggerprivate static intMIN_BRANCH_INVOCATIONSprivate static intMIN_INLINING_INVOCATIONSprivate static java.lang.StringREASON_ALREADY_COMPILED_INTO_A_BIG_METHODprivate static java.lang.StringREASON_ALREADY_COMPILED_INTO_A_MEDIUM_METHODprivate static java.lang.StringREASON_CALL_SITE_NOT_REACHEDprivate static java.lang.StringREASON_CALLEE_IS_TOO_LARGEprivate static java.lang.StringREASON_DONT_THROW_INLINEABLE_CONSTRUCTORSprivate static java.lang.StringREASON_EXEC_LESS_MIN_INLINING_THRESHOLDprivate static java.lang.StringREASON_HOT_METHOD_TOO_BIGprivate static java.lang.StringREASON_INLINING_IS_TOO_DEEPprivate static java.lang.StringREASON_INLINING_PROHIBITED_BY_POLICYprivate static java.lang.StringREASON_NATIVE_METHODprivate static java.lang.StringREASON_NEVER_EXECUTEDprivate static java.lang.StringREASON_NO_STATIC_BINDINGprivate static java.lang.StringREASON_NODE_COUNT_INLINING_CUTOFFprivate static java.lang.StringREASON_NOT_AN_ACCESSORprivate static java.lang.StringREASON_NOT_INLINEABLEprivate static java.lang.StringREASON_RECURSIVE_INLINING_IS_TOO_DEEPprivate static java.lang.StringREASON_RECURSIVE_INLINING_TOO_DEEPprivate static java.lang.StringREASON_RECURSIVELY_INLINING_TOO_DEEPprivate static java.lang.StringREASON_SIZE_ABOVE_DESIRED_METHOD_LIMITprivate static java.lang.StringREASON_TOO_BIGprivate static java.lang.StringREASON_TOO_MUCH_STACKprivate static java.lang.StringREASON_UNCERTAIN_BRANCHprivate static java.lang.StringREASON_UNLOADED_SIGNATURE_CLASSESprivate static java.util.Map<java.lang.String,java.lang.Double>scoreMap-
Fields inherited from class org.adoptopenjdk.jitwatch.report.AbstractReportBuilder
model, reportList
-
Fields inherited from class org.adoptopenjdk.jitwatch.compilation.AbstractCompilationVisitable
ignoreTags
-
-
Constructor Summary
Constructors Constructor Description SuggestionWalker(IReadOnlyJITDataModel model)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidcheckIfCodeCacheFull()protected voidfindNonMemberReports()private voidhandleBranchTag(java.util.Map<java.lang.String,java.lang.String> attrs, int currentBytecode, IMetaMember caller)private voidhandleCodeCacheFull(CodeCacheEvent event)private voidhandleHotThrowNotPreallocated(java.util.Map<java.lang.String,java.lang.String> attrs, int currentBytecode, IMetaMember caller)private voidhandleInlineFailTag(java.util.Map<java.lang.String,java.lang.String> attrs, java.lang.String methodID, IMetaMember caller, int currentBytecode, IParseDictionary parseDictionary)private voidprocessParseTag(Tag parseTag, IMetaMember caller, IParseDictionary parseDictionary)voidvisit(IMetaMember metaMember)voidvisitTag(Tag parseTag, IParseDictionary parseDictionary)-
Methods inherited from class org.adoptopenjdk.jitwatch.report.AbstractReportBuilder
getReports, reset
-
Methods inherited from class org.adoptopenjdk.jitwatch.compilation.AbstractCompilationVisitable
handleOther
-
-
-
-
Field Detail
-
compilationRootMember
private IMetaMember compilationRootMember
-
compilationIndex
private int compilationIndex
-
scoreMap
private static final java.util.Map<java.lang.String,java.lang.Double> scoreMap
-
explanationMap
private static final java.util.Map<java.lang.String,java.lang.String> explanationMap
-
REASON_HOT_METHOD_TOO_BIG
private static final java.lang.String REASON_HOT_METHOD_TOO_BIG
- See Also:
- Constant Field Values
-
REASON_TOO_BIG
private static final java.lang.String REASON_TOO_BIG
- See Also:
- Constant Field Values
-
REASON_ALREADY_COMPILED_INTO_A_BIG_METHOD
private static final java.lang.String REASON_ALREADY_COMPILED_INTO_A_BIG_METHOD
- See Also:
- Constant Field Values
-
REASON_ALREADY_COMPILED_INTO_A_MEDIUM_METHOD
private static final java.lang.String REASON_ALREADY_COMPILED_INTO_A_MEDIUM_METHOD
- See Also:
- Constant Field Values
-
REASON_NEVER_EXECUTED
private static final java.lang.String REASON_NEVER_EXECUTED
- See Also:
- Constant Field Values
-
REASON_EXEC_LESS_MIN_INLINING_THRESHOLD
private static final java.lang.String REASON_EXEC_LESS_MIN_INLINING_THRESHOLD
- See Also:
- Constant Field Values
-
REASON_CALL_SITE_NOT_REACHED
private static final java.lang.String REASON_CALL_SITE_NOT_REACHED
- See Also:
- Constant Field Values
-
REASON_UNCERTAIN_BRANCH
private static final java.lang.String REASON_UNCERTAIN_BRANCH
- See Also:
- Constant Field Values
-
REASON_NATIVE_METHOD
private static final java.lang.String REASON_NATIVE_METHOD
- See Also:
- Constant Field Values
-
REASON_TOO_MUCH_STACK
private static final java.lang.String REASON_TOO_MUCH_STACK
- See Also:
- Constant Field Values
-
REASON_CALLEE_IS_TOO_LARGE
private static final java.lang.String REASON_CALLEE_IS_TOO_LARGE
- See Also:
- Constant Field Values
-
REASON_NO_STATIC_BINDING
private static final java.lang.String REASON_NO_STATIC_BINDING
- See Also:
- Constant Field Values
-
REASON_NOT_INLINEABLE
private static final java.lang.String REASON_NOT_INLINEABLE
- See Also:
- Constant Field Values
-
REASON_NOT_AN_ACCESSOR
private static final java.lang.String REASON_NOT_AN_ACCESSOR
- See Also:
- Constant Field Values
-
REASON_RECURSIVE_INLINING_TOO_DEEP
private static final java.lang.String REASON_RECURSIVE_INLINING_TOO_DEEP
- See Also:
- Constant Field Values
-
REASON_RECURSIVE_INLINING_IS_TOO_DEEP
private static final java.lang.String REASON_RECURSIVE_INLINING_IS_TOO_DEEP
- See Also:
- Constant Field Values
-
REASON_RECURSIVELY_INLINING_TOO_DEEP
private static final java.lang.String REASON_RECURSIVELY_INLINING_TOO_DEEP
- See Also:
- Constant Field Values
-
REASON_INLINING_IS_TOO_DEEP
private static final java.lang.String REASON_INLINING_IS_TOO_DEEP
- See Also:
- Constant Field Values
-
REASON_INLINING_PROHIBITED_BY_POLICY
private static final java.lang.String REASON_INLINING_PROHIBITED_BY_POLICY
- See Also:
- Constant Field Values
-
REASON_SIZE_ABOVE_DESIRED_METHOD_LIMIT
private static final java.lang.String REASON_SIZE_ABOVE_DESIRED_METHOD_LIMIT
- See Also:
- Constant Field Values
-
REASON_NODE_COUNT_INLINING_CUTOFF
private static final java.lang.String REASON_NODE_COUNT_INLINING_CUTOFF
- See Also:
- Constant Field Values
-
REASON_UNLOADED_SIGNATURE_CLASSES
private static final java.lang.String REASON_UNLOADED_SIGNATURE_CLASSES
- See Also:
- Constant Field Values
-
REASON_DONT_THROW_INLINEABLE_CONSTRUCTORS
private static final java.lang.String REASON_DONT_THROW_INLINEABLE_CONSTRUCTORS
- See Also:
- Constant Field Values
-
CODE_CACHE_FULL
private static final java.lang.String CODE_CACHE_FULL
- See Also:
- Constant Field Values
-
HOT_THROW_NOT_PREALLOCATED
private static final java.lang.String HOT_THROW_NOT_PREALLOCATED
- See Also:
- Constant Field Values
-
MIN_BRANCH_INVOCATIONS
private static final int MIN_BRANCH_INVOCATIONS
- See Also:
- Constant Field Values
-
MIN_INLINING_INVOCATIONS
private static final int MIN_INLINING_INVOCATIONS
- See Also:
- Constant Field Values
-
logger
private static final com.chrisnewland.freelogj.Logger logger
-
-
Constructor Detail
-
SuggestionWalker
public SuggestionWalker(IReadOnlyJITDataModel model)
-
-
Method Detail
-
findNonMemberReports
protected void findNonMemberReports()
- Specified by:
findNonMemberReportsin classAbstractReportBuilder
-
checkIfCodeCacheFull
private void checkIfCodeCacheFull()
-
visit
public void visit(IMetaMember metaMember)
-
processParseTag
private void processParseTag(Tag parseTag, IMetaMember caller, IParseDictionary parseDictionary)
-
handleInlineFailTag
private void handleInlineFailTag(java.util.Map<java.lang.String,java.lang.String> attrs, java.lang.String methodID, IMetaMember caller, int currentBytecode, IParseDictionary parseDictionary)
-
handleCodeCacheFull
private void handleCodeCacheFull(CodeCacheEvent event)
-
handleHotThrowNotPreallocated
private void handleHotThrowNotPreallocated(java.util.Map<java.lang.String,java.lang.String> attrs, int currentBytecode, IMetaMember caller)
-
handleBranchTag
private void handleBranchTag(java.util.Map<java.lang.String,java.lang.String> attrs, int currentBytecode, IMetaMember caller)
-
visitTag
public void visitTag(Tag parseTag, IParseDictionary parseDictionary) throws LogParseException
- Throws:
LogParseException
-
-