package se252.jan15.calvinandhobbes.project0; import java.io.IOException; import java.io.InputStream; import java.net.InetSocketAddress; import java.net.MalformedURLException; import java.net.Proxy; import java.net.URL; import java.util.Random; class Benchmark extends Thread { public static int count = 0; public static String[] cats = {"Dining", "Cafe", "Sports", "Library", "Hostels", "Mess" , "Guest%20Houses", "Staff%20Houses", "Deparments", "Shops", "Banks%20and%20ATMs", "Telephone%20Office" , "Amenities"}; public Benchmark() {} private static synchronized void saveDiff(int microSec) { WinVMBenchmark.allDiffs[count++] = microSec; } public void run() { try { sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } //Windows RDBMS // String url = "http://52.74.42.188:8081/project0/dataRDBMS?category="+cats[new Random().nextInt(13)]; //SQS scalable String url = "http://ec2-52-74-81-189.ap-southeast-1.compute.amazonaws.com:8081/project0/dataProxy?category="+cats[new Random().nextInt(13)]; //Only SDB // String url = "http://ec2-52-74-81-189.ap-southeast-1.compute.amazonaws.com:8081/project0/dataSDB?category="+cats[new Random().nextInt(13)]; //Local Don't use this // String url = "http://10.16.240.89/project0/dataProxy?category="+cats[new Random().nextInt(13)]; long start = System.nanoTime(); getJSON(url); long diff = System.nanoTime() - start; int time = (int) (diff / 1000); saveDiff(time); } private static void getJSON(String url) { Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("proxy.iisc.ernet.in", 3128)); InputStream is; try { is = new URL(url).openConnection(proxy).getInputStream(); is.close(); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } } public class WinVMBenchmark { public static int[] allDiffs; public static void main(String[] args) { int totalThreads = 100; Benchmark[] allThreads = new Benchmark[totalThreads]; allDiffs = new int[totalThreads]; for(int i = 0; i < totalThreads; i++) { allThreads[i] = new Benchmark(); allDiffs[i] = 0; } System.out.println("Main:>>> Created "+totalThreads+" threads"); for(int i = 0; i < totalThreads; i++) { allThreads[i].start(); } System.out.println("Main:>>> Started all threads"); while(true) { if(Benchmark.count == totalThreads) break; else { try { System.out.print(Benchmark.count+","); Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } } } System.out.println("\n\n\n"); System.out.println("Main:>>> All threads processed"); for(int i = 0; i < totalThreads; i++) { System.out.println(allDiffs[i]); } } }