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> {