KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tctest > CacheLoadPerformanceTestApp


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.HashMap JavaDoc;
14 import java.util.Map JavaDoc;
15 import java.util.Random JavaDoc;
16
17 public class CacheLoadPerformanceTestApp extends AbstractTransparentApp {
18   private Map JavaDoc cache = new HashMap JavaDoc();
19   private final static int CACHE_COUNT = 8;
20   private final static int ENTRIES = 500;
21   private final static int BATCH_SIZE = 100;
22
23   public CacheLoadPerformanceTestApp(String JavaDoc appId, ApplicationConfig cfg, ListenerProvider listenerProvider) {
24     super(appId, cfg, listenerProvider);
25   }
26
27   public void run() {
28     Random JavaDoc r = new Random JavaDoc();
29     synchronized (cache) {
30       for (int i = 0; i < CACHE_COUNT; i++) {
31         cache.put(new Integer JavaDoc(i), new HashMap JavaDoc());
32       }
33     }
34     long start = System.currentTimeMillis();
35     int added = 0;
36     while (added < ENTRIES) {
37       synchronized (cache) {
38         for (int i = 0; i < BATCH_SIZE; i++) {
39           Integer JavaDoc cid = new Integer JavaDoc(r.nextInt(CACHE_COUNT));
40           Map JavaDoc m = (Map JavaDoc) cache.get(cid);
41           m.put(new TestKey(), new TestValue());
42           added++;
43         }
44       }
45     }
46     System.out.println("Total time:" + (System.currentTimeMillis() - start));
47   }
48
49   private class TestKey {
50     public Object JavaDoc o = new Object JavaDoc();
51     public String JavaDoc s = "Steve " + System.currentTimeMillis();
52   }
53
54   private class TestValue {
55     public Object JavaDoc o = new Object JavaDoc();
56     public String JavaDoc s = "Steve " + System.currentTimeMillis();
57   }
58
59   public static void visitL1DSOConfig(ConfigVisitor visitor, DSOClientConfigHelper config) {
60     String JavaDoc testClass = CacheLoadPerformanceTestApp.class.getName();
61     String JavaDoc methodExpression = "* " + testClass + ".*(..)";
62     config.addWriteAutolock(methodExpression);
63     TransparencyClassSpec spec = config.getOrCreateSpec(testClass);
64     spec.addRoot("cache", "cache");
65     config.addIncludePattern(TestKey.class.getName());
66     config.addIncludePattern(TestValue.class.getName());
67   }
68
69 }
70
Popular Tags