diff --git a/pom.xml b/pom.xml
index 0ed5aa39e..1e5f5bfa0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -5,7 +5,7 @@
liteflow
jar
4.0.0
- 1.2.20
+ 1.2.20-SNAPSHOT
UTF-8
diff --git a/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java b/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java
index 9c7e06808..8e6d1768b 100644
--- a/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java
+++ b/src/main/java/com/thebeastshop/liteflow/monitor/MonitorBus.java
@@ -11,13 +11,19 @@ package com.thebeastshop.liteflow.monitor;
import java.math.BigDecimal;
import java.math.RoundingMode;
+import java.text.MessageFormat;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.TimerTask;
import java.util.Map.Entry;
import java.util.Timer;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.commons.collections4.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -39,7 +45,7 @@ public class MonitorBus {
public void run() {
MonitorBus.printStatistics();
}
- }, 5*60*1000L, 5*60*1000L);
+ }, 1*60*1000L, 5*60*1000L);
}
public static void addStatistics(CompStatistics statistics){
@@ -68,19 +74,40 @@ public class MonitorBus {
compAverageTimeSpent.put(entry.getKey(), new BigDecimal(totalTimeSpent).divide(new BigDecimal(entry.getValue().size()), 2, RoundingMode.HALF_UP).longValue());
compAverageMemorySpent.put(entry.getKey(), new BigDecimal(totalMemorySpent).divide(new BigDecimal(entry.getValue().size()), 2, RoundingMode.HALF_UP).longValue());
}
- System.out.println("======================================================================================");
- System.out.println("===================================SLOT INFO==========================================");
- System.out.println("SLOT TOTAL SIZE : "+DataBus.SLOT_SIZE);
- System.out.println("SLOT OCCUPY COUNT : "+DataBus.OCCUPY_COUNT);
- System.out.println("===============================TIME AVERAGE SPENT=====================================");
- for(Entry entry : compAverageTimeSpent.entrySet()){
- System.out.println("COMPONENT["+entry.getKey()+"] AVERAGE TIME SPENT : " + entry.getValue());
+
+ List> compAverageTimeSpentEntryList = new ArrayList<>(compAverageTimeSpent.entrySet());
+ List> compAverageMemorySpentEntryList = new ArrayList<>(compAverageMemorySpent.entrySet());
+
+ Collections.sort(compAverageTimeSpentEntryList,new Comparator>() {
+ @Override
+ public int compare(Entry o1, Entry o2) {
+ return o2.getValue().compareTo(o1.getValue());
+ }
+ });
+
+ Collections.sort(compAverageMemorySpentEntryList,new Comparator>() {
+ @Override
+ public int compare(Entry o1, Entry o2) {
+ return o2.getValue().compareTo(o1.getValue());
+ }
+ });
+
+ StringBuilder logStr = new StringBuilder();
+ logStr.append("以下为LiteFlow中间件统计信息:\n");
+ logStr.append("======================================================================================\n");
+ logStr.append("===================================SLOT INFO==========================================\n");
+ logStr.append(MessageFormat.format("SLOT TOTAL SIZE : {0}\n", DataBus.SLOT_SIZE));
+ logStr.append(MessageFormat.format("SLOT OCCUPY COUNT : {0}\n", DataBus.OCCUPY_COUNT));
+ logStr.append("===============================TIME AVERAGE SPENT=====================================\n");
+ for(Entry entry : compAverageTimeSpentEntryList){
+ logStr.append(MessageFormat.format("COMPONENT[{0}] AVERAGE TIME SPENT : {1}\n", entry.getKey(), entry.getValue()));
}
- System.out.println("==============================MEMORY AVERAGE SPENT====================================");
- for(Entry entry : compAverageMemorySpent.entrySet()){
- System.out.println("COMPONENT["+entry.getKey()+"] AVERAGE MEMORY SPENT : "+ new BigDecimal(entry.getValue()).divide(new BigDecimal(1024), 2, RoundingMode.HALF_UP) + "K");
+ logStr.append("==============================MEMORY AVERAGE SPENT====================================\n");
+ for(Entry entry : compAverageMemorySpentEntryList){
+ logStr.append(MessageFormat.format("COMPONENT[{0}] AVERAGE MEMORY SPENT : {1}K\n", entry.getKey(), new BigDecimal(entry.getValue()).divide(new BigDecimal(1024), 2, RoundingMode.HALF_UP)));
}
- System.out.println("======================================================================================");
+ logStr.append("======================================================================================\n");
+ LOG.info(logStr.toString());
}catch(Exception e){
LOG.error("print statistics cause error",e);
}