1 package tests.jfun.yan.benchmark; 6 7 import java.text.NumberFormat ; 8 9 public class BenchLauncher { 10 11 13 public void launch(Benchmark bench,int benchTimes) { 18 launch(bench,benchTimes,false); 19 } 20 21 public void launch(Benchmark bench, int benchTimes,boolean forceRun) { 22 long elapsed = 0; 23 double speed = 0, average = 0; 24 25 System.out.println("Benchmark of [" + (bench.getTitle()) + "]"); 26 for (int i = 0; i < benchTimes; i++) { 27 bench.start(forceRun); 28 elapsed += bench.getElapsed(); 29 speed += bench.getSpeed(); 30 average += bench.getAverage(); 31 rest(); 32 } 33 34 StringBuffer sb = new StringBuffer (); 36 NumberFormat nf = NumberFormat.getNumberInstance(); 37 sb.append(" - Loops:\t").append(nf.format(bench.getLoops())).append("\n"); 38 sb.append(" - Elapsed:\t").append(elapsed /(double)benchTimes).append(" ms\n"); 39 sb.append(" - Average:\t").append(average /(double)benchTimes).append(" ms/call\n"); 40 sb.append(" - Speed:\t").append(nf.format(speed/(double)benchTimes)).append(" calls/scond"); 41 42 System.out.println(sb.toString()); 43 44 } 45 46 public void rest() { 47 try { 48 Thread.sleep(100); 49 System.gc(); 50 Thread.sleep(100); 51 System.gc(); 52 Thread.sleep(100); 53 } catch (Exception e) { 54 55 } 56 } 57 58 } 59 | Popular Tags |