package se.kth.karamel.backend.stats; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import java.util.Map; import org.apache.log4j.Logger; import se.kth.karamel.common.util.Settings; /** * * @author Hooman */ public class ClusterStatistics { public static final String DEFAULT_TIME_STAT_FILE_DIR = Settings.KARAMEL_ROOT_PATH; private static String fileName = null; private static FileWriter writer = null; private static String experimentName = ""; private final static Map<String, Long> timeStats = new HashMap<>(); private static final Logger logger = Logger.getLogger(ClusterStatistics.class); private static long startTime = 0; public static void addTimeStat(String key, long time) { timeStats.put(key, time); logger.debug(String.format("%s time: %d", key, time)); try { if (fileName != null) { if (writer == null) { writer = new FileWriter(new File(DEFAULT_TIME_STAT_FILE_DIR + "/" + fileName), true); } } writer.append(String.format("%s,%s,%d\n", experimentName, key, time)); writer.flush(); } catch (IOException ex) { logger.error(ex.getMessage(), ex); } } public static void startTimer() { startTime = System.currentTimeMillis(); } public static long stopTimer() { return System.currentTimeMillis() - startTime; } /** * @param aFileName the fileName to set */ public static void setFileName(String aFileName) { fileName = aFileName; } /** * @param aExperimentName the experimentName to set */ public static void setExperimentName(String aExperimentName) { experimentName = aExperimentName; } }