Ignore:
Timestamp:
04/13/12 09:35:02 (13 years ago)
Author:
wojtekp
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • xssim/branches/tpiontek/src/simulator/stats/implementation/GSSimStatistics.java

    r263 r267  
    9999 
    100100        protected static final String RAW_TASKS_STATISTICS_OUTPUT_FILE_NAME = "Tasks.txt"; 
     101        protected static final String CATEGORY_TASKS_STATISTICS_OUTPUT_FILE_NAME = "TasksCategory.txt"; 
    101102        protected static final String JOBS_STATISTICS_OUTPUT_FILE_NAME = "Jobs.txt"; 
    102103 
     
    982983                ganttDiagramTaskSeriesCollection = new TaskSeriesCollection(); 
    983984                ganttDiagramWaitingTimeSeriesCollection = new TaskSeriesCollection(); 
     985                 
     986                HashMap<String, List<TaskStats>> cat_taskStats = new HashMap<String, List<TaskStats>>(); 
     987                 
    984988 
    985989                PrintStream taskStatsFile = null; 
     
    992996                } 
    993997 
     998                PrintStream taskCategoryStatsFile = null; 
     999                try { 
     1000                        File file = new File(outputFolderName + STATS_FILE_NAME_PREFIX + simulationIdentifier + "_" 
     1001                                        + CATEGORY_TASKS_STATISTICS_OUTPUT_FILE_NAME); 
     1002                        taskCategoryStatsFile = new PrintStream(new FileOutputStream(file)); 
     1003                } catch (IOException e) { 
     1004                        taskCategoryStatsFile = null; 
     1005                } 
     1006                 
    9941007                PrintStream jobStatsFile = null; 
    9951008                if (configuration.createjobsstatistics) { 
     
    10351048                                        taskStatsList.add(taskStats); 
    10361049                                } 
     1050                                 
     1051                                String taskID = task.getJobId(); 
     1052                                Integer taskGroupID = Integer.parseInt(taskID) % 4; 
     1053                                 
     1054                                List<TaskStats> taskCatStatsList= cat_taskStats.get(taskGroupID.toString()); 
     1055 
     1056                                if (taskCatStatsList == null) { 
     1057                                        taskCatStatsList = new ArrayList<TaskStats>(); 
     1058                                        cat_taskStats.put(taskGroupID.toString(), taskCatStatsList); 
     1059                                } 
     1060                                taskCatStatsList.add(taskStats); 
     1061                                 
     1062 
    10371063                        } 
    10381064                        if (configuration.createjobsstatistics && taskStatsList.size() > 0) { 
     
    10471073                        } 
    10481074                } 
    1049  
     1075                 
     1076                for(String catID: cat_taskStats.keySet()){ 
     1077                        TaskCategoryStats taskCatStats = createTaskCategoryStats(cat_taskStats.get(catID)); 
     1078                        if (taskCategoryStatsFile != null) { 
     1079                                Object txt = taskCatStats.serialize(serializer); 
     1080                                taskCategoryStatsFile.println(txt); 
     1081                        } 
     1082                } 
     1083 
     1084                 
    10501085                if (configuration.createsimulationstatistics) { 
    10511086                        accStats.makespan.add(maxCj); 
     
    10751110        } 
    10761111 
     1112        private TaskCategoryStats createTaskCategoryStats(List<TaskStats> tasksStats) { 
     1113 
     1114                String taskID = ((TaskStats) tasksStats.get(0)).getJobID(); 
     1115                String catID = String.valueOf(Integer.parseInt(taskID) % 4); 
     1116                TaskCategoryStats taskCatStats = new TaskCategoryStats(catID); 
     1117                double maxCj = 0; 
     1118 
     1119                for (int i = 0; i < tasksStats.size(); i++) { 
     1120 
     1121                        TaskStats task = (TaskStats) tasksStats.get(i); 
     1122                        taskCatStats.meanTaskStartTime.add(task.getStartTime()); 
     1123                        taskCatStats.meanTaskCompletionTime.add(task.getCompletionTime()); 
     1124                        maxCj = Math.max(maxCj, task.getCompletionTime()); 
     1125                        taskCatStats.meanTaskExecutionTime.add(task.getExecutionTime()); 
     1126                        taskCatStats.meanTaskWaitingTime.add(task.getWaitingTime()); 
     1127                        taskCatStats.meanTaskFlowTime.add(task.getFlowTime()); 
     1128                        taskCatStats.meanTaskGQ_WaitingTime.add(task.getGQ_WaitingTime()); 
     1129                        taskCatStats.lateness.add(task.getLateness()); 
     1130                        taskCatStats.tardiness.add(task.getTardiness()); 
     1131                } 
     1132                taskCatStats.makespan.add(maxCj); 
     1133 
     1134                return taskCatStats; 
     1135        } 
     1136         
    10771137        private JobStats createJobStats(List<TaskStats> tasksStats) { 
    10781138 
Note: See TracChangeset for help on using the changeset viewer.