public class net.bytebuddy.benchmark.ClassByImplementationBenchmark extends java.lang.Object
{
public static final java.lang.Class BASE_CLASS;
public static final java.lang.String DEFAULT_REFERENCE_VALUE;
public static final boolean DEFAULT_BOOLEAN_VALUE;
public static final byte DEFAULT_BYTE_VALUE;
public static final short DEFAULT_SHORT_VALUE;
public static final char DEFAULT_CHAR_VALUE;
public static final int DEFAULT_INT_VALUE;
public static final long DEFAULT_LONG_VALUE;
public static final float DEFAULT_FLOAT_VALUE;
public static final double DEFAULT_DOUBLE_VALUE;
private java.lang.Class baseClass;
private java.lang.String defaultReferenceValue;
private boolean defaultBooleanValue;
private byte defaultByteValue;
private short defaultShortValue;
private char defaultCharValue;
private int defaultIntValue;
private long defaultLongValue;
private float defaultFloatValue;
private double defaultDoubleValue;
private int urlLength;
private net.bytebuddy.description.type.TypeDescription baseClassDescription;
public void <init>()
{
java.lang.Class v;
java.lang.String v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
specialinvoke v.<java.lang.Object: void <init>()>();
v = <net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class BASE_CLASS>;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class baseClass> = v;
v = <net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.String DEFAULT_REFERENCE_VALUE>;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.String defaultReferenceValue> = v;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: boolean defaultBooleanValue> = 0;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: byte defaultByteValue> = 0;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: short defaultShortValue> = 0;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: char defaultCharValue> = 0;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: int defaultIntValue> = 0;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: long defaultLongValue> = 0L;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: float defaultFloatValue> = 0.0F;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: double defaultDoubleValue> = 0.0;
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: int urlLength> = 0;
return;
}
private java.lang.ClassLoader newClassLoader()
{
java.net.URL[] v;
java.net.URLClassLoader v;
int v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
v = new java.net.URLClassLoader;
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: int urlLength>;
v = newarray (java.net.URL)[v];
specialinvoke v.<java.net.URLClassLoader: void <init>(java.net.URL[])>(v);
return v;
}
public void setup()
{
net.bytebuddy.pool.TypePool v;
java.lang.Class v;
java.lang.String v;
net.bytebuddy.description.type.TypeDescription v;
net.bytebuddy.pool.TypePool$Resolution v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
v = staticinvoke <net.bytebuddy.pool.TypePool$Default: net.bytebuddy.pool.TypePool ofSystemLoader()>();
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class baseClass>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
v = interfaceinvoke v.<net.bytebuddy.pool.TypePool: net.bytebuddy.pool.TypePool$Resolution describe(java.lang.String)>(v);
v = interfaceinvoke v.<net.bytebuddy.pool.TypePool$Resolution: net.bytebuddy.description.type.TypeDescription resolve()>();
v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: net.bytebuddy.description.type.TypeDescription baseClassDescription> = v;
return;
}
public net.bytebuddy.benchmark.specimen.ExampleInterface baseline()
{
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark$1 v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
v = new net.bytebuddy.benchmark.ClassByImplementationBenchmark$1;
specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark$1: void <init>(net.bytebuddy.benchmark.ClassByImplementationBenchmark)>(v);
return v;
}
public net.bytebuddy.benchmark.specimen.ExampleInterface benchmarkByteBuddy() throws java.lang.Exception
{
net.bytebuddy.dynamic.DynamicType$Unloaded v;
java.lang.Object[] v;
net.bytebuddy.dynamic.scaffold.TypeValidation v;
net.bytebuddy.ByteBuddy v, v, v;
java.lang.reflect.Constructor v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition v;
net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default v;
net.bytebuddy.implementation.StubMethod v;
net.bytebuddy.dynamic.DynamicType$Builder v;
java.lang.Class[] v;
net.bytebuddy.dynamic.DynamicType$Loaded v;
net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition v;
net.bytebuddy.matcher.ElementMatcher$Junction v, v;
java.lang.Class v, v, v;
java.lang.Object v;
java.lang.ClassLoader v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
v = new net.bytebuddy.ByteBuddy;
specialinvoke v.<net.bytebuddy.ByteBuddy: void <init>()>();
v = <net.bytebuddy.dynamic.scaffold.TypeValidation: net.bytebuddy.dynamic.scaffold.TypeValidation DISABLED>;
v = virtualinvoke v.<net.bytebuddy.ByteBuddy: net.bytebuddy.ByteBuddy 'with'(net.bytebuddy.dynamic.scaffold.TypeValidation)>(v);
v = staticinvoke <net.bytebuddy.matcher.ElementMatchers: net.bytebuddy.matcher.ElementMatcher$Junction none()>();
v = virtualinvoke v.<net.bytebuddy.ByteBuddy: net.bytebuddy.ByteBuddy ignore(net.bytebuddy.matcher.ElementMatcher)>(v);
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class baseClass>;
v = virtualinvoke v.<net.bytebuddy.ByteBuddy: net.bytebuddy.dynamic.DynamicType$Builder subclass(java.lang.Class)>(v);
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class baseClass>;
v = staticinvoke <net.bytebuddy.matcher.ElementMatchers: net.bytebuddy.matcher.ElementMatcher$Junction isDeclaredBy(java.lang.Class)>(v);
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Builder: net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition method(net.bytebuddy.matcher.ElementMatcher)>(v);
v = <net.bytebuddy.implementation.StubMethod: net.bytebuddy.implementation.StubMethod INSTANCE>;
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition: net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition intercept(net.bytebuddy.implementation.Implementation)>(v);
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition: net.bytebuddy.dynamic.DynamicType$Unloaded make()>();
v = specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.ClassLoader newClassLoader()>();
v = <net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default: net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default INJECTION>;
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Unloaded: net.bytebuddy.dynamic.DynamicType$Loaded load(java.lang.ClassLoader,net.bytebuddy.dynamic.loading.ClassLoadingStrategy)>(v, v);
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Loaded: java.lang.Class getLoaded()>();
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
return v;
}
public net.bytebuddy.benchmark.specimen.ExampleInterface benchmarkByteBuddyWithTypePool() throws java.lang.Exception
{
net.bytebuddy.dynamic.DynamicType$Unloaded v;
java.lang.Object[] v;
net.bytebuddy.dynamic.scaffold.TypeValidation v;
net.bytebuddy.ByteBuddy v, v, v;
java.lang.reflect.Constructor v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition v;
net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default v;
net.bytebuddy.implementation.StubMethod v;
net.bytebuddy.dynamic.DynamicType$Builder v;
java.lang.Class[] v;
net.bytebuddy.dynamic.DynamicType$Loaded v;
net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition v;
net.bytebuddy.matcher.ElementMatcher$Junction v, v;
java.lang.Class v;
java.lang.Object v;
java.lang.ClassLoader v;
net.bytebuddy.description.type.TypeDescription v, v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
v = new net.bytebuddy.ByteBuddy;
specialinvoke v.<net.bytebuddy.ByteBuddy: void <init>()>();
v = <net.bytebuddy.dynamic.scaffold.TypeValidation: net.bytebuddy.dynamic.scaffold.TypeValidation DISABLED>;
v = virtualinvoke v.<net.bytebuddy.ByteBuddy: net.bytebuddy.ByteBuddy 'with'(net.bytebuddy.dynamic.scaffold.TypeValidation)>(v);
v = staticinvoke <net.bytebuddy.matcher.ElementMatchers: net.bytebuddy.matcher.ElementMatcher$Junction none()>();
v = virtualinvoke v.<net.bytebuddy.ByteBuddy: net.bytebuddy.ByteBuddy ignore(net.bytebuddy.matcher.ElementMatcher)>(v);
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: net.bytebuddy.description.type.TypeDescription baseClassDescription>;
v = virtualinvoke v.<net.bytebuddy.ByteBuddy: net.bytebuddy.dynamic.DynamicType$Builder subclass(net.bytebuddy.description.type.TypeDefinition)>(v);
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: net.bytebuddy.description.type.TypeDescription baseClassDescription>;
v = staticinvoke <net.bytebuddy.matcher.ElementMatchers: net.bytebuddy.matcher.ElementMatcher$Junction isDeclaredBy(net.bytebuddy.description.type.TypeDescription)>(v);
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Builder: net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition method(net.bytebuddy.matcher.ElementMatcher)>(v);
v = <net.bytebuddy.implementation.StubMethod: net.bytebuddy.implementation.StubMethod INSTANCE>;
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ImplementationDefinition: net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition intercept(net.bytebuddy.implementation.Implementation)>(v);
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Builder$MethodDefinition$ReceiverTypeDefinition: net.bytebuddy.dynamic.DynamicType$Unloaded make()>();
v = specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.ClassLoader newClassLoader()>();
v = <net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default: net.bytebuddy.dynamic.loading.ClassLoadingStrategy$Default INJECTION>;
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Unloaded: net.bytebuddy.dynamic.DynamicType$Loaded load(java.lang.ClassLoader,net.bytebuddy.dynamic.loading.ClassLoadingStrategy)>(v, v);
v = interfaceinvoke v.<net.bytebuddy.dynamic.DynamicType$Loaded: java.lang.Class getLoaded()>();
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
return v;
}
public net.bytebuddy.benchmark.specimen.ExampleInterface benchmarkCglib()
{
java.lang.Class[] v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark$2 v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
net.sf.cglib.proxy.Callback[] v;
java.lang.Class v, v;
java.lang.Object v;
java.lang.ClassLoader v;
net.sf.cglib.proxy.Enhancer v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
v = new net.sf.cglib.proxy.Enhancer;
specialinvoke v.<net.sf.cglib.proxy.Enhancer: void <init>()>();
virtualinvoke v.<net.sf.cglib.proxy.Enhancer: void setUseCache(boolean)>(0);
v = specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.ClassLoader newClassLoader()>();
virtualinvoke v.<net.sf.cglib.proxy.Enhancer: void setClassLoader(java.lang.ClassLoader)>(v);
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class baseClass>;
virtualinvoke v.<net.sf.cglib.proxy.Enhancer: void setSuperclass(java.lang.Class)>(v);
v = new net.bytebuddy.benchmark.ClassByImplementationBenchmark$2;
v = newarray (java.lang.Class)[1];
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class baseClass>;
v[0] = v;
specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark$2: void <init>(net.bytebuddy.benchmark.ClassByImplementationBenchmark,java.lang.Class,java.lang.Class[])>(v, class "Ljava/lang/Object;", v);
virtualinvoke v.<net.sf.cglib.proxy.Enhancer: void setCallbackFilter(net.sf.cglib.proxy.CallbackFilter)>(v);
v = virtualinvoke v.<net.sf.cglib.proxy.CallbackHelper: net.sf.cglib.proxy.Callback[] getCallbacks()>();
virtualinvoke v.<net.sf.cglib.proxy.Enhancer: void setCallbacks(net.sf.cglib.proxy.Callback[])>(v);
v = virtualinvoke v.<net.sf.cglib.proxy.Enhancer: java.lang.Object create()>();
return v;
}
public net.bytebuddy.benchmark.specimen.ExampleInterface benchmarkJavassist() throws java.lang.Exception
{
java.lang.Object[] v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark$3 v;
java.lang.Class[] v, v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark$5 v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark$4 v;
java.lang.reflect.Constructor v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
java.lang.Class v, v;
java.lang.Object v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
v = new net.bytebuddy.benchmark.ClassByImplementationBenchmark$3;
specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark$3: void <init>(net.bytebuddy.benchmark.ClassByImplementationBenchmark)>(v);
virtualinvoke v.<javassist.util.proxy.ProxyFactory: void setUseCache(boolean)>(0);
virtualinvoke v.<javassist.util.proxy.ProxyFactory: void setUseWriteReplace(boolean)>(0);
virtualinvoke v.<javassist.util.proxy.ProxyFactory: void setSuperclass(java.lang.Class)>(class "Ljava/lang/Object;");
v = newarray (java.lang.Class)[1];
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class baseClass>;
v[0] = v;
virtualinvoke v.<javassist.util.proxy.ProxyFactory: void setInterfaces(java.lang.Class[])>(v);
v = new net.bytebuddy.benchmark.ClassByImplementationBenchmark$4;
specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark$4: void <init>(net.bytebuddy.benchmark.ClassByImplementationBenchmark)>(v);
virtualinvoke v.<javassist.util.proxy.ProxyFactory: void setFilter(javassist.util.proxy.MethodFilter)>(v);
v = virtualinvoke v.<javassist.util.proxy.ProxyFactory: java.lang.Class createClass()>();
v = newarray (java.lang.Class)[0];
v = virtualinvoke v.<java.lang.Class: java.lang.reflect.Constructor getDeclaredConstructor(java.lang.Class[])>(v);
v = newarray (java.lang.Object)[0];
v = virtualinvoke v.<java.lang.reflect.Constructor: java.lang.Object newInstance(java.lang.Object[])>(v);
v = new net.bytebuddy.benchmark.ClassByImplementationBenchmark$5;
specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark$5: void <init>(net.bytebuddy.benchmark.ClassByImplementationBenchmark)>(v);
interfaceinvoke v.<javassist.util.proxy.Proxy: void setHandler(javassist.util.proxy.MethodHandler)>(v);
return v;
}
public net.bytebuddy.benchmark.specimen.ExampleInterface benchmarkJdkProxy() throws java.lang.Exception
{
net.bytebuddy.benchmark.ClassByImplementationBenchmark$6 v;
java.lang.Class[] v;
java.lang.Class v;
java.lang.Object v;
java.lang.ClassLoader v;
net.bytebuddy.benchmark.ClassByImplementationBenchmark v;
v := @this: net.bytebuddy.benchmark.ClassByImplementationBenchmark;
v = specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.ClassLoader newClassLoader()>();
v = newarray (java.lang.Class)[1];
v = v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class baseClass>;
v[0] = v;
v = new net.bytebuddy.benchmark.ClassByImplementationBenchmark$6;
specialinvoke v.<net.bytebuddy.benchmark.ClassByImplementationBenchmark$6: void <init>(net.bytebuddy.benchmark.ClassByImplementationBenchmark)>(v);
v = staticinvoke <java.lang.reflect.Proxy: java.lang.Object newProxyInstance(java.lang.ClassLoader,java.lang.Class[],java.lang.reflect.InvocationHandler)>(v, v, v);
return v;
}
static void <clinit>()
{
<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.Class BASE_CLASS> = class "Lnet/bytebuddy/benchmark/specimen/ExampleInterface;";
<net.bytebuddy.benchmark.ClassByImplementationBenchmark: java.lang.String DEFAULT_REFERENCE_VALUE> = null;
return;
}
}