Mercurial > hg > blitz_condensed
diff src/org/dancres/blitz/remote/transport/TestClient.java @ 0:3dc0c5604566
Initial checkin of blitz 2.0 fcs - no installer yet.
author | Dan Creswell <dan.creswell@gmail.com> |
---|---|
date | Sat, 21 Mar 2009 11:00:06 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/org/dancres/blitz/remote/transport/TestClient.java Sat Mar 21 11:00:06 2009 +0000 @@ -0,0 +1,148 @@ +package org.dancres.blitz.remote.transport; + +import java.io.Serializable; + +import net.jini.space.JavaSpace; +import net.jini.core.entry.Entry; + +import org.dancres.blitz.remote.LocalSpace; +import org.dancres.blitz.remote.ProxyFactory; +import org.dancres.blitz.test.TxnGatewayImpl; + +/** + */ +public class TestClient { + public static void main(String args[]) throws Exception { + new TestClient().test(); + } + + private JavaSpace space; + + private void test() throws Exception { + StubImpl myStub = new StubImpl(); + + space = ProxyFactory.newBlitzProxy(myStub, null); + + for (int j = 0; j < 10; j++) { + long myStart = System.currentTimeMillis(); + + for (int i = 0; i < 1000; i++) { + myStub.ping(); + + // myHandler.waitForResponse(); + } + + long myTotal = System.currentTimeMillis() - myStart; + System.out.println("1000 iterations in: " + myTotal); + + double myTimePerIter = ((double) myTotal) / (double) 1000; + System.out.println("Time per roundtrip: " + myTimePerIter); + } + + testWriteTake(); + testWriteRead(); + testMatch(); + } + + public static class TestEntry implements Entry { + public Integer reference; + public String name; + public Serializable box; + } + + + public void testWriteTake() { + TestEntry entry = new TestEntry(); + + entry.reference = new Integer(23); + entry.name = + "A longer string that represent a cached http address for example - 1234567890"; + entry.box = null; + + long soak = 100001; + + long start = System.currentTimeMillis(); + + for (long i = 0; i < soak; i++) { + try { + space.write(entry, null, 10 * 1000); + space.take(entry, null, 0); + } + catch (Exception e) { + e.printStackTrace(); + } + + if (i % 10000 == 0) { + long elapsed = System.currentTimeMillis() - start; + System.out.println(i + "Write/Take :" + elapsed); + } + } + } + + public void testWriteRead() { + TestEntry entry = new TestEntry(); + + entry.reference = new Integer(23); + entry.name = "Steam"; + entry.box = null; + + long soak = 100001; + long start = System.currentTimeMillis(); + + for (long i = 0; i < soak; i++) { + try { + space.write(entry, null, 10 * 1000); + space.read(entry, null, 0); + } + catch (Exception e) { + e.printStackTrace(); + } + + if (i % 10000 == 0) { + long elapsed = System.currentTimeMillis() - start; + System.out.println(i + "Write/Read :" + elapsed); + } + } + } + + public void testMatch() { + // write 1000 entries into the space and match randomly + TestEntry entry = new TestEntry(); + + entry.reference = new Integer(0); + entry.name = "Steam"; + entry.box = null; + + long soak = 100001; + long start = System.currentTimeMillis(); + + // write the objects in + long matchables = 100; + for (long i = 0; i < matchables; i++) { + entry.reference = new Integer((int) matchables); + try { + space.write(entry, null, + 60 * 60 * 1000); // make a decent length lease + } + catch (Exception e) { + e.printStackTrace(); + } + } + + + for (long i = 0; i < soak; i++) { + entry.reference = new Integer((int) (Math.random() * matchables)); + try { + space.read(entry, null, 0); + } + catch (Exception e) { + e.printStackTrace(); + } + + if (i % 10000 == 0) { + long elapsed = System.currentTimeMillis() - start; + System.out.println(i + "Matching :" + elapsed); + } + } + } +}