From a8eb3d767cc90a4f159432029e029ea81d1ee7fe Mon Sep 17 00:00:00 2001
From: Unknown <petr.bainar@hotmail.com>
Date: Thu, 25 Jan 2018 16:43:39 +0100
Subject: [PATCH] formatStatistics: implementing a summary csv file creation

---
 .../core/BenchmarkJobManager.java             | 36 +++++++++++++++----
 .../haas_spim_benchmark/core/Constants.java   |  2 +-
 2 files changed, 30 insertions(+), 8 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 c08c18d0..c518950f 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 0e4f436c..06779ad9 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";
 }
-- 
GitLab