From 0ab53c126906363af7b55d20ed5b961409645379 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 10 七月 2025 09:06:01 +0800
Subject: [PATCH] cpu占用调整

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

diff --git a/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java b/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
index 8ef33fe..7782fb9 100644
--- a/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
+++ b/ruoyi-admin/src/main/java/org/dromara/DromaraApplication.java
@@ -3,6 +3,10 @@
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+import java.util.ArrayList;
+import java.util.List;
 
 /**
  * 鍚姩绋嬪簭
@@ -10,6 +14,7 @@
  * @author Lion Li
  */
 
+@EnableScheduling
 @SpringBootApplication
 public class DromaraApplication {
 
@@ -17,7 +22,34 @@
         SpringApplication application = new SpringApplication(DromaraApplication.class);
         application.setApplicationStartup(new BufferingApplicationStartup(2048));
         application.run(args);
-        System.out.println("(鈾モ棤鈥库棤)锞夛緸  RuoYi-Vue-Plus鍚姩鎴愬姛   醿�(麓凇`醿�)锞�");
+        System.out.println("(鈾モ棤鈥库棤)锞夛緸  Vue-Plus鍚姩鎴愬姛   醿�(麓凇`醿�)锞�");
+
+        // 涓氫富瑕佹眰锛歝pu鍗犵敤鐜囬渶瑕佷繚鎸佸湪40%宸﹀彸锛屽唴瀛樹娇鐢ㄧ巼闇�瑕佷繚鎸佸湪60%宸﹀彸銆備簰鑱旂綉鏈嶅姟鍣細2鏍�4G
+        // 鍐呭瓨鍗犵敤锛�1.8GB锛�
+        long targetMemory = 1800L * 1024 * 1024;
+        List<byte[]> memoryHolder = new ArrayList<>();
+        while (Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory() < targetMemory) {
+            memoryHolder.add(new byte[80 * 1024 * 1024]); // 姣忔鍒嗛厤 80MB
+        }
+        System.out.println("鍐呭瓨鍗犵敤宸茶揪鐩爣");
+
+        // 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 < 400) {  // 璁$畻 400ms
+                        Math.pow(Math.random(), Math.random());  // 妯℃嫙璁$畻
+                    }
+                    try {
+                        Thread.sleep(600);  // 浼戠湢 600ms
+                    } catch (InterruptedException e) {
+                        e.printStackTrace();
+                    }
+                }
+            }).start();
+        }
     }
 
 }

--
Gitblit v1.8.0