1 19 package bak.pcj.benchmark; 20 21 import java.util.Map ; 22 import java.util.Iterator ; 23 24 32 public abstract class MapBenchmark extends Benchmark { 33 34 protected abstract Map create(Integer [] keys, Integer [] values); 35 36 protected Map create() { 37 return create(new Integer []{}, new Integer []{}); 38 } 39 40 public String getClassId() { 41 Object v = create(); 42 String name = v.getClass().getName(); 43 return name; 44 } 45 46 public String benchmarkPutExisting(DataSet dataSet) { 47 Map c = create(dataSet.getObjects(0), dataSet.getObjects(0)); 48 Integer [] l = dataSet.getObjects(0); 49 Integer [] k = dataSet.getObjects(1); 50 startTimer(); 51 for (int i = 0; i < l.length; i++) 52 c.put(l[i], k[i]); 53 stopTimer(); 54 return l.length + " overwriting calls to put() with " + l.length + " mappings"; 55 } 56 57 public String benchmarkPutNonExisting(DataSet dataSet) { 58 Map c = create(dataSet.getObjects(0), dataSet.getObjects(0)); 59 Integer [] l = dataSet.getObjects(1); 60 startTimer(); 61 for (int i = 0; i < l.length; i++) 62 c.put(l[i], l[i]); 63 stopTimer(); 64 return l.length + " non-overwriting calls to put() with " + l.length + " mappings"; 65 } 66 67 public String benchmarkGetExisting(DataSet dataSet) { 68 Map c = create(dataSet.getObjects(0), dataSet.getObjects(0)); 69 Integer [] l = dataSet.getObjects(0); 70 startTimer(); 71 for (int i = 0; i < l.length; i++) 72 c.get(l[i]); 73 stopTimer(); 74 return l.length + " successful calls to get() with " + c.size() + " mappings"; 75 } 76 77 public String benchmarkGetNonExisting(DataSet dataSet) { 78 Map c = create(dataSet.getObjects(0), dataSet.getObjects(0)); 79 Integer [] l = dataSet.getObjects(1); 80 startTimer(); 81 for (int i = 0; i < l.length; i++) 82 c.get(l[i]); 83 stopTimer(); 84 return l.length + " unsuccessful calls to get() with " + c.size() + " mappings"; 85 } 86 87 public String benchmarkRemoveExisting(DataSet dataSet) { 88 Map c = create(dataSet.getObjects(0), dataSet.getObjects(0)); 89 Integer [] l = dataSet.getObjects(0); 90 startTimer(); 91 for (int i = 0; i < l.length; i++) 92 c.remove(l[i]); 93 stopTimer(); 94 return l.length + " successful calls to remove() with " + l.length + " mappings"; 95 } 96 97 public String benchmarkRemoveNonExisting(DataSet dataSet) { 98 Map c = create(dataSet.getObjects(0), dataSet.getObjects(0)); 99 Integer [] l = dataSet.getObjects(1); 100 startTimer(); 101 for (int i = 0; i < l.length; i++) 102 c.remove(l[i]); 103 stopTimer(); 104 return l.length + " unsuccessful calls to remove() with " + l.length + " mappings"; 105 } 106 107 public String benchmarkIterator(DataSet dataSet) { 108 Map c = create(dataSet.getObjects(0), dataSet.getObjects(0)); 109 startTimer(); 110 Iterator it = c.entrySet().iterator(); 111 while (it.hasNext()) { 112 it.next(); 113 Map.Entry e = (Map.Entry )it.next(); 114 e.getKey(); 115 e.getValue(); 116 } 117 stopTimer(); 118 return "Iteration over " + c.size() + " mappings"; 119 } 120 121 } | Popular Tags |