Advertisement
Guest User

Flow.Collections.Benchmark

a guest
Apr 9th, 2013
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.58 KB | None | 0 0
  1.  
  2. package Flow.Collection;
  3.  
  4. import java.util.ArrayList;
  5. import java.util.Random;
  6.  
  7. public class Benchmark
  8. {
  9.     public static void main(String[] args)
  10.     {
  11.         Object obj = new Object(); //For the purposes of testing, all items added and removed are precalculated. :D
  12.         long startTime;
  13.        
  14.        
  15.        
  16.         {
  17.             System.out.println("Adding/removing 10,000,000 items @ the end of the dynamic array...");
  18.             startTime = System.currentTimeMillis();
  19.            
  20.             {
  21.                 ArrayList<Object> list = new ArrayList<Object>();
  22.                 for (int q = 0; q < 10000000; q++)
  23.                     list.add(obj);
  24.                 for (int q = list.size() - 1; q >= 0; q--)
  25.                     list.remove(q);
  26.             }
  27.            
  28.             System.out.println("ArrayList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
  29.             startTime = System.currentTimeMillis();
  30.            
  31.             {
  32.                 GapBufferList<Object> list = new GapBufferList<Object>();
  33.                 for (int q = 0; q < 10000000; q++)
  34.                     list.add(obj);
  35.                 for (int q = list.size() - 1; q >= 0; q--)
  36.                     list.remove(q);
  37.             }
  38.            
  39.             System.out.println("GapBufferList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
  40.             System.out.println();
  41.         }
  42.        
  43.        
  44.        
  45.         {
  46.             System.out.println("Adding/removing 100,000 items @ a random spot in the dynamic array...");
  47.             startTime = System.currentTimeMillis();
  48.            
  49.             {
  50.                 Random rnd = new Random();
  51.                 ArrayList<Object> list = new ArrayList<Object>();
  52.                 for (int q = 1; q <= 100000; q++)
  53.                     list.add(rnd.nextInt(q), obj);
  54.                
  55.                 long tempTime = System.currentTimeMillis();
  56.                 System.out.println("  - ArrayList add: " + (tempTime - startTime) + " milliseconds");
  57.                
  58.                 for (int q = list.size(); q > 0; q--)
  59.                     list.remove(rnd.nextInt(q));
  60.                
  61.                 System.out.println("  - ArrayList remove: " + (System.currentTimeMillis() - tempTime) + " milliseconds");
  62.             }
  63.            
  64.             System.out.println("ArrayList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
  65.             startTime = System.currentTimeMillis();
  66.            
  67.             {
  68.                 Random rnd = new Random();
  69.                 GapBufferList<Object> list = new GapBufferList<Object>();
  70.                 for (int q = 1; q <= 100000; q++)
  71.                     list.add(rnd.nextInt(q), obj);
  72.                
  73.                 long tempTime = System.currentTimeMillis();
  74.                 System.out.println("  - GapBufferList add: " + (tempTime - startTime) + " milliseconds");
  75.                
  76.                 for (int q = list.size(); q > 0; q--)
  77.                     list.remove(rnd.nextInt(q));
  78.                
  79.                 System.out.println("  - GapBufferList remove: " + (System.currentTimeMillis() - tempTime) + " milliseconds");
  80.             }
  81.            
  82.             System.out.println("GapBufferList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
  83.             System.out.println();
  84.         }
  85.        
  86.        
  87.        
  88.         {
  89.             System.out.println("Adding/removing 100,000 items @ the beginning of the dynamic array...");
  90.             startTime = System.currentTimeMillis();
  91.            
  92.             {
  93.                 ArrayList<Object> list = new ArrayList<Object>();
  94.                 for (int q = 1; q <= 100000; q++)
  95.                     list.add(0, obj);
  96.                 for (int q = list.size(); q > 0; q--)
  97.                     list.remove(0);
  98.             }
  99.            
  100.             System.out.println("ArrayList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
  101.             startTime = System.currentTimeMillis();
  102.            
  103.             {
  104.                 GapBufferList<Object> list = new GapBufferList<Object>();
  105.                 for (int q = 1; q <= 100000; q++)
  106.                     list.add(0, obj);
  107.                 for (int q = list.size(); q > 0; q--)
  108.                     list.remove(0);
  109.             }
  110.            
  111.             System.out.println("GapBufferList: " + (System.currentTimeMillis() - startTime) + " milliseconds");
  112.             System.out.println();
  113.         }
  114.        
  115.        
  116.        
  117.         System.out.println("Clearly, the GapBufferList is the better option.");
  118.     }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement