package demo.soba;\r
\r
+import demo.util.MemoryInfo;\r
import soba.core.ClassHierarchy;\r
import soba.core.ClassInfo;\r
import soba.core.JavaProgram;\r
public class ClassHierarchyPerformance {\r
\r
public static void main(String[] args) {\r
+ long start = System.currentTimeMillis();\r
+ \r
JavaProgram program = new JavaProgram(ClasspathUtil.getClassList(args));\r
ClassHierarchy ch = program.getClassHierarchy();\r
\r
for (ClassInfo c: program.getClasses()) {\r
for (MethodInfo m: c.getMethods()) {\r
- System.out.println(m.toLongString());\r
for (CallSite cs: m.getCallSites()) {\r
MethodInfo[] callees = ch.resolveCall(cs);\r
if (callees.length > 0) {\r
for (MethodInfo callee: callees) {\r
- System.out.println(" [inside] " + callee.toLongString());\r
+// System.out.println(m.toString() + " may call " + callee.toString());\r
}\r
} else {\r
- System.out.println(" [outside] " + cs.toString());\r
+// System.out.println(m.toString() + " may call " + cs.toString());\r
}\r
}\r
}\r
}\r
+ \r
+ long end = System.currentTimeMillis();\r
+ \r
+ System.out.println((end - start) + " [ms]");\r
+ System.out.println(MemoryInfo.getMemoryInfo());\r
}\r
\r
}\r