1 4 package com.tctest; 5 6 import com.tc.object.config.ConfigVisitor; 7 import com.tc.object.config.DSOClientConfigHelper; 8 import com.tc.object.config.TransparencyClassSpec; 9 import com.tc.simulator.app.ApplicationConfig; 10 import com.tc.simulator.listener.ListenerProvider; 11 import com.tctest.runner.AbstractTransparentApp; 12 13 import java.util.ArrayList ; 14 import java.util.List ; 15 16 public class ByteCodePerformanceTestApp extends AbstractTransparentApp { 17 18 private List instrumentedObjects = new ArrayList (); 19 private List instrumentedUnSharedObjects = new ArrayList (); 20 22 private final static int COUNT = 50; 23 24 public ByteCodePerformanceTestApp(String appId, ApplicationConfig cfg, ListenerProvider listenerProvider) { 25 super(appId, cfg, listenerProvider); 26 } 27 28 public void run() { 29 new InstrumentedObject(true); 30 long start = System.currentTimeMillis(); 31 long s2 = 0; 32 if (true) { 33 synchronized (this.instrumentedObjects) { 34 s2 = System.currentTimeMillis(); 35 for (int i = 0; i < COUNT; i++) { 36 instrumentedObjects.add(new InstrumentedObject(true)); 37 } 38 System.out.println("CREATED INSTRUMENTED -INNER:" + (System.currentTimeMillis() - s2)); 39 } 40 41 System.out.println("CREATED INSTRUMENTED:" + (System.currentTimeMillis() - start)); 42 43 start = System.currentTimeMillis(); 44 System.gc(); 45 synchronized (this.instrumentedObjects) { 46 System.out.println("QUERY INSTRUMENTED START:" + (System.currentTimeMillis() - start)); 47 for (int j = 0; j < 500; j++) { 48 for (int i = 0; i < COUNT; i++) { 49 InstrumentedObject o = (InstrumentedObject) instrumentedObjects.get(i); 50 o.accessValues(); 51 } 52 } 53 } 54 System.out.println("QUERY INSTRUMENTED:" + (System.currentTimeMillis() - start)); 55 } else { 56 start = System.currentTimeMillis(); 66 for (int i = 0; i < COUNT; i++) { 67 instrumentedUnSharedObjects.add(new InstrumentedObject(true)); 68 } 69 System.out.println("CREATED INSTRUMENTED UNSHARED:" + (System.currentTimeMillis() - start)); 70 System.gc(); 71 start = System.currentTimeMillis(); 72 for (int j = 0; j < 500; j++) { 73 for (int i = 0; i < COUNT; i++) { 74 InstrumentedObject o = (InstrumentedObject) instrumentedUnSharedObjects.get(i); 75 o.accessValues(); 76 } 77 } 78 System.out.println("QUERY INSTRUMENTED UNSHARED:" + (System.currentTimeMillis() - start)); 79 } 80 114 } 115 116 public List test() { 117 if (System.currentTimeMillis() == 100) { 118 synchronized (this) { 119 120 boolean steve = true; 121 System.out.println(steve); 122 return instrumentedObjects; 123 } 124 } 125 return instrumentedObjects; 126 127 } 128 129 public static void visitL1DSOConfig(ConfigVisitor visitor, DSOClientConfigHelper config) { 130 String testClass = InstrumentedObject.class.getName(); 131 config.getOrCreateSpec(testClass); 132 testClass = ByteCodePerformanceTestApp.class.getName(); 133 String methodExpression = "* " + testClass + ".*(..)"; 134 config.addWriteAutolock(methodExpression); 135 TransparencyClassSpec spec = config.getOrCreateSpec(testClass); 136 spec.addRoot("instrumentedObjects", "instrumentedObjects"); 137 } 138 } 139 | Popular Tags |