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 c08c18d07ec090a9d02ebfc908960a1b11f6f41c..c518950fb82f7903baa16d94e5c6a5c2daeb6030 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 @@ -2,12 +2,14 @@ package cz.it4i.fiji.haas_spim_benchmark.core; import java.io.BufferedReader; import java.io.FileNotFoundException; +import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.InvalidPathException; import java.nio.file.Path; import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; import java.text.MessageFormat; import java.util.Arrays; import java.util.Collection; @@ -230,9 +232,12 @@ public class BenchmarkJobManager { List<ResultFileTask> identifiedTasks = new LinkedList<ResultFileTask>(); + final String newLineSeparator = "\n"; + final String delimiter = ";"; + final String summaryFileHeader = "Task;MemoryUsage;WallTime;JobCount"; + try { String line = null; - final String separator = ";"; ResultFileTask processedTask = null; List<ResultFileJob> jobs = new LinkedList<>(); @@ -245,7 +250,7 @@ public class BenchmarkJobManager { continue; } - String[] columns = line.split(separator); + String[] columns = line.split(delimiter); if (columns[0].equals(Constants.STATISTICS_TASK_NAME)) { @@ -284,12 +289,29 @@ public class BenchmarkJobManager { } catch (IOException e) { log.error(e.getMessage(), e); - } + } - for (ResultFileTask task : identifiedTasks) { - Object[] args = {Constants.STATISTICS_TASK_NAME_MAP.get(task.name), task.getJobCount(), task.getAverageMemoryUsage()}; - MessageFormat fmt = new MessageFormat(Constants.STATISTICS_OUTPUT_MESSAGE); - System.out.println(fmt.format(args)); + FileWriter fileWriter = null; + try { + fileWriter = new FileWriter(filename.getParent().toString() + "/" + Constants.STATISTICS_SUMMARY_FILENAME); + fileWriter.append(summaryFileHeader).append(newLineSeparator); + + for (ResultFileTask task : identifiedTasks) { + fileWriter.append(Constants.STATISTICS_TASK_NAME_MAP.get(task.name)).append(delimiter); + fileWriter.append(Double.toString(task.getAverageMemoryUsage())).append(delimiter); + fileWriter.append(Double.toString(task.getAverageWallTime())).append(delimiter); + fileWriter.append(Integer.toString(task.getJobCount())); + fileWriter.append(newLineSeparator); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } finally { + try { + fileWriter.flush(); + fileWriter.close(); + } catch (Exception e) { + log.error(e.getMessage(), e); + } } } 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 0e4f436ca65c9eb2174a0d2d91496394c1bf2248..06779ad9b2b18522c326b6422896a557ad820907 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 @@ -37,5 +37,5 @@ public interface Constants { put("hdf5_xml_output", "Define hdf5 output"); put("resave_hdf5_output", "Resave output to hdf5"); }}; - String STATISTICS_OUTPUT_MESSAGE = "{0} needed {1} {1,choice,0#jobs|1#job|1<jobs} and {2} MB of memory in average."; + String STATISTICS_SUMMARY_FILENAME = "summary.csv"; }