1 10 11 package net.sf.cache4j.perfomance; 12 13 import java.util.List ; 14 import java.util.ArrayList ; 15 import java.util.Properties ; 16 import java.util.Iterator ; 17 import java.io.InputStream ; 18 19 25 26 public class PTest { 27 public static void main(String [] args) { 33 34 int testCount = 1; 35 if (args != null && args.length == 1) { 36 try { 37 testCount = Integer.parseInt(args[0]); 38 } catch (Exception e) { 39 e.printStackTrace(); 40 } 41 } 42 43 List cacheClassList = new ArrayList (); 44 List testClassList = new ArrayList (); 45 try { 46 InputStream in = PTest.class.getResourceAsStream("cache.txt"); 47 Properties props = new Properties (); 48 props.load(in); 49 in.close(); 50 51 Iterator it = props.keySet().iterator(); 52 while (it.hasNext()) { 53 String val = (String ) it.next(); 54 if (!val.startsWith("#")) { 55 cacheClassList.add(val); 56 } 57 } 58 59 in = PTest.class.getResourceAsStream("test.txt"); 60 props = new Properties (); 61 props.load(in); 62 in.close(); 63 64 it = props.keySet().iterator(); 65 while (it.hasNext()) { 66 String val = (String ) it.next(); 67 if (!val.startsWith("#")) { 68 testClassList.add(val); 69 } 70 } 71 72 runTest2(createTestInstances(testClassList), createCacheInstances(cacheClassList), testCount); 73 74 } catch (Exception e) { 75 e.printStackTrace(); 76 return; 77 } 78 79 80 } 81 85 91 private static void runTest2(List testList, List cacheList, int testCount) { 92 93 logln("---------------------------------------------------------------"); 94 logln("java.version=" + System.getProperty("java.version")); 95 logln("java.vm.name=" + System.getProperty("java.vm.name")); 96 logln("java.vm.version=" + System.getProperty("java.vm.version")); 97 logln("java.vm.info=" + System.getProperty("java.vm.info")); 98 logln("java.vm.vendor=" + System.getProperty("java.vm.vendor")); 99 logln("os.name=" + System.getProperty("os.name")); 100 logln("os.version=" + System.getProperty("os.version")); 101 logln("os.arch=" + System.getProperty("os.arch")); 102 logln("---------------------------------------------------------------"); 103 logln("This test can take about 5-10 minutes. Please wait ..."); 104 logln("---------------------------------------------------------------"); 105 log(fill("", 14) + "|"); 106 printTestList(testList); 107 logln("---------------------------------------------------------------"); 108 109 110 for (int j = 0; j < cacheList.size(); j++) { 111 ICache cache = (ICache) cacheList.get(j); 112 113 for (int tc = 0; tc < testCount; tc++) { 114 log(fill(cache.getCacheName(), 14) + "|"); 115 for (int i = 0, indx = testList == null ? 0 : testList.size(); i < indx; i++) { 116 ITest test = (ITest) testList.get(i); 117 118 try { 119 cache.init(); 120 test.init(cache); 121 122 long start = System.currentTimeMillis(); 123 test.test(); 124 long stop = System.currentTimeMillis(); 125 126 log(fill("" + (stop - start), 15) + "|"); 127 128 } catch (Throwable t) { 129 t.printStackTrace(); 130 break; 131 } finally { 132 test.destroy(); 133 cache.destroy(); 134 } 135 } 136 logln(""); 137 } 138 } 139 logln("---------------------------------------------------------------"); 140 } 141 142 147 private static List createCacheInstances(List classList) { 148 List rez = new ArrayList (); 149 for (int i = 0, indx = classList == null ? 0 : classList.size(); i < indx; i++) { 150 String cl = (String ) classList.get(i); 151 Object obj = null; 152 try { 153 obj = Class.forName(cl).newInstance(); 154 } catch (Exception e) { 155 e.printStackTrace(); 156 } 157 158 if ((obj instanceof ICache)) { 159 rez.add(obj); 160 } else { 161 logln("Class:" + cl + " not instance of " + ICache.class.getName()); 162 } 163 } 164 165 return rez; 166 } 167 168 173 private static List createTestInstances(List classList) { 174 List rez = new ArrayList (); 175 for (int i = 0, indx = classList == null ? 0 : classList.size(); i < indx; i++) { 176 String cl = (String ) classList.get(i); 177 Object obj = null; 178 try { 179 obj = Class.forName(cl).newInstance(); 180 } catch (Exception e) { 181 e.printStackTrace(); 182 } 183 184 if ((obj instanceof ITest)) { 185 rez.add(obj); 186 } else { 187 logln("Class:" + cl + " not instance of " + ITest.class.getName()); 188 } 189 } 190 191 return rez; 192 } 193 194 197 private static void printTestList(List testList) { 198 for (int i = 0, indx = testList == null ? 0 : testList.size(); i < indx; i++) { 199 ITest test = (ITest) testList.get(i); 200 log(fill(test.getTestName(), 15) + "|"); 201 } 202 logln(""); 203 } 204 205 206 211 private static String fill(String src, int count) { 212 src = src == null ? "" : src; 213 StringBuffer buf = new StringBuffer (src); 214 while (buf.length() < count) { 215 buf.append(' '); 216 } 217 218 return buf.toString(); 219 } 220 221 224 private static void log(String s) { 225 System.out.print(s); 226 } 227 228 231 private static void logln(String s) { 232 System.out.println(s); 233 } 234 235 } | Popular Tags |