home *** CD-ROM | disk | FTP | other *** search
/ ActiveX Programming Unleashed CD / AXU.iso / jgl_1_1 / jgl_1_1.exe / benchmarks / MapBenchmarks.java < prev    next >
Encoding:
Java Source  |  1996-07-13  |  4.1 KB  |  152 lines

  1. import jgl.*;
  2. import java.util.Hashtable;
  3. import java.util.Enumeration;
  4.  
  5. public class MapBenchmarks
  6.   {
  7.   static Randomizer random = new Randomizer();
  8.   static final int LOOPS = 200;
  9.   static final int MAX_SIZE = 3000;
  10.  
  11.   public static void main( String args[] )
  12.     {
  13.     System.out.println( "MapBenchmarks" );
  14.     mapAdding();
  15.     mapFinding();
  16.     mapRemoving();
  17.     mapClearing();
  18.     }
  19.  
  20.   static Object[] getRandomVectorInts()
  21.     {
  22.     int size = Randomizer.getInt( MAX_SIZE );
  23.     Integer[] ints = new Integer[ size ];
  24.     for( int i = 0; i < size; i++ )
  25.       ints[ i ] = new Integer( Randomizer.getInt( 10000 ) );
  26.     return ints;
  27.     }
  28.  
  29.   static void mapAdding()
  30.     {
  31.     Benchmark jglBenchmark = new Benchmark( "jglMapAdding", 50 );
  32.     Benchmark jdkBenchmark = new Benchmark( "jdkHashtableAdding", 50 );
  33.  
  34.     for( int i = 0; i <= LOOPS; i++ )
  35.       {
  36.       Object[] data = getRandomVectorInts();
  37.       jgl.HashMap jglMap = new jgl.HashMap();
  38.       java.util.Hashtable jdkHashtable = new java.util.Hashtable(); 
  39.  
  40.       jdkBenchmark.start();
  41.       for( int j = 0; j < data.length; j++ )
  42.         jdkHashtable.put( data[ j ], data[ j ] );
  43.       jdkBenchmark.stop();
  44.  
  45.       jglBenchmark.start();
  46.       for( int j = 0; j < data.length; j++ )
  47.         jglMap.put( data[ j ], data[ j ] );
  48.       jglBenchmark.stop();
  49.       }
  50.  
  51.     jglBenchmark.compareTo( jdkBenchmark );
  52.     }
  53.  
  54.   static void mapFinding()
  55.     {
  56.     Benchmark jglBenchmark = new Benchmark( "jglMapFinding", 50 );
  57.     Benchmark jdkBenchmark = new Benchmark( "jdkHashtableFinding", 50 );
  58.  
  59.     for( int i = 0; i <= LOOPS; i++ )
  60.       {
  61.       Object[] data = getRandomVectorInts();
  62.       jgl.HashMap jglMap = new jgl.HashMap();
  63.       java.util.Hashtable jdkHashtable = new java.util.Hashtable(); 
  64.  
  65.       for( int j = 0; j < data.length; j++ )
  66.         jglMap.put( data[ j ], data[ j ] );
  67.  
  68.       for( int j = 0; j < data.length; j++ )
  69.         jdkHashtable.put( data[ j ], data[ j ] );
  70.  
  71.       jdkBenchmark.start();
  72.       for( int j = 0; j < data.length; j++ )
  73.         {
  74.         jdkHashtable.get( data[ j ] );
  75.         }
  76.       jdkBenchmark.stop();
  77.  
  78.       jglBenchmark.start();
  79.       for( int j = 0; j < data.length; j++ )
  80.         {
  81.         jglMap.get( data[ j ] );
  82.         }
  83.       jglBenchmark.stop();
  84.       }
  85.  
  86.     jglBenchmark.compareTo( jdkBenchmark );
  87.     }
  88.  
  89.   static void mapRemoving()
  90.     {
  91.     Benchmark jglBenchmark = new Benchmark( "jglMapRemoving", 50 );
  92.     Benchmark jdkBenchmark = new Benchmark( "jdkHashtableRemoving", 50 );
  93.  
  94.     for( int i = 0; i <= LOOPS; i++ )
  95.       {
  96.       Object[] data = getRandomVectorInts();
  97.       jgl.HashMap jglMap = new jgl.HashMap();
  98.       java.util.Hashtable jdkHashtable = new java.util.Hashtable(); 
  99.  
  100.       for( int j = 0; j < data.length; j++ )
  101.         jglMap.put( data[ j ], data[ j ] );
  102.  
  103.       for( int j = 0; j < data.length; j++ )
  104.         jdkHashtable.put( data[ j ], data[ j ] );
  105.  
  106.       jdkBenchmark.start();
  107.       for( int j = 0; j < data.length; j++ )
  108.         {
  109.         jdkHashtable.remove( data[ j ] );
  110.         }
  111.       jdkBenchmark.stop();
  112.  
  113.       jglBenchmark.start();
  114.       for( int j = 0; j < data.length; j++ )
  115.         {
  116.         jglMap.remove( data[ j ] );
  117.         }
  118.       jglBenchmark.stop();
  119.       }
  120.  
  121.     jglBenchmark.compareTo( jdkBenchmark );
  122.     }
  123.  
  124.   static void mapClearing()
  125.     {
  126.     Benchmark jglBenchmark = new Benchmark( "jglMapClearing", 50 );
  127.     Benchmark jdkBenchmark = new Benchmark( "jdkHashtableClearing", 50 );
  128.  
  129.     for( int i = 0; i <= LOOPS; i++ )
  130.       {
  131.       Object[] data = getRandomVectorInts();
  132.       jgl.HashMap jglMap = new jgl.HashMap();
  133.       java.util.Hashtable jdkHashtable = new java.util.Hashtable(); 
  134.  
  135.       for( int j = 0; j < data.length; j++ )
  136.         jglMap.put( data[ j ], data[ j ] );
  137.  
  138.       for( int j = 0; j < data.length; j++ )
  139.         jdkHashtable.put( data[ j ], data[ j ] );
  140.  
  141.       jdkBenchmark.start();
  142.       jdkHashtable.clear();
  143.       jdkBenchmark.stop();
  144.  
  145.       jglBenchmark.start();
  146.       jglMap.clear();
  147.       jglBenchmark.stop();
  148.       }
  149.  
  150.     jglBenchmark.compareTo( jdkBenchmark );
  151.     }
  152.   }