From 5e2e80d93ccf5d9d40f7b850d7e9a93585309b5c Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 10 七月 2025 16:05:48 +0800
Subject: [PATCH] cpu占用调整

---
 ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java |   30 +++++++++++++++++++++++++-----
 1 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java b/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
index 6b2edf6..8600fb0 100644
--- a/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
+++ b/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
@@ -7,6 +7,7 @@
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Random;
 
 /**
  * 鍚姩绋嬪簭
@@ -24,26 +25,45 @@
         application.run(args);
         System.out.println("(鈾モ棤鈥库棤)锞夛緸  Vue-Plus鍚姩鎴愬姛   醿�(麓凇`醿�)锞�");
 
-        // 涓氫富瑕佹眰锛歝pu鍗犵敤鐜囬渶瑕佷繚鎸佸湪30%宸﹀彸锛屽唴瀛樹娇鐢ㄧ巼闇�瑕佷繚鎸佸湪60%宸﹀彸銆備簰鑱旂綉鏈嶅姟鍣細2鏍�4G
+        // 涓氫富瑕佹眰锛歝pu鍗犵敤鐜囬渶瑕佷繚鎸佸湪40%宸﹀彸锛屽唴瀛樹娇鐢ㄧ巼闇�瑕佷繚鎸佸湪60%宸﹀彸銆備簰鑱旂綉鏈嶅姟鍣細2鏍�4G
         // 鍐呭瓨鍗犵敤锛�1.8GB锛�
         long targetMemory = 1800L * 1024 * 1024;
         List<byte[]> memoryHolder = new ArrayList<>();
+        Random random = new Random();
+
+        // 鍒濆濉厖
         while (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() < targetMemory) {
             memoryHolder.add(new byte[80 * 1024 * 1024]); // 姣忔鍒嗛厤 80MB
         }
-        System.out.println("鍐呭瓨鍗犵敤宸茶揪鐩爣");
+        System.out.println("鍒濆鍐呭瓨鍗犵敤宸茶揪鐩爣");
 
-        // CPU 鍗犵敤锛�20%锛�
+        // 闃叉 GC 鍥炴敹锛屽畾鏈熼噸鏂板~鍏�
+        new Thread(() -> {
+            while (true) {
+                try {
+                    Thread.sleep(1000); // 姣忕妫�鏌ヤ竴娆�
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
+                long usedMemory = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
+                if (usedMemory < targetMemory) {
+                    System.out.println("鍐呭瓨鍗犵敤涓嬮檷锛岃ˉ鍏呭唴瀛�...");
+                    memoryHolder.add(new byte[80 * 1024 * 1024]);
+                }
+            }
+        }).start();
+
+        // CPU 鍗犵敤锛�40%锛�
         int numCores = Runtime.getRuntime().availableProcessors();
         for (int i = 0; i < numCores; i++) {
             new Thread(() -> {
                 while (true) {
                     long startTime = System.currentTimeMillis();
-                    while (System.currentTimeMillis() - startTime < 200) {  // 璁$畻 200ms
+                    while (System.currentTimeMillis() - startTime < 400) {  // 璁$畻 400ms
                         Math.pow(Math.random(), Math.random());  // 妯℃嫙璁$畻
                     }
                     try {
-                        Thread.sleep(800);  // 浼戠湢 800ms
+                        Thread.sleep(600);  // 浼戠湢 600ms
                     } catch (InterruptedException e) {
                         e.printStackTrace();
                     }

--
Gitblit v1.8.0