summaryrefslogtreecommitdiff
path: root/java/demo/Freeze/bench/Client.java
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
committerMatthew Newhook <matthew@zeroc.com>2015-03-18 12:58:16 -0230
commit9b7668c7c92cf9cb311fe444cdddb489cd2a219d (patch)
tree5016567c58c81f5654e9d01935e199c6bf4761d2 /java/demo/Freeze/bench/Client.java
parentVS add-in & build updates: (diff)
downloadice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.bz2
ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.tar.xz
ice-9b7668c7c92cf9cb311fe444cdddb489cd2a219d.zip
Removed demos.
Moved demoscript to distribution.
Diffstat (limited to 'java/demo/Freeze/bench/Client.java')
-rw-r--r--java/demo/Freeze/bench/Client.java604
1 files changed, 0 insertions, 604 deletions
diff --git a/java/demo/Freeze/bench/Client.java b/java/demo/Freeze/bench/Client.java
deleted file mode 100644
index eae26b6ae9d..00000000000
--- a/java/demo/Freeze/bench/Client.java
+++ /dev/null
@@ -1,604 +0,0 @@
-// **********************************************************************
-//
-// Copyright (c) 2003-2015 ZeroC, Inc. All rights reserved.
-//
-// This copy of Ice is licensed to you under the terms described in the
-// ICE_LICENSE file included in this distribution.
-//
-// **********************************************************************
-
-import Demo.*;
-
-class Client extends Ice.Application
-{
- void
- IntIntMapTest(Freeze.Map<Integer, Integer> m, boolean fast)
- {
- //
- // Populate the database.
- //
- _watch.start();
- Freeze.Transaction tx = _connection.beginTransaction();
- if(fast)
- {
- for(int i = 0; i < _repetitions; ++i)
- {
- m.fastPut(i, i);
- }
- }
- else
- {
- for(int i = 0; i < _repetitions; ++i)
- {
- m.put(i, i);
- }
- }
- tx.commit();
-
- double total = _watch.stop();
- double perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " " + ((fast) ? "fast " : "") + "writes: " + total + "ms");
- System.out.println("\ttime per write: " + perRecord + "ms");
-
- //
- // Read each record.
- //
- _watch.start();
- for(int i = 0; i < _repetitions; ++i)
- {
- Integer n = m.get(i);
- test(n.intValue() == i);
- }
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " reads: " + total + "ms");
- System.out.println("\ttime per read: " + perRecord + "ms");
-
- if(m instanceof IndexedIntIntMap)
- {
- IndexedIntIntMap indexedM = (IndexedIntIntMap)m;
- //
- // Read each record using the index
- //
- _watch.start();
- for(int i = 0; i < _repetitions; ++i)
- {
- java.util.Iterator<java.util.Map.Entry<Integer, Integer>> p = indexedM.findByValue(i);
- test(p.hasNext());
- java.util.Map.Entry<Integer, Integer> e = p.next();
- test(e.getKey().intValue() == i);
- m.closeAllIterators();
- }
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " indexed reads: " + total + "ms");
- System.out.println("\ttime per indexed read: " + perRecord + "ms");
- }
-
- //
- // Remove each record.
- //
- _watch.start();
- tx = _connection.beginTransaction();
- if(fast)
- {
- for(int i = 0; i < _repetitions; ++i)
- {
- test(m.fastRemove(i));
- }
- }
- else
- {
- for(int i = 0; i < _repetitions; ++i)
- {
- Integer n = m.remove(i);
- test(n.intValue() == i);
- }
- }
- tx.commit();
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " " + ((fast) ? "fast " : "") + "removes: " + total + "ms");
- System.out.println("\ttime per remove: " + perRecord + "ms");
-
- m.close();
- }
-
- interface Generator
- {
- int next();
- String toString();
- }
-
- static class RandomGenerator implements Generator
- {
- RandomGenerator(int seed, int max)
- {
- _r = new java.util.Random(0);
- _max = max;
- }
-
- public int
- next()
- {
- return _r.nextInt(_max);
- }
-
- public String
- toString()
- {
- return "random(" + _max + ")";
- }
-
- private java.util.Random _r;
- private int _max;
- }
-
- static class SequentialGenerator implements Generator
- {
- SequentialGenerator(int min, int max)
- {
- _min = min;
- _max = max;
- _current = _min;
- }
-
- public int
- next()
- {
- int n = _current;
- ++_current;
- if(_current > _max)
- {
- _current = _min;
- }
- return n;
- }
-
- public String
- toString()
- {
- return new Integer((_max - _min) + 1).toString();
- }
-
- private int _min;
- private int _max;
- private int _current;
- }
-
- void
- generatedRead(Freeze.Map<Integer, Integer> m, int reads, Generator gen)
- {
- _watch.start();
- for(int i = 0; i < reads; ++i)
- {
- int key = gen.next();
- Integer n = m.get(key);
- test(n.intValue() == key);
- }
- double total = _watch.stop();
- double perRecord = total / reads;
-
- System.out.println("\ttime for " + reads + " reads of " + gen + " records: " + total + "ms");
- System.out.println("\ttime per read: " + perRecord + "ms");
-
- if(m instanceof IndexedIntIntMap)
- {
- IndexedIntIntMap indexedM = (IndexedIntIntMap)m;
- _watch.start();
- for(int i = 0; i < reads; ++i)
- {
- int val = gen.next();
- java.util.Iterator<java.util.Map.Entry<Integer, Integer>> p = indexedM.findByValue(val);
- test(p.hasNext());
- java.util.Map.Entry<Integer, Integer> e = p.next();
- test(e.getKey().intValue() == val);
- m.closeAllIterators();
- }
- total = _watch.stop();
- perRecord = total / reads;
-
- System.out.println("\ttime for " + reads + " reverse (indexed) reads of " + gen + " records: " + total +
- "ms");
- System.out.println("\ttime per reverse (indexed) read: " + perRecord + "ms");
- }
- }
-
- void
- IntIntMapReadTest(Freeze.Map<Integer, Integer> m)
- {
- //
- // Populate the database.
- //
- _watch.start();
- Freeze.Transaction tx = _connection.beginTransaction();
- for(int i = 0; i < _repetitions; ++i)
- {
- m.fastPut(i, i);
- }
- tx.commit();
- double total = _watch.stop();
- double perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " writes: " + total + "ms");
- System.out.println("\ttime per write: " + perRecord + "ms");
-
- //
- // Do some read tests.
- //
- generatedRead(m, _repetitions, new SequentialGenerator(1000, 1000));
- generatedRead(m, _repetitions, new SequentialGenerator(2000, 2009));
- generatedRead(m, _repetitions, new SequentialGenerator(3000, 3099));
- generatedRead(m, _repetitions, new SequentialGenerator(4000, 4999));
-
- //
- // Do a random read test.
- //
- generatedRead(m, _repetitions, new RandomGenerator(0, 10000));
-
- //
- // Remove each record.
- //
-/*
- * For this test I don't want to remove the records because I
- * want to examine the cache stats for the database.
- *
- _watch.start();
- for(int i = 0; i < _repetitions; ++i)
- {
- test(m.fastRemove(i));
- }
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " removes: " + total + "ms");
- System.out.println("\ttime per remove: " + perRecord + "ms");
-*/
-
- m.close();
- }
-
- void
- Struct1Struct2MapTest(Freeze.Map<Struct1, Struct2> m)
- {
- //
- // Populate the database.
- //
- Struct1 s1 = new Struct1();
- Struct2 s2 = new Struct2();
- _watch.start();
- Freeze.Transaction tx = _connection.beginTransaction();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- s2.s = new Integer(i).toString();
- s2.s1 = s1;
- m.fastPut(s1, s2);
- }
- tx.commit();
- double total = _watch.stop();
- double perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " writes: " + total + "ms");
- System.out.println("\ttime per write: " + perRecord + "ms");
-
- //
- // Read each record.
- //
- _watch.start();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- Struct2 ns2 = m.get(s1);
- test(ns2.s.equals(new Integer(i).toString()));
- }
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " reads: " + total + "ms");
- System.out.println("\ttime per read: " + perRecord + "ms");
-
- //
- // Optional index test
- //
-
- if(m instanceof IndexedStruct1Struct2Map)
- {
- IndexedStruct1Struct2Map indexedM = (IndexedStruct1Struct2Map)m;
- _watch.start();
- for(int i = 0; i < _repetitions; ++i)
- {
- String s = (new Integer(i)).toString();
- java.util.Iterator<java.util.Map.Entry<Struct1, Struct2>> p = indexedM.findByS(s);
- test(p.hasNext());
- java.util.Map.Entry<Struct1, Struct2> e = p.next();
- test(e.getKey().l == i);
- m.closeAllIterators();
- }
-
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- java.util.Iterator<java.util.Map.Entry<Struct1, Struct2>> p = indexedM.findByS1(s1);
- test(p.hasNext());
- java.util.Map.Entry<Struct1, Struct2> e = p.next();
- test(e.getKey().l == i);
- m.closeAllIterators();
- }
- total = _watch.stop();
- perRecord = total / (2 * _repetitions);
-
- System.out.println("\ttime for " + 2 * _repetitions + " indexed reads: " + total + "ms");
- System.out.println("\ttime per indexed read: " + perRecord + "ms");
- }
-
- //
- // Remove each record.
- //
- _watch.start();
- tx = _connection.beginTransaction();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- test(m.fastRemove(s1));
- }
- tx.commit();
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " removes: " + total + "ms");
- System.out.println("\ttime per remove: " + perRecord + "ms");
-
- m.close();
- }
-
- void
- Struct1Class1MapTest(Freeze.Map<Struct1, Class1> m)
- {
- //
- // Populate the database.
- //
- Struct1 s1 = new Struct1();
- Class1 c1 = new Class1();
- _watch.start();
- Freeze.Transaction tx = _connection.beginTransaction();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- c1.s = new Integer(i).toString();
- m.fastPut(s1, c1);
- }
- tx.commit();
- double total = _watch.stop();
- double perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " writes: " + total + "ms");
- System.out.println("\ttime per write: " + perRecord + "ms");
-
- //
- // Read each record.
- //
- _watch.start();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- Class1 nc1 = m.get(s1);
- test(nc1.s.equals(new Integer(i).toString()));
- }
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " reads: " + total + "ms");
- System.out.println("\ttime per read: " + perRecord + "ms");
-
- //
- // Optional index test
- //
-
- if(m instanceof IndexedStruct1Class1Map)
- {
- IndexedStruct1Class1Map indexedM = (IndexedStruct1Class1Map)m;
- _watch.start();
- for(int i = 0; i < _repetitions; ++i)
- {
- String s = (new Integer(i)).toString();
- java.util.Iterator<java.util.Map.Entry<Struct1, Class1>> p = indexedM.findByS(s);
- test(p.hasNext());
- java.util.Map.Entry<Struct1, Class1> e = p.next();
- test(e.getKey().l == i);
- m.closeAllIterators();
- }
-
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " indexed reads: " + total + "ms");
- System.out.println("\ttime per indexed read: " + perRecord + "ms");
- }
-
- //
- // Remove each record.
- //
- _watch.start();
- tx = _connection.beginTransaction();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- test(m.fastRemove(s1));
- }
- tx.commit();
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " removes: " + total + "ms");
- System.out.println("\ttime per remove: " + perRecord + "ms");
-
- m.close();
- }
-
- void
- Struct1ObjectMapTest(Freeze.Map<Struct1, Ice.Object> m)
- {
- //
- // Populate the database.
- //
- Struct1 s1 = new Struct1();
- Class1 c1 = new Class1();
- Class2 c2 = new Class2();
- c2.rec = c2;
- c2.obj = c1;
- _watch.start();
- Freeze.Transaction tx = _connection.beginTransaction();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- Ice.Object o;
- if((i % 2) == 0)
- {
- o = c2;
- }
- else
- {
- o = c1;
- }
- c1.s = new Integer(i).toString();
-
- m.fastPut(s1, o);
- }
- tx.commit();
-
- double total = _watch.stop();
- double perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " writes: " + total + "ms");
- System.out.println("\ttime per write: " + perRecord + "ms");
-
- //
- // Read each record.
- //
- _watch.start();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
-
- Ice.Object o = m.get(s1);
-
- Class1 nc1;
- if((i % 2) == 0)
- {
- Class2 nc2 = (Class2)o;
- test(nc2.rec == nc2);
- nc1 = (Class1)nc2.obj;
- }
- else
- {
- nc1 = (Class1)o;
- }
-
- test(nc1.s.equals(new Integer(i).toString()));
- }
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " reads: " + total + "ms");
- System.out.println("\ttime per read: " + perRecord + "ms");
-
- //
- // Remove each record.
- //
- _watch.start();
- tx = _connection.beginTransaction();
- for(int i = 0; i < _repetitions; ++i)
- {
- s1.l = i;
- test(m.fastRemove(s1));
- }
- tx.commit();
- total = _watch.stop();
- perRecord = total / _repetitions;
-
- System.out.println("\ttime for " + _repetitions + " removes: " + total + "ms");
- System.out.println("\ttime per remove: " + perRecord + "ms");
-
- m.close();
- }
-
- public int
- run(String[] args)
- {
- if(args.length > 0)
- {
- System.err.println(appName() + ": too many arguments");
- return 1;
- }
-
- _connection = Freeze.Util.createConnection(communicator(), _envName);
-
- System.out.println("IntIntMap (Collections API)");
- IntIntMapTest(new IntIntMap(_connection, "IntIntMap", true), false);
-
- System.out.println("IntIntMap (Fast API)");
- IntIntMapTest(new IntIntMap(_connection, "IntIntMap.fast", true), true);
-
- System.out.println("IntIntMap with index (Collections API)");
- IntIntMapTest(new IndexedIntIntMap(_connection, "IndexedIntIntMap", true), false);
-
- System.out.println("IntIntMap with index (Fast API)");
- IntIntMapTest(new IndexedIntIntMap(_connection, "IndexedIntIntMap.fast", true), true);
-
- System.out.println("Struct1Struct2Map");
- Struct1Struct2MapTest(new Struct1Struct2Map(_connection, "Struct1Struct2", true));
-
- System.out.println("Struct1Struct2Map with index");
- Struct1Struct2MapTest(new IndexedStruct1Struct2Map(_connection, "IndexedStruct1Struct2", true));
-
- System.out.println("Struct1Class1Map");
- Struct1Class1MapTest(new Struct1Class1Map(_connection, "Struct1Class1", true));
-
- System.out.println("Struct1Class1Map with index");
- Struct1Class1MapTest(new IndexedStruct1Class1Map(_connection, "IndexedStruct1Class1", true));
-
- System.out.println("Struct1ObjectMap");
- Struct1ObjectMapTest(new Struct1ObjectMap(_connection, "Struct1Object", true));
-
- System.out.println("IntIntMap (read test)");
- IntIntMapReadTest(new IntIntMap(_connection, "IntIntMap", true));
-
- System.out.println("IntIntMap with index (read test)");
- IntIntMapReadTest(new IndexedIntIntMap(_connection, "IndexedIntIntMap", true));
-
- _connection.close();
-
- return 0;
- }
-
- private static void
- test(boolean b)
- {
- if(!b)
- {
- throw new RuntimeException();
- }
- }
-
- Client(String envName)
- {
- _envName = envName;
- }
-
- static public void
- main(String[] args)
- {
- Client app = new Client("db");
- app.main("demo.Freeze.bench.Client", args);
- }
-
- private Freeze.Connection _connection;
- private int _repetitions = 10000;
- private StopWatch _watch = new StopWatch();
- private String _envName;
-}