requests-simulator

Details

diff --git a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Simulator.java b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Simulator.java
index fb67c0a..e9ef3e4 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Simulator.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/requestssimulator/Simulator.java
@@ -37,15 +37,18 @@ public class Simulator {
             logger.log(Level.SEVERE, "informed {0} users. Using 1", users);
             users = 1;
         }
+        long startTime = System.currentTimeMillis();
+        int requestsSize = 1;
         try {
-            long count = Files.lines(Paths.get(path)).count();
-            logger.log(Level.INFO, "requesting {0} URLS", count);
+            logger.log(Level.INFO, "requesting {0} URLS", requestsSize);
             if (users == 1) {
+                requestsSize = (int) Files.lines(Paths.get(path)).count();
                 Stream<String> lines = Files.lines(Paths.get(path));
+                startTime = System.currentTimeMillis();
                 lines.forEach(new RequestProcesser());
             } else {
                 List<String> requests = Files.readAllLines(Paths.get(path));
-                int requestsSize = requests.size();
+                requestsSize = requests.size();
                 int inclusiveStart = 0;
                 int partitionSize = requestsSize / users;
                 if (partitionSize < 1) {
@@ -53,6 +56,7 @@ public class Simulator {
                     logger.log(Level.SEVERE, "more users {0} than requests {1}. Using {1} users", new Object[]{users, requests.size()});
                 }
                 Collection<Thread> threads = new ArrayList<>();
+                startTime = System.currentTimeMillis();
                 while (inclusiveStart < requestsSize) {
                     int exclusiveEnd = inclusiveStart + partitionSize;
                     Thread thread = new Thread(new PartitionProcesser(requests, inclusiveStart, exclusiveEnd));
@@ -71,6 +75,14 @@ public class Simulator {
         } catch (IOException ex) {
             logger.log(Level.SEVERE, "cannot open file {0}", path);
         }
+        long endTime = System.currentTimeMillis();
+        long executionTime = startTime - endTime;
+        int milliseconds = (int) (executionTime % 1000);
+        int seconds = (int) (executionTime / 1000) % 60;
+        int minutes = (int) ((executionTime / (1000 * 60)) % 60);
+        double throughput = requestsSize / (double) seconds;
+        System.out.println("Execution Time: " + minutes + ":" + seconds + "." + milliseconds + " minutes");
+        System.out.println("Throughput: " + throughput + " requests per second");
     }
 
     private static class RequestProcesser implements Consumer<String> {