shjung 2 年之前
父节点
当前提交
a3a5e4831b
共有 1 个文件被更改,包括 28 次插入0 次删除
  1. 28 0
      src/main/java/com/its/traf/ui/MainUI.java

+ 28 - 0
src/main/java/com/its/traf/ui/MainUI.java

@@ -29,6 +29,7 @@ import java.io.IOException;
 import java.lang.management.ManagementFactory;
 import java.lang.management.ManagementFactory;
 import java.util.List;
 import java.util.List;
 import java.util.*;
 import java.util.*;
+import java.util.concurrent.TimeUnit;
 
 
 @Slf4j
 @Slf4j
 @Getter
 @Getter
@@ -79,6 +80,13 @@ public class MainUI {
         long memoryUsage = Math.round(((double) (osBean.getTotalPhysicalMemorySize() - osBean.getFreePhysicalMemorySize())) / (double) osBean.getTotalPhysicalMemorySize() * 100.0);
         long memoryUsage = Math.round(((double) (osBean.getTotalPhysicalMemorySize() - osBean.getFreePhysicalMemorySize())) / (double) osBean.getTotalPhysicalMemorySize() * 100.0);
         lblMemoryUsage.setText(String.valueOf(memoryUsage));
         lblMemoryUsage.setText(String.valueOf(memoryUsage));
         double cpuLoad = osBean.getSystemCpuLoad();
         double cpuLoad = osBean.getSystemCpuLoad();
+//        long t = System.currentTimeMillis();
+//        while ((System.currentTimeMillis() < t + 5000)) {
+//            if (cpuLoad >= 0.0 && cpuLoad <= 1.0) {
+//                break;
+//            }
+//            cpuLoad = osBean.getSystemCpuLoad();
+//        }
         if (cpuLoad >= 0.0 && cpuLoad <= 1.0) {
         if (cpuLoad >= 0.0 && cpuLoad <= 1.0) {
             lblCpuRate.setText(String.valueOf(Math.round(cpuLoad * 100.0)));
             lblCpuRate.setText(String.valueOf(Math.round(cpuLoad * 100.0)));
         } else {
         } else {
@@ -86,6 +94,24 @@ public class MainUI {
         }
         }
     }
     }
 
 
+    public float getCpuUsed() {
+        OperatingSystemMXBean osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+        long previousJvmProcessCpuTime = osMXBean.getProcessCpuTime();
+        int sleepTime = 350;
+        try {
+            TimeUnit.MILLISECONDS.sleep(sleepTime);
+        } catch (InterruptedException e) {
+            log.error("InterruptedException occurred while MemoryCollector sleeping...");
+        }
+        long elapsedProcessCpuTime = osMXBean.getProcessCpuTime() - previousJvmProcessCpuTime;
+        long elapsedJvmUptime = sleepTime;
+        //long totalElapsedJvmUptime = elapsedJvmUptime * osMXBean.getAvailableProcessors() ;
+        long totalElapsedJvmUptime = elapsedJvmUptime;
+        //System.out.println("echo cpu processors num " + osMXBean.getAvailableProcessors());
+        float cpuUsage = elapsedProcessCpuTime / (totalElapsedJvmUptime * 10000F);
+        return (float) (Math.round(cpuUsage * 10) / 10);
+    }
+
     public MainUI(JFrame jFrame) {
     public MainUI(JFrame jFrame) {
         System.setProperty("awt.useSystemAAFontSettings", "false"); // AntiAliasing false
         System.setProperty("awt.useSystemAAFontSettings", "false"); // AntiAliasing false
 
 
@@ -198,6 +224,7 @@ public class MainUI {
         }
         }
         return true;
         return true;
     }
     }
+
     /**
     /**
      * 목록 헤더 생성
      * 목록 헤더 생성
      */
      */
@@ -483,4 +510,5 @@ public class MainUI {
     public JComponent $$$getRootComponent$$$() {
     public JComponent $$$getRootComponent$$$() {
         return rootPanel;
         return rootPanel;
     }
     }
+
 }
 }