KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > performance > timedtask > TimedObjectCreationTestApp


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.performance.timedtask;
5
6 import com.tc.object.config.ConfigVisitor;
7 import com.tc.object.config.DSOApplicationConfig;
8 import com.tc.object.config.DSOClientConfigHelper;
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 final class TimedObjectCreationTestApp extends AbstractTransparentApp {
17
18   private static final int VOLUME = 100000;
19   private static final double NANOSEC = 1000000000D;
20   private final List JavaDoc rootList = new ArrayList JavaDoc();
21
22   public TimedObjectCreationTestApp(String JavaDoc appId, ApplicationConfig cfg, ListenerProvider listenerProvider) {
23     super(appId, cfg, listenerProvider);
24   }
25
26   public static void visitL1DSOConfig(ConfigVisitor visitor, DSOClientConfigHelper config) {
27     String JavaDoc className = TimedObjectCreationTestApp.class.getName();
28     config.addRoot("rootList", className + ".rootList");
29     String JavaDoc methodExpression = "* " + className + "*.*(..)";
30     config.addWriteAutolock(methodExpression);
31   }
32   
33   public static void visitDSOApplicationConfig(ConfigVisitor visitor, DSOApplicationConfig config) {
34     String JavaDoc className = TimedObjectCreationTestApp.class.getName();
35     config.addRoot("rootList", className + ".rootList");
36     String JavaDoc methodExpression = "* " + className + "*.*(..)";
37     config.addWriteAutolock(methodExpression);
38   }
39
40   public void run() {
41     long start = System.nanoTime();
42     for (int i = 0; i < VOLUME; i++) {
43       add(new Object JavaDoc());
44     }
45     long end = System.nanoTime();
46
47     printResult(start, end);
48   }
49
50   private void add(Object JavaDoc obj) {
51     synchronized (rootList) {
52       rootList.add(obj);
53     }
54   }
55   
56   private void printResult(long start, long end) {
57     double time = (end - start);
58     long result = Math.round(VOLUME / (time / NANOSEC));
59     System.out.println("**%% TERRACOTTA TEST STATISTICS %%**: value=" + result + " obj/sec");
60   }
61 }
62
Popular Tags