ASMTest.java

package net.minidev.asm;

import static org.junit.jupiter.api.Assertions.assertEquals;

import java.util.HashMap;
import net.minidev.asm.bean.BTest;
import org.junit.jupiter.api.Test;

public class ASMTest {

  @Test
  public void testGet() throws Exception {
    // long T1;

    BeansAccess<BTest> acBT = BeansAccess.get(BTest.class);
    // BeansAccess acHand = new BTestBeansAccessB();

    HashMap<String, String> m = new HashMap<String, String>();
    m.put("A", "ab");
    m.put("B", "Bc");
    m.put("C", "cD");
    m.put("D", "de");
    m.put("E", "ef");

    // String clsPath = FastMap1Builder.getName(m.size());
    // String clsName = clsPath.replace("/", ".");

    // byte[] data;

    // data = FastMap1Builder.dump(m.size());
    // data = FastMap2Builder.dump(m);
    // data = FastMapTestDump.dump(clsPath);

    // DynamicClassLoader loader = new
    // DynamicClassLoader(BTest.class.getClassLoader());
    // byte[] data = BTestBeansAccessDump.dump();
    // Class<FastMap> cls = (Class<FastMap>) loader.defineClass(clsName,
    // data);
    // Constructor<FastMap> c = (Constructor<FastMap>)
    // cls.getConstructors()[0];
    // FastMap f = c.newInstance(m);
    // f = new FastMapTest_2<String>(m);
    // f = new FastMapTest_3();
    // f = new FastMapTest_2<String>(m);
    // f = new FastMapTest_3();
    // 4 entr��
    // map => 1.279
    // fastMap => 3.323
    // FastMapTest_1 3.323
    // FastMapTest_2 3.323
    // FastMapTest_3 0.015

    // 3 entry
    // map => 0.983
    // fastmap => 1.014
    // 2 entry
    // map => 0,920
    // fastMap => 0,608

    // 7 entry
    // f 2.667
    // m 0,640

    // 6 entree
    // f 2.215
    // m 0,608

    // 4 entree
    // f 0.032
    // m 0,593

    // 5 entree
    // f
    // m 0.609
    // V2 2.402
    // V3 2.247
    // for (int i = 0; i < 20000; i++) {
    // f.get("A");
    // f.get("B");
    // f.get("C");
    // f.get("D");
    // f.get("E");
    // f.get("F");
    // f.get("G");
    // f.get("H");
    // f.get("I");
    // }
    // System.gc();
    // long T = System.nanoTime();
    // for (int i = 0; i < 20000000; i++) {
    // m.get("A");
    // m.get("B");
    // m.get("C");
    // m.get("D");
    // m.get("E");
    // m.get("F");
    // m.get("G");
    // m.get("H");
    // m.get("I");
    // }
    // T = System.nanoTime() - T;
    // 10��774��968
    // 596��295��451
    // 2��321��087��341

    BeansAccess<BTest> ac;
    ac = acBT;
    // ac = acHand;
    // ac = acASMHand;
    subtext(ac);
    // T1 = System.currentTimeMillis();
    // for (int i = 0; i < 2000000; i++)
    // subtext(ac);
    // T1 = System.currentTimeMillis() - T1;
  }

  @Test
  private void subtext(BeansAccess<BTest> acc) {
    BTest t = new BTest();
    acc.set(t, "pubBoolValue", true);
    acc.set(t, "pubIntValue", 13);
    acc.set(t, "pubStrValue", "Test");
    acc.set(t, "privIntValue", 16);
    acc.set(t, "privStrValue", "test Priv");
    assertEquals(Integer.valueOf(13), acc.get(t, "pubIntValue"));
    acc.set(t, "pubIntValue", 14);
    assertEquals(Integer.valueOf(14), acc.get(t, "pubIntValue"));
  }
}