use of jodd.asm5.ClassReader in project apex-core by apache.
the class FastClassIndexReaderTest method testPerformance.
@Test
public void testPerformance() throws Exception {
String javahome = System.getProperty("java.home");
String jdkJar = javahome + "/lib/rt.jar";
JarFile jar = new JarFile(jdkJar);
java.util.Enumeration<JarEntry> entriesEnum = jar.entries();
long time = System.currentTimeMillis();
while (entriesEnum.hasMoreElements()) {
JarEntry jarEntry = entriesEnum.nextElement();
if (jarEntry.getName().endsWith("class")) {
InputStream ins = jar.getInputStream(jarEntry);
//FastClassSignatureReader fastClassSignatureReader = new FastClassSignatureReader(ins);
ClassReader classReader = new ClassReader(ins);
ClassNodeType classN = new ClassNodeType();
classReader.accept(classN, ClassReader.SKIP_CODE);
CompactClassNode ccn = CompactUtil.compactClassNode(classN);
ins.close();
}
}
LOG.info("The time to scan jdk using ASM ClassReader {} ", System.currentTimeMillis() - time);
jar.close();
jar = new JarFile(jdkJar);
entriesEnum = jar.entries();
time = System.currentTimeMillis();
while (entriesEnum.hasMoreElements()) {
JarEntry jarEntry = entriesEnum.nextElement();
if (jarEntry.getName().endsWith("class")) {
InputStream ins = jar.getInputStream(jarEntry);
FastClassIndexReader fastClassIndexReader = new FastClassIndexReader(ins);
ins.close();
}
}
jar.close();
LOG.info("The time to scan jdk using FastClassIndexReader {} ", System.currentTimeMillis() - time);
}
Aggregations