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