KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > performance > standard > ThroughputTEST


1 /*
2 * JBoss, Home of Professional Open Source
3 * Copyright 2005, JBoss Inc., and individual contributors as indicated
4 * by the @authors tag. See the copyright.txt in the distribution for a
5 * full listing of individual contributors.
6 *
7 * This is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this software; if not, write to the Free
19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21 */

22 package test.performance.standard;
23
24 import junit.framework.TestCase;
25 import test.performance.PerformanceSUITE;
26 import test.performance.standard.support.Standard;
27
28 import javax.management.*;
29
30
31 public class ThroughputTEST extends TestCase
32 {
33
34    public ThroughputTEST(String JavaDoc s)
35    {
36       super(s);
37    }
38
39    public void testThroughput() throws Exception JavaDoc
40    {
41    
42    
43       MyThread myThread = new MyThread();
44       Thread JavaDoc t = new Thread JavaDoc(myThread);
45       Standard std = new Standard();
46       
47       String JavaDoc method = "mixedArguments";
48       String JavaDoc[] signature = new String JavaDoc[] {
49                               Integer JavaDoc.class.getName(),
50                               int.class.getName(),
51                               Object JavaDoc[][][].class.getName(),
52                               Attribute.class.getName()
53                            };
54                            
55       Object JavaDoc[] args = new Object JavaDoc[] {
56                               new Integer JavaDoc(1234),
57                               new Integer JavaDoc(455617),
58                               new Object JavaDoc[][][] {
59                                  {
60                                     { "1x1x1", "1x1x2", "1x1x3" },
61                                     { "1x2x1", "1x2x2", "1x2x3" },
62                                     { "1x3x1", "1x3x2", "1x3x3" }
63                                  },
64                                  
65                                  {
66                                     { "2x1x1", "2x1x2", "2x1x3" },
67                                     { "2x2x1", "2x2x2", "2x2x3" },
68                                     { "2x3x1", "2x3x2", "2x3x3" }
69                                  },
70                                  
71                                  {
72                                     { "3x1x1", "3x1x2", "3x1x3" },
73                                     { "3x2x1", "3x2x2", "3x2x3" },
74                                     { "3x3x1", "3x3x2", "3x3x3" }
75                                  }
76                               },
77                               new Attribute("attribute", "value")
78                            };
79
80       MBeanServer server = MBeanServerFactory.createMBeanServer();
81       ObjectName name = new ObjectName("test:test=test");
82    
83       server.registerMBean(std, name);
84       
85       t.start();
86       while(myThread.isKeepRunning())
87       {
88          server.invoke(name, method, args, signature);
89       }
90
91          System.out.println("\nStandard MBean Throughput: " +
92                              std.getCount() / (PerformanceSUITE.THROUGHPUT_TIME / PerformanceSUITE.SECOND) +
93                             " invocations per second.");
94          System.out.println("(Total: " + std.getCount() + ")\n");
95    }
96
97    class MyThread implements Runnable JavaDoc
98    {
99
100       private boolean keepRunning = true;
101       
102       public void run()
103       {
104          try
105          {
106             Thread.sleep(PerformanceSUITE.THROUGHPUT_TIME);
107          }
108          catch (InterruptedException JavaDoc e)
109          {
110             
111          }
112          
113          keepRunning = false;
114       }
115       
116       public boolean isKeepRunning()
117       {
118          return keepRunning;
119       }
120    }
121
122 }
123
Popular Tags