Class ReportAnalyzer


  • public class ReportAnalyzer
    extends Object
    • Constructor Detail

      • ReportAnalyzer

        public ReportAnalyzer​(String report)
    • Method Detail

      • analyse

        public String analyse​(String className,
                              String methodName)
                       throws Exception
        Analyze the contents of the call tree report produced by Substrate when using -H:+PrintAnalysisCallTree, and does a more meaningful analysis of what is causing a type to be retained. In particular for virtual or interface methods that have multiple implementations what is calling this method is not really important, its what caused this particular instance of the class to be created that is important (e.g. if you have an instance of Runnable, you don't care about all the different parts that call runnable, you care about what created this particular instance). If a virtual or interface call is detected with multiple implementations then printing the current call flow is abandoned, and instead the call flow for the constructor of the current object is printed instead.
        Throws:
        Exception