public class org.glassfish.gmbal.main.ProfileMain extends java.lang.Object
{
private static org.glassfish.gmbal.ManagedObjectManager mom;
private static final java.lang.String[] itemNames;
private static final org.glassfish.gmbal.main.ProfileMain$Item[] items;
private static final int NUM_STORES;
private static final java.util.Random random;
public void <init>()
{
org.glassfish.gmbal.main.ProfileMain v;
v := @this: org.glassfish.gmbal.main.ProfileMain;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
private static void initializeStores(org.glassfish.gmbal.main.ProfileMain$MyRoot)
{
java.lang.String[] v;
java.util.Random v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
org.glassfish.gmbal.main.ProfileMain$MyRoot v;
java.lang.String v, v;
org.glassfish.gmbal.main.ProfileMain$Store v;
org.glassfish.gmbal.main.ProfileMain$Item v, v;
org.glassfish.gmbal.main.ProfileMain$Item[] v, v;
v := @parameter: org.glassfish.gmbal.main.ProfileMain$MyRoot;
v = 0;
v = <org.glassfish.gmbal.main.ProfileMain: java.lang.String[] itemNames>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = new org.glassfish.gmbal.main.ProfileMain$Item;
v = <org.glassfish.gmbal.main.ProfileMain: java.util.Random random>;
v = virtualinvoke v.<java.util.Random: int nextInt(int)>(100);
v = <org.glassfish.gmbal.main.ProfileMain: java.util.Random random>;
v = virtualinvoke v.<java.util.Random: int nextInt(int)>(100);
specialinvoke v.<org.glassfish.gmbal.main.ProfileMain$Item: void <init>(java.lang.String,double,double)>(v, v, v);
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$MyRoot: void addItem(org.glassfish.gmbal.main.ProfileMain$Item)>(v);
v = <org.glassfish.gmbal.main.ProfileMain: org.glassfish.gmbal.main.ProfileMain$Item[] items>;
v = v;
v = v + 1;
v[v] = v;
v = v + 1;
goto label;
label:
v = 0;
label:
if v >= 5000 goto label;
v = new org.glassfish.gmbal.main.ProfileMain$Store;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (int)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("Store_\u0001");
specialinvoke v.<org.glassfish.gmbal.main.ProfileMain$Store: void <init>(java.lang.String)>(v);
v = <org.glassfish.gmbal.main.ProfileMain: org.glassfish.gmbal.main.ProfileMain$Item[] items>;
v = lengthof v;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = <org.glassfish.gmbal.main.ProfileMain: java.util.Random random>;
v = virtualinvoke v.<java.util.Random: int nextInt(int)>(100);
if v >= 20 goto label;
v = <org.glassfish.gmbal.main.ProfileMain: java.util.Random random>;
v = virtualinvoke v.<java.util.Random: int nextInt(int)>(11);
v = 3 + v;
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Store: void addItem(org.glassfish.gmbal.main.ProfileMain$Item,int)>(v, v);
label:
v = v + 1;
goto label;
label:
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$MyRoot: void addStore(org.glassfish.gmbal.main.ProfileMain$Store)>(v);
v = v + 1;
goto label;
label:
return;
}
private static void checkAttributes(org.glassfish.gmbal.ManagedObjectManager, org.glassfish.gmbal.main.ProfileMain$MyRoot)
{
java.lang.IllegalStateException v;
java.util.Iterator v;
javax.management.ObjectName v;
org.glassfish.gmbal.AMXClient v;
org.glassfish.gmbal.ManagedObjectManager v;
java.util.List v;
javax.management.MBeanServer v;
org.glassfish.gmbal.main.ProfileMain$MyRoot v;
java.lang.Object v, v;
java.lang.String v;
boolean v, v;
v := @parameter: org.glassfish.gmbal.ManagedObjectManager;
v := @parameter: org.glassfish.gmbal.main.ProfileMain$MyRoot;
v = virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$MyRoot: java.util.List getStores()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = interfaceinvoke v.<org.glassfish.gmbal.ManagedObjectManager: javax.management.ObjectName getObjectName(java.lang.Object)>(v);
v = new org.glassfish.gmbal.AMXClient;
v = interfaceinvoke v.<org.glassfish.gmbal.ManagedObjectManager: javax.management.MBeanServer getMBeanServer()>();
specialinvoke v.<org.glassfish.gmbal.AMXClient: void <init>(javax.management.MBeanServerConnection,javax.management.ObjectName)>(v, v);
v = virtualinvoke v.<org.glassfish.gmbal.AMXClient: java.lang.Object getAttribute(java.lang.String)>("Name");
v = virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Store: java.lang.String name()>();
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
if v != 0 goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("bad store name");
throw v;
label:
return;
}
private static void registerMBeans(org.glassfish.gmbal.ManagedObjectManager, org.glassfish.gmbal.main.ProfileMain$MyRoot)
{
java.util.List v;
java.util.Iterator v;
org.glassfish.gmbal.main.ProfileMain$MyRoot v;
java.lang.Object v;
boolean v;
org.glassfish.gmbal.ManagedObjectManager v;
v := @parameter: org.glassfish.gmbal.ManagedObjectManager;
v := @parameter: org.glassfish.gmbal.main.ProfileMain$MyRoot;
v = virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$MyRoot: java.util.List getStores()>();
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
interfaceinvoke v.<org.glassfish.gmbal.ManagedObjectManager: org.glassfish.gmbal.GmbalMBean registerAtRoot(java.lang.Object)>(v);
goto label;
label:
return;
}
public static void run(boolean, int) throws java.io.IOException
{
org.glassfish.gmbal.ManagedObjectManager v, v, v, v, v;
org.glassfish.gmbal.main.ProfileMain$Timings v;
int v;
org.glassfish.gmbal.main.ProfileMain$MyRoot v;
java.lang.String v, v;
boolean v;
v := @parameter: boolean;
v := @parameter: int;
v = new org.glassfish.gmbal.main.ProfileMain$Timings;
specialinvoke v.<org.glassfish.gmbal.main.ProfileMain$Timings: void <init>()>();
v = new org.glassfish.gmbal.main.ProfileMain$MyRoot;
specialinvoke v.<org.glassfish.gmbal.main.ProfileMain$MyRoot: void <init>()>();
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void initializeStores(org.glassfish.gmbal.main.ProfileMain$MyRoot)>(v);
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Timings: void add(java.lang.String)>("Set up the data");
v = staticinvoke <org.glassfish.gmbal.ManagedObjectManagerFactory: org.glassfish.gmbal.ManagedObjectManager createStandalone(java.lang.String)>("test");
<org.glassfish.gmbal.main.ProfileMain: org.glassfish.gmbal.ManagedObjectManager mom> = v;
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Timings: void add(java.lang.String)>("Create ManagedObjectManager");
v = <org.glassfish.gmbal.main.ProfileMain: org.glassfish.gmbal.ManagedObjectManager mom>;
interfaceinvoke v.<org.glassfish.gmbal.ManagedObjectManager: org.glassfish.gmbal.GmbalMBean createRoot(java.lang.Object)>(v);
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Timings: void add(java.lang.String)>("Create the root");
v = <org.glassfish.gmbal.main.ProfileMain: org.glassfish.gmbal.ManagedObjectManager mom>;
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void registerMBeans(org.glassfish.gmbal.ManagedObjectManager,org.glassfish.gmbal.main.ProfileMain$MyRoot)>(v, v);
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Timings: void add(java.lang.String)>("Register 5000 MBeans");
v = <org.glassfish.gmbal.main.ProfileMain: org.glassfish.gmbal.ManagedObjectManager mom>;
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void checkAttributes(org.glassfish.gmbal.ManagedObjectManager,org.glassfish.gmbal.main.ProfileMain$MyRoot)>(v, v);
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Timings: void add(java.lang.String)>("Fetch 1 attribute on 5000 MBeans");
v = <org.glassfish.gmbal.main.ProfileMain: org.glassfish.gmbal.ManagedObjectManager mom>;
interfaceinvoke v.<org.glassfish.gmbal.ManagedObjectManager: void close()>();
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Timings: void add(java.lang.String)>("Close the ManagedObjectManager");
if v == 0 goto label;
v = "Warmup";
goto label;
label:
v = "Benchmark";
label:
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,int)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001: Iteration \u0001");
virtualinvoke v.<org.glassfish.gmbal.main.ProfileMain$Timings: void dump(java.lang.String)>(v);
return;
}
private static void msg(java.lang.String)
{
java.io.PrintStream v;
java.lang.String v;
v := @parameter: java.lang.String;
v = <java.lang.System: java.io.PrintStream out>;
virtualinvoke v.<java.io.PrintStream: void println(java.lang.String)>(v);
return;
}
public static void main(java.lang.String[]) throws java.io.IOException
{
java.lang.String[] v;
long v, v, v, v;
int v;
java.lang.String v, v;
v := @parameter: java.lang.String[];
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void msg(java.lang.String)>("Warming up");
v = 0;
label:
if v >= 10 goto label;
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void run(boolean,int)>(1, v);
v = v + 1;
goto label;
label:
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void msg(java.lang.String)>("Timing");
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void run(boolean,int)>(0, 0);
v = staticinvoke <java.lang.System: long currentTimeMillis()>();
v = v - v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long,long)>(v, 5001L) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("It took \u milliseconds to test \u MBeans");
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void msg(java.lang.String)>(v);
v = 5001000L / v;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (long)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("That is \u MBean register/getAttribute/unregister calls per second");
staticinvoke <org.glassfish.gmbal.main.ProfileMain: void msg(java.lang.String)>(v);
return;
}
static void <clinit>()
{
int v;
org.glassfish.gmbal.main.ProfileMain$Item[] v;
java.lang.String[] v, v;
java.util.Random v;
v = newarray (java.lang.String)[15];
v[0] = "RedBall";
v[1] = "BlueBall";
v[2] = "GreenBall";
v[3] = "RubberDuck";
v[4] = "RubberChicken";
v[5] = "4_inch_telescope";
v[6] = "8_inch_telescope";
v[7] = "Pipette";
v[8] = "Flask";
v[9] = "500ml_beaker";
v[10] = "1000ml_beaker";
v[11] = "WallClock";
v[12] = "Radio";
v[13] = "32GB_USB_Stick";
v[14] = "500GB_SATA_Drive";
<org.glassfish.gmbal.main.ProfileMain: java.lang.String[] itemNames> = v;
v = <org.glassfish.gmbal.main.ProfileMain: java.lang.String[] itemNames>;
v = lengthof v;
v = newarray (org.glassfish.gmbal.main.ProfileMain$Item)[v];
<org.glassfish.gmbal.main.ProfileMain: org.glassfish.gmbal.main.ProfileMain$Item[] items> = v;
v = new java.util.Random;
specialinvoke v.<java.util.Random: void <init>()>();
<org.glassfish.gmbal.main.ProfileMain: java.util.Random random> = v;
return;
}
}