KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > ByteCodePerformanceTestApp


1 /*
2  * All content copyright (c) 2003-2006 Terracotta, Inc., except as may otherwise be noted in a separate copyright notice. All rights reserved.
3  */

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 JavaDoc;
14 import java.util.List JavaDoc;
15
16 public class ByteCodePerformanceTestApp extends AbstractTransparentApp {
17
18   private List JavaDoc instrumentedObjects = new ArrayList JavaDoc();
19   private List JavaDoc instrumentedUnSharedObjects = new ArrayList JavaDoc();
20   // private List uninstrumentedObjects = new ArrayList();
21

22   private final static int COUNT = 50;
23
24   public ByteCodePerformanceTestApp(String JavaDoc 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();
57
// synchronized (this.instrumentedObjects) {
58
// for (int i = 0; i < COUNT; i++) {
59
// InstrumentedObject o = (InstrumentedObject) instrumentedObjects.get(i);
60
// o.setValues();
61
// }
62
// }
63
// System.out.println("SET INSTRUMENTED:" + (System.currentTimeMillis() - start));
64
//
65
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     //
81
// start = System.currentTimeMillis();
82
// for (int j = 0; j < 500; j++) {
83
// for (int i = 0; i < COUNT; i++) {
84
// InstrumentedObject o = (InstrumentedObject) instrumentedUnSharedObjects.get(i);
85
// o.setValues();
86
// }
87
// }
88
// System.out.println("SET INSTRUMENTED UNSHARED:" + (System.currentTimeMillis() - start));
89
//
90
// start = System.currentTimeMillis();
91
// for (int i = 0; i < COUNT; i++) {
92
// uninstrumentedObjects.add(new UnInstrumentedObject(true));
93
// }
94
// System.out.println("CREATED UNINSTRUMENTED:" + (System.currentTimeMillis() - start));
95
//
96
// start = System.currentTimeMillis();
97
// for (int j = 0; j < 500; j++) {
98
// for (int i = 0; i < COUNT; i++) {
99
// UnInstrumentedObject o = (UnInstrumentedObject) uninstrumentedObjects.get(i);
100
// o.accessValues();
101
// }
102
// }
103
// System.out.println("QUERY UNINSTRUMENTED:" + (System.currentTimeMillis() - start));
104
//
105
// start = System.currentTimeMillis();
106
// for (int j = 0; j < 500; j++) {
107
// for (int i = 0; i < COUNT; i++) {
108
// UnInstrumentedObject o = (UnInstrumentedObject) uninstrumentedObjects.get(i);
109
// o.setValues();
110
// }
111
// }
112
// System.out.println("SET UNINSTRUMENTED:" + (System.currentTimeMillis() - start));
113

114   }
115
116   public List JavaDoc 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 JavaDoc testClass = InstrumentedObject.class.getName();
131     config.getOrCreateSpec(testClass);
132     testClass = ByteCodePerformanceTestApp.class.getName();
133     String JavaDoc methodExpression = "* " + testClass + ".*(..)";
134     config.addWriteAutolock(methodExpression);
135     TransparencyClassSpec spec = config.getOrCreateSpec(testClass);
136     spec.addRoot("instrumentedObjects", "instrumentedObjects");
137   }
138 }
139
Popular Tags