public class org.glassfish.gmbal.main.ProfileMain
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.glassfish.gmbal.main.ProfileMain
super_class: java.lang.Object
{
private static org.glassfish.gmbal.ManagedObjectManager mom;
descriptor: Lorg/glassfish/gmbal/ManagedObjectManager;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
private static final java.lang.String[] itemNames;
descriptor: [Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final org.glassfish.gmbal.main.ProfileMain$Item[] items;
descriptor: [Lorg/glassfish/gmbal/main/ProfileMain$Item;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final int NUM_STORES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 5000
private static final java.util.Random random;
descriptor: Ljava/util/Random;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=4, locals=0, args_size=0
0: bipush 15
anewarray java.lang.String
dup
iconst_0
1: ldc "RedBall"
aastore
dup
iconst_1
ldc "BlueBall"
aastore
dup
iconst_2
ldc "GreenBall"
aastore
dup
iconst_3
2: ldc "RubberDuck"
aastore
dup
iconst_4
ldc "RubberChicken"
aastore
dup
iconst_5
ldc "4_inch_telescope"
aastore
dup
bipush 6
ldc "8_inch_telescope"
aastore
dup
bipush 7
3: ldc "Pipette"
aastore
dup
bipush 8
ldc "Flask"
aastore
dup
bipush 9
ldc "500ml_beaker"
aastore
dup
bipush 10
ldc "1000ml_beaker"
aastore
dup
bipush 11
4: ldc "WallClock"
aastore
dup
bipush 12
ldc "Radio"
aastore
dup
bipush 13
ldc "32GB_USB_Stick"
aastore
dup
bipush 14
ldc "500GB_SATA_Drive"
aastore
5: putstatic org.glassfish.gmbal.main.ProfileMain.itemNames:[Ljava/lang/String;
6: getstatic org.glassfish.gmbal.main.ProfileMain.itemNames:[Ljava/lang/String;
arraylength
anewarray org.glassfish.gmbal.main.ProfileMain$Item
putstatic org.glassfish.gmbal.main.ProfileMain.items:[Lorg/glassfish/gmbal/main/ProfileMain$Item;
7: new java.util.Random
dup
invokespecial java.util.Random.<init>:()V
putstatic org.glassfish.gmbal.main.ProfileMain.random:Ljava/util/Random;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/glassfish/gmbal/main/ProfileMain;
private static void initializeStores(org.glassfish.gmbal.main.ProfileMain$MyRoot);
descriptor: (Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=8, args_size=1
start local 0 0: iconst_0
istore 1
start local 1 1: getstatic org.glassfish.gmbal.main.ProfileMain.itemNames:[Ljava/lang/String;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 9
StackMap locals: org.glassfish.gmbal.main.ProfileMain$MyRoot int top int int java.lang.String[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: new org.glassfish.gmbal.main.ProfileMain$Item
dup
aload 2
getstatic org.glassfish.gmbal.main.ProfileMain.random:Ljava/util/Random;
bipush 100
invokevirtual java.util.Random.nextInt:(I)I
i2d
4: getstatic org.glassfish.gmbal.main.ProfileMain.random:Ljava/util/Random;
bipush 100
invokevirtual java.util.Random.nextInt:(I)I
i2d
5: invokespecial org.glassfish.gmbal.main.ProfileMain$Item.<init>:(Ljava/lang/String;DD)V
astore 6
start local 6 6: aload 0
aload 6
invokevirtual org.glassfish.gmbal.main.ProfileMain$MyRoot.addItem:(Lorg/glassfish/gmbal/main/ProfileMain$Item;)V
7: getstatic org.glassfish.gmbal.main.ProfileMain.items:[Lorg/glassfish/gmbal/main/ProfileMain$Item;
iload 1
iinc 1 1
aload 6
aastore
end local 6 end local 2 8: iinc 3 1
StackMap locals:
StackMap stack:
9: iload 3
iload 4
if_icmplt 2
10: iconst_0
istore 2
start local 2 11: goto 21
12: StackMap locals: org.glassfish.gmbal.main.ProfileMain$MyRoot int int
StackMap stack:
new org.glassfish.gmbal.main.ProfileMain$Store
dup
new java.lang.StringBuilder
dup
ldc "Store_"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial org.glassfish.gmbal.main.ProfileMain$Store.<init>:(Ljava/lang/String;)V
astore 3
start local 3 13: getstatic org.glassfish.gmbal.main.ProfileMain.items:[Lorg/glassfish/gmbal/main/ProfileMain$Item;
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 18
StackMap locals: org.glassfish.gmbal.main.ProfileMain$MyRoot int int org.glassfish.gmbal.main.ProfileMain$Store top int int org.glassfish.gmbal.main.ProfileMain$Item[]
StackMap stack:
14: aload 7
iload 5
aaload
astore 4
start local 4 15: getstatic org.glassfish.gmbal.main.ProfileMain.random:Ljava/util/Random;
bipush 100
invokevirtual java.util.Random.nextInt:(I)I
bipush 20
if_icmpge 17
16: aload 3
aload 4
iconst_3
getstatic org.glassfish.gmbal.main.ProfileMain.random:Ljava/util/Random;
bipush 11
invokevirtual java.util.Random.nextInt:(I)I
iadd
invokevirtual org.glassfish.gmbal.main.ProfileMain$Store.addItem:(Lorg/glassfish/gmbal/main/ProfileMain$Item;I)V
end local 4 17: StackMap locals:
StackMap stack:
iinc 5 1
StackMap locals:
StackMap stack:
18: iload 5
iload 6
if_icmplt 14
19: aload 0
aload 3
invokevirtual org.glassfish.gmbal.main.ProfileMain$MyRoot.addStore:(Lorg/glassfish/gmbal/main/ProfileMain$Store;)V
end local 3 20: iinc 2 1
StackMap locals: org.glassfish.gmbal.main.ProfileMain$MyRoot int int
StackMap stack:
21: iload 2
sipush 5000
if_icmplt 12
end local 2 22: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 myroot Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;
1 23 1 i I
3 8 2 str Ljava/lang/String;
6 8 6 item Lorg/glassfish/gmbal/main/ProfileMain$Item;
11 22 2 ctr I
13 20 3 store Lorg/glassfish/gmbal/main/ProfileMain$Store;
15 17 4 item Lorg/glassfish/gmbal/main/ProfileMain$Item;
MethodParameters:
Name Flags
myroot
private static void checkAttributes(org.glassfish.gmbal.ManagedObjectManager, org.glassfish.gmbal.main.ProfileMain$MyRoot);
descriptor: (Lorg/glassfish/gmbal/ManagedObjectManager;Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.glassfish.gmbal.main.ProfileMain$MyRoot.getStores:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 7
StackMap locals: org.glassfish.gmbal.ManagedObjectManager org.glassfish.gmbal.main.ProfileMain$MyRoot top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.gmbal.main.ProfileMain$Store
astore 2
start local 2 2: aload 0
aload 2
invokeinterface org.glassfish.gmbal.ManagedObjectManager.getObjectName:(Ljava/lang/Object;)Ljavax/management/ObjectName;
astore 4
start local 4 3: new org.glassfish.gmbal.AMXClient
dup
aload 0
invokeinterface org.glassfish.gmbal.ManagedObjectManager.getMBeanServer:()Ljavax/management/MBeanServer;
aload 4
invokespecial org.glassfish.gmbal.AMXClient.<init>:(Ljavax/management/MBeanServerConnection;Ljavax/management/ObjectName;)V
astore 5
start local 5 4: aload 5
ldc "Name"
invokevirtual org.glassfish.gmbal.AMXClient.getAttribute:(Ljava/lang/String;)Ljava/lang/Object;
astore 6
start local 6 5: aload 6
aload 2
invokevirtual org.glassfish.gmbal.main.ProfileMain$Store.name:()Ljava/lang/String;
invokevirtual java.lang.Object.equals:(Ljava/lang/Object;)Z
ifne 7
6: new java.lang.IllegalStateException
dup
ldc "bad store name"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
end local 6 end local 5 end local 4 end local 2 7: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
8: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 mom Lorg/glassfish/gmbal/ManagedObjectManager;
0 9 1 myroot Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;
2 7 2 store Lorg/glassfish/gmbal/main/ProfileMain$Store;
3 7 4 oname Ljavax/management/ObjectName;
4 7 5 amx Lorg/glassfish/gmbal/AMXClient;
5 7 6 res Ljava/lang/Object;
MethodParameters:
Name Flags
mom
myroot
private static void registerMBeans(org.glassfish.gmbal.ManagedObjectManager, org.glassfish.gmbal.main.ProfileMain$MyRoot);
descriptor: (Lorg/glassfish/gmbal/ManagedObjectManager;Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=4, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.glassfish.gmbal.main.ProfileMain$MyRoot.getStores:()Ljava/util/List;
invokeinterface java.util.List.iterator:()Ljava/util/Iterator;
astore 3
goto 3
StackMap locals: org.glassfish.gmbal.ManagedObjectManager org.glassfish.gmbal.main.ProfileMain$MyRoot top java.util.Iterator
StackMap stack:
1: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast org.glassfish.gmbal.main.ProfileMain$Store
astore 2
start local 2 2: aload 0
aload 2
invokeinterface org.glassfish.gmbal.ManagedObjectManager.registerAtRoot:(Ljava/lang/Object;)Lorg/glassfish/gmbal/GmbalMBean;
pop
end local 2 3: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 mom Lorg/glassfish/gmbal/ManagedObjectManager;
0 5 1 myroot Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;
2 3 2 store Lorg/glassfish/gmbal/main/ProfileMain$Store;
MethodParameters:
Name Flags
mom
myroot
public static void run(boolean, int);
descriptor: (ZI)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=5, args_size=2
start local 0 start local 1 0: new org.glassfish.gmbal.main.ProfileMain$Timings
dup
invokespecial org.glassfish.gmbal.main.ProfileMain$Timings.<init>:()V
astore 2
start local 2 1: new org.glassfish.gmbal.main.ProfileMain$MyRoot
dup
invokespecial org.glassfish.gmbal.main.ProfileMain$MyRoot.<init>:()V
astore 3
start local 3 2: aload 3
invokestatic org.glassfish.gmbal.main.ProfileMain.initializeStores:(Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;)V
3: aload 2
ldc "Set up the data"
invokevirtual org.glassfish.gmbal.main.ProfileMain$Timings.add:(Ljava/lang/String;)V
4: ldc "test"
invokestatic org.glassfish.gmbal.ManagedObjectManagerFactory.createStandalone:(Ljava/lang/String;)Lorg/glassfish/gmbal/ManagedObjectManager;
putstatic org.glassfish.gmbal.main.ProfileMain.mom:Lorg/glassfish/gmbal/ManagedObjectManager;
5: aload 2
ldc "Create ManagedObjectManager"
invokevirtual org.glassfish.gmbal.main.ProfileMain$Timings.add:(Ljava/lang/String;)V
6: getstatic org.glassfish.gmbal.main.ProfileMain.mom:Lorg/glassfish/gmbal/ManagedObjectManager;
aload 3
invokeinterface org.glassfish.gmbal.ManagedObjectManager.createRoot:(Ljava/lang/Object;)Lorg/glassfish/gmbal/GmbalMBean;
pop
7: aload 2
ldc "Create the root"
invokevirtual org.glassfish.gmbal.main.ProfileMain$Timings.add:(Ljava/lang/String;)V
8: getstatic org.glassfish.gmbal.main.ProfileMain.mom:Lorg/glassfish/gmbal/ManagedObjectManager;
aload 3
invokestatic org.glassfish.gmbal.main.ProfileMain.registerMBeans:(Lorg/glassfish/gmbal/ManagedObjectManager;Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;)V
9: aload 2
ldc "Register 5000 MBeans"
invokevirtual org.glassfish.gmbal.main.ProfileMain$Timings.add:(Ljava/lang/String;)V
10: getstatic org.glassfish.gmbal.main.ProfileMain.mom:Lorg/glassfish/gmbal/ManagedObjectManager;
aload 3
invokestatic org.glassfish.gmbal.main.ProfileMain.checkAttributes:(Lorg/glassfish/gmbal/ManagedObjectManager;Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;)V
11: aload 2
ldc "Fetch 1 attribute on 5000 MBeans"
invokevirtual org.glassfish.gmbal.main.ProfileMain$Timings.add:(Ljava/lang/String;)V
12: getstatic org.glassfish.gmbal.main.ProfileMain.mom:Lorg/glassfish/gmbal/ManagedObjectManager;
invokeinterface org.glassfish.gmbal.ManagedObjectManager.close:()V
13: aload 2
ldc "Close the ManagedObjectManager"
invokevirtual org.glassfish.gmbal.main.ProfileMain$Timings.add:(Ljava/lang/String;)V
14: iload 0
ifeq 15
ldc "Warmup"
goto 16
StackMap locals: org.glassfish.gmbal.main.ProfileMain$Timings org.glassfish.gmbal.main.ProfileMain$MyRoot
StackMap stack:
15: ldc "Benchmark"
StackMap locals:
StackMap stack: java.lang.String
16: astore 4
start local 4 17: aload 2
new java.lang.StringBuilder
dup
aload 4
invokestatic java.lang.String.valueOf:(Ljava/lang/Object;)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc ": Iteration "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
iload 1
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokevirtual org.glassfish.gmbal.main.ProfileMain$Timings.dump:(Ljava/lang/String;)V
18: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 isWarmup Z
0 19 1 count I
1 19 2 timings Lorg/glassfish/gmbal/main/ProfileMain$Timings;
2 19 3 myroot Lorg/glassfish/gmbal/main/ProfileMain$MyRoot;
17 19 4 type Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
isWarmup
count
private static void msg(java.lang.String);
descriptor: (Ljava/lang/String;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
aload 0
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 arg Ljava/lang/String;
MethodParameters:
Name Flags
arg
public static void main(java.lang.String[]);
descriptor: ([Ljava/lang/String;)V
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: ldc "Warming up"
invokestatic org.glassfish.gmbal.main.ProfileMain.msg:(Ljava/lang/String;)V
1: iconst_0
istore 1
start local 1 2: goto 5
3: StackMap locals: int
StackMap stack:
iconst_1
iload 1
invokestatic org.glassfish.gmbal.main.ProfileMain.run:(ZI)V
4: iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
bipush 10
if_icmplt 3
end local 1 6: ldc "Timing"
invokestatic org.glassfish.gmbal.main.ProfileMain.msg:(Ljava/lang/String;)V
7: invokestatic java.lang.System.currentTimeMillis:()J
lstore 1
start local 1 8: iconst_0
iconst_0
invokestatic org.glassfish.gmbal.main.ProfileMain.run:(ZI)V
9: invokestatic java.lang.System.currentTimeMillis:()J
lload 1
lsub
lstore 3
start local 3 10: ldc 5001
lstore 5
start local 5 11: new java.lang.StringBuilder
dup
ldc "It took "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 3
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " milliseconds to test "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
12: lload 5
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
ldc " MBeans"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
13: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.glassfish.gmbal.main.ProfileMain.msg:(Ljava/lang/String;)V
14: new java.lang.StringBuilder
dup
ldc "That is "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
lload 5
ldc 1000
lmul
lload 3
ldiv
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
15: ldc " MBean register/getAttribute/unregister calls per second"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
16: invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic org.glassfish.gmbal.main.ProfileMain.msg:(Ljava/lang/String;)V
17: return
end local 5 end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 args [Ljava/lang/String;
2 6 1 ctr I
8 18 1 start J
10 18 3 duration J
11 18 5 numBeans J
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
args
}
SourceFile: "ProfileMain.java"
NestMembers:
org.glassfish.gmbal.main.ProfileMain$Item org.glassfish.gmbal.main.ProfileMain$MyRoot org.glassfish.gmbal.main.ProfileMain$Store org.glassfish.gmbal.main.ProfileMain$Timings
InnerClasses:
public Item = org.glassfish.gmbal.main.ProfileMain$Item of org.glassfish.gmbal.main.ProfileMain
public MyRoot = org.glassfish.gmbal.main.ProfileMain$MyRoot of org.glassfish.gmbal.main.ProfileMain
public Store = org.glassfish.gmbal.main.ProfileMain$Store of org.glassfish.gmbal.main.ProfileMain
public Timings = org.glassfish.gmbal.main.ProfileMain$Timings of org.glassfish.gmbal.main.ProfileMain