package net.kennux.cubicworld.microbenchmark; import java.lang.reflect.Field; import com.badlogic.gdx.math.Vector3; import net.kennux.cubicworld.serialization.BitReader; import net.kennux.cubicworld.serialization.BitWriter; import net.kennux.cubicworld.serialization.Serializer; import net.kennux.cubicworld.test.SerializerTest; import net.kennux.cubicworld.test.serializer.SerializerTestClass; public class ReflectFieldAccess extends AMicroBenchmark { public static void main(String[] args) { ReflectFieldAccess benchmark = new ReflectFieldAccess(); benchmark.benchmark(); } private SerializerTestClass testClass = new SerializerTestClass(); private Field testField; public ReflectFieldAccess() { testClass.b = (byte)123; testClass.bA = new byte[] { 12, 32, 45 }; testClass.bool = true; testClass.c = 'a'; testClass.f = 2.5776f; testClass.i = 1337; testClass.l = 13371l; testClass.s = (short) 133; testClass.str = "LEET"; testClass.v3 = new Vector3(10, 13, 37); try { this.testField = this.testClass.getClass().getDeclaredField("b"); } catch (NoSuchFieldException | SecurityException e) { } } @MicroBenchmark(name = "Reflect field access", iterations = 10000) public void reflectFieldAccess() { try { this.testField.get(this.testClass); } catch (IllegalArgumentException | IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }