@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);
}