package test.java.performance.getField;
import java.util.TreeMap;
public class Performance {
public static void main(String[] args) {
try {
TreeMap<String, Runable> rl = new TreeMap<String, Runable>();
Runable nop = new Runable() {
long max = 1000 * 1000;
public void tearDown() throws Exception {
}
public void setup() throws Exception {
}
@Override
public long run() throws Exception {
return max * 1000;
}
};
long start, end;
long times = 0;
start = System.nanoTime();
nop.run();
end = System.nanoTime();
// long nopCost = end - start;
// rl.put("MVEL", new TestGetMVEL());
// rl.put("Mget", new TestGetMGet());
// rl.put("Prop", new TestGet__Properties());
// rl.put("Field", new TestGet__Field());
// rl.put("Array", new TestGet__Array());
// rl.put("Reflect", new TestGet__Reflect());
// rl.put("List", new TestGet__List());
// rl.put("Map", new TestGet__Map());
// rl.put("InsOF", new TestGet__InstanceOf());
// rl.put("CMap", new TestGet__CrazyMap());
// rl.put("CIFMap", new TestGet__CrazyMap());
// rl.put("Nop", new TestGet__Nop());
rl.put("IntBitOp", new TestGet__IntBitOp());
rl.put("ByteArray", new TestGet__ByteArray());
for (String k : rl.keySet()) {
System.out.print("\t" + k);
}
System.out.println("");
for (String k : rl.keySet()) {
Runable v = rl.get(k);
v.setup();
start = System.nanoTime();
times = v.run();
end = System.nanoTime();
System.out.print("\t" + String.format("%.2f", (double) (end - start) / times));
}
System.out.println("");
for (String k : rl.keySet()) {
Runable v = rl.get(k);
v.setup();
start = System.nanoTime();
times = v.run();
end = System.nanoTime();
System.out.print("\t" + String.format("%.2f", (double) (end - start) / times));
}
System.out.println("");
for (String k : rl.keySet()) {
Runable v = rl.get(k);
v.setup();
start = System.nanoTime();
times = v.run();
end = System.nanoTime();
System.out.print("\t" + String.format("%.2f", (double) (end - start) / times));
}
System.out.println("");
for (String k : rl.keySet()) {
Runable v = rl.get(k);
v.setup();
start = System.nanoTime();
times = v.run();
end = System.nanoTime();
System.out.print("\t" + String.format("%.2f", (double) (end - start) / times));
}
} catch (Exception e) {
e.printStackTrace();
}
}
}