Added args.

This commit is contained in:
NathanSweet 2014-03-07 15:30:04 +01:00
parent 1472e95148
commit 99f02f7320

View File

@ -1,15 +1,15 @@
package com.esotericsoftware.reflectasm.benchmark; package com.esotericsoftware.reflectasm.benchmark;
import java.lang.reflect.Method;
import java.util.HashMap;
import com.esotericsoftware.reflectasm.MethodAccess; import com.esotericsoftware.reflectasm.MethodAccess;
import java.lang.reflect.Method;
public class MethodAccessBenchmark extends Benchmark { public class MethodAccessBenchmark extends Benchmark {
public MethodAccessBenchmark () throws Exception { public MethodAccessBenchmark () throws Exception {
int count = 100000; int count = 100000;
Object[] dontCompileMeAway = new Object[count]; Object[] dontCompileMeAway = new Object[count];
Object[] args = new Object[0];
MethodAccess access = MethodAccess.get(SomeClass.class); MethodAccess access = MethodAccess.get(SomeClass.class);
SomeClass someObject = new SomeClass(); SomeClass someObject = new SomeClass();
@ -20,22 +20,22 @@ public class MethodAccessBenchmark extends Benchmark {
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {
for (int ii = 0; ii < count; ii++) for (int ii = 0; ii < count; ii++)
dontCompileMeAway[ii] = access.invoke(someObject, index); dontCompileMeAway[ii] = access.invoke(someObject, index, args);
for (int ii = 0; ii < count; ii++) for (int ii = 0; ii < count; ii++)
dontCompileMeAway[ii] = method.invoke(someObject); dontCompileMeAway[ii] = method.invoke(someObject, args);
} }
warmup = false; warmup = false;
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {
start(); start();
for (int ii = 0; ii < count; ii++) for (int ii = 0; ii < count; ii++)
dontCompileMeAway[ii] = access.invoke(someObject, index); dontCompileMeAway[ii] = access.invoke(someObject, index, args);
end("MethodAccess"); end("MethodAccess");
} }
for (int i = 0; i < 100; i++) { for (int i = 0; i < 100; i++) {
start(); start();
for (int ii = 0; ii < count; ii++) for (int ii = 0; ii < count; ii++)
dontCompileMeAway[ii] = method.invoke(someObject); dontCompileMeAway[ii] = method.invoke(someObject, args);
end("Reflection"); end("Reflection");
} }