From 066a25b0168dbd0b3cd6e35db2d0e084c96eacd6 Mon Sep 17 00:00:00 2001 From: Unknown <petr.bainar@hotmail.com> Date: Thu, 25 Jan 2018 09:32:05 +0100 Subject: [PATCH] formatStatistics: small and rather cute refactoring --- .../core/BenchmarkJobManager.java | 36 +++++++++++-------- .../haas_spim_benchmark/core/Constants.java | 5 +++ 2 files changed, 27 insertions(+), 14 deletions(-) diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java index f6b5f029..51f57f4c 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/BenchmarkJobManager.java @@ -8,6 +8,7 @@ import java.nio.file.Files; import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.nio.file.Paths; +import java.text.MessageFormat; import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; @@ -234,7 +235,7 @@ public class BenchmarkJobManager { final String separator = ";"; ResultFileTask processedTask = null; - List<ResultFileJob> values = new LinkedList<>(); + List<ResultFileJob> jobs = new LinkedList<>(); BufferedReader reader = Files.newBufferedReader(filename); while (null != (line = reader.readLine())) { @@ -246,33 +247,38 @@ public class BenchmarkJobManager { String[] columns = line.split(separator); - if (columns[0].equals("Task name")) { + if (columns[0].equals(Constants.STATISTICS_TASK_NAME)) { + // If there is a task being processed, add all cached jobs to it and wrap it up if (null != processedTask ) { - processedTask.jobs.addAll(values); - + processedTask.jobs.addAll(jobs); identifiedTasks.add(processedTask); } + // Start processing a new task processedTask = new ResultFileTask(columns[1]); - values.clear(); + jobs.clear(); - } else if (columns[0].equals("job ids")) { + } else if (columns[0].equals(Constants.STATISTICS_JOB_IDS)) { + + // Cache all found jobs for (int i = 1; i < columns.length; i++) { - values.add(new ResultFileJob(columns[i])); + jobs.add(new ResultFileJob(columns[i])); } - } else if (!columns[0].equals("jobs #")) { + + } else if (!columns[0].equals(Constants.STATISTICS_JOB_COUNT)) { + + // Save values of a given property to cached jobs for (int i = 1; i < columns.length; i++) { - ResultFileJob resultFileJob; - resultFileJob = values.get(i - 1); - resultFileJob.setValue(columns[0], columns[i]); + jobs.get(i - 1).setValue(columns[0], columns[i]); } + } } + // If there is a task being processed, add all cached jobs to it and wrap it up if (null != processedTask ) { - processedTask.jobs.addAll(values); - + processedTask.jobs.addAll(jobs); identifiedTasks.add(processedTask); } @@ -281,7 +287,9 @@ public class BenchmarkJobManager { } for (ResultFileTask task : identifiedTasks) { - System.out.println("Task " + task.name + " needed " + task.getJobCount() + " jobs and " + task.getAverageMemoryUsage() +" MB of memory in average."); + Object[] args = {task.name, task.getJobCount(), task.getAverageMemoryUsage()}; + MessageFormat fmt = new MessageFormat(Constants.STATISTICS_OUTPUT_MESSAGE); + System.out.println(fmt.format(args)); } } diff --git a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/Constants.java b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/Constants.java index 65124a7c..c5916d28 100644 --- a/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/Constants.java +++ b/haas-spim-benchmark/src/main/java/cz/it4i/fiji/haas_spim_benchmark/core/Constants.java @@ -12,7 +12,12 @@ public interface Constants { String CONFIG_YAML = "config.yaml"; String BENCHMARK_RESULT_FILE = "benchmark_result.csv"; + String STATISTICS_TASK_NAME = "Task name"; + String STATISTICS_JOB_IDS = "job ids"; + String STATISTICS_JOB_COUNT = "jobs #"; String STATISTICS_RESOURCES_MEMORY_USAGE = "resources_used.mem"; String STATISTICS_RESOURCES_WALL_TIME = "resources_used.walltime"; String STATISTICS_RESOURCES_CPU_PERCENTAGE = "resources_used.cpupercent"; + + String STATISTICS_OUTPUT_MESSAGE = "Task {0} needed {1} {1,choice,0#jobs|1#job|1<jobs} and {2} MB of memory in average."; } -- GitLab