新版idea如何開啟多臺JVM虛擬機的流程步驟
流程如下:
- 打開 IntelliJ IDEA: 啟動你的 IntelliJ IDEA。
- 打開新的項目或窗口: 可以打開一個新的項目,或者在當前項目中打開一個新的窗口。
- 配置新的運行/調(diào)試配置: 在 IntelliJ IDEA 的工具欄中,找到并點擊右側(cè)的編輯配置按鈕(位于運行/調(diào)試配置的旁邊,通常是一個小下拉箭頭)。
- 選擇 Edit Configurations: 在彈出的菜單中,選擇 "Edit Configurations"。
- 添加新的配置: 在打開的配置窗口左上角,點擊加號按鈕或復制按鈕,以添加一個新的配置。
- 選擇 Application 配置類型: 在彈出的菜單中,選擇 "Application" 配置類型。
- 配置新的運行/調(diào)試配置: 在右側(cè)的配置窗口中,配置以下參數(shù):
- Name(名稱): 為你的配置起一個名稱,以便區(qū)分。
- Main class(主類): 指定你的 Java 主類。
- VM options(虛擬機選項): 在這里輸入你想要配置的虛擬機選項,比如
-Duser.language=en
。 - Program arguments(程序參數(shù)): 如果你的程序需要參數(shù),可以在這里添加。
- 保存配置: 確保點擊窗口底部的 "OK" 按鈕來保存你的配置。
- 運行新的配置: 在 IntelliJ IDEA 的工具欄中選擇你剛剛配置的運行/調(diào)試配置,點擊運行按鈕。
通過以上步驟,你就可以在 IntelliJ IDEA 中同時運行多個不同的 JVM 虛擬機實例。你可以通過創(chuàng)建多個配置,每個配置對應一個虛擬機實例,方便地管理和切換。這在需要模擬多個環(huán)境或進行并發(fā)調(diào)試時非常有用。
手把手教學
1.看看自己的項目
2.可能開始的時候啥也沒有,就點Run Configuration Type
3.再點擊Edit Configurations...
4.點擊+號添加SpringBoot
5.主類選擇一下,一般就一個,點他選了就行。
6.然后點擊Modify Options 選擇添加add VM Options
7.點擊apply 再OK就有了?。?!
拓展:IDEA 設(shè)置啟動 JVM 參數(shù)
一、設(shè)置方式
1. 通過 IDEA 設(shè)置
2. 編輯配置文件
IDEA 安裝目錄 / bin 目錄,其中有兩個 vmoptions 文件,針對不同的 JDK 進行配置
二、參數(shù)說明
1. 通用參數(shù)說明
參數(shù) | 說明 |
---|---|
-Xms | 初始化堆內(nèi)存大小, eg. -Xms1G |
-Xmx | 堆內(nèi)存最大值,eg. -Xms1G,通常與 -Xms 設(shè)置相同的值 |
-XX:ReservedCodeCacheSize | “代碼緩存”,它是用來存儲已編譯方法生成的本地代碼。代碼緩存確實很少引起性能問題,但是一旦發(fā)生其影響可能是毀滅性的。如果代碼緩存被占滿,JVM會打印出一條警告消息,并切換到interpreted-only 模式:JIT編譯器被停用,字節(jié)碼將不再會被編譯成機器碼。因此,應用程序?qū)⒗^續(xù)運行,但運行速度會降低一個數(shù)量級,直到有人注意到這個問題。就像其他內(nèi)存區(qū)域一樣,我們可以自定義代碼緩存的大小。它們的參數(shù)都是字節(jié)值。eg. -XX:ReservedCodeCacheSize=240m |
-XX:InitialCodeCacheSize | “代碼緩存” 初始大小,eg. -XX:InitialCodeCacheSize=240m |
-XX:+UseCodeCacheFlushing | 如果代碼緩存不斷增長,例如,因為熱部署引起的內(nèi)存泄漏,那么提高代碼的緩存大小只會延緩其發(fā)生溢出。為了避免這種情況的發(fā)生,當代碼緩存被填滿時讓JVM放棄一些編譯代碼。通過使用這個參數(shù),我們至少可以避免當代碼緩存被填滿的時候 JVM 切換到 interpreted-only 模式, 該值默認是開啟的 |
-XX:+AutoBoxCacheMax | JVM 在加載 Integer 這個類時,會優(yōu)先加載靜態(tài)的代碼。當 JVM 進程啟動完畢后, -128 ~ +127 范圍的數(shù)字會被緩存起來,調(diào)用 valueOf 方法的時候,如果是這個范圍內(nèi)的數(shù)字,則直接從緩存取出。eg. -XX:AutoBoxCacheMax=20000 |
-XX:+AlwaysPreTouch | JAVA 進程啟動的時候,雖然我們可以為 JVM 指定合適的內(nèi)存大小,但是這些內(nèi)存操作系統(tǒng)并沒有真正的分配給 JVM ,而是等 JVM 訪問這些內(nèi)存的時候,才真正分配,這樣會造成以下問題。 GC 的時候,新生代的對象要晉升到老年代的時候,需要內(nèi)存,這個時候操作系統(tǒng)才真正分配內(nèi)存,這樣就會加大 young gc 的停頓時間; 可能存在內(nèi)存碎片的問題??梢栽?JVM 啟動的時候, eg. -XX:+AlwaysPreTouch |
-XX:PermSize | JVM 初始分配的非堆內(nèi)存,就是永久代,JDK 1.7 適用。 eg. -XX:PermSize=64M |
-XX:MaxPermSize | JVM 最大允許分配的非堆內(nèi)存,按需分配, JDK 1.7 適用,eg. -XX:MaxPermSize=128M |
-XX:MetaspaceSize | 初始元空間大小,達到該值就會觸發(fā)垃圾收集進行類型卸載,同時 GC 會對該值進行調(diào)整:如果釋放了大量的空間,就適當降低該值;如果釋放了很少的空間,那么在不超過 MaxMetaspaceSize 時,適當提高該值, JDK 8 適用。eg. -XX:MetaspaceSize=128M |
-XX:MaxMetaspaceSize | 最大元空間,默認是沒有限制的,JDK 8 適用。 eg. -XX:MaxMetaspaceSize =128M |
2. 使用 CMS 垃圾回收
參數(shù) | 說明 |
---|---|
-XX:+UseConcMarkSweepGC | 采用 CMS 垃圾回收機制 |
3. 使用 G1 垃圾回收
參數(shù) | 說明 |
---|---|
-XX:+UseG1GC | G1 垃圾回收機制 |
-XX:+UseStringDeduplication | G1垃圾回收器的時候,通過該參數(shù)我們可以通過刪除重復的字符串,只保留一個char[]來優(yōu)化堆內(nèi)存。 |
三、樣例
1. 采用 CMS 垃圾回收
-server -Xms1024m -Xmx2048m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=512m -XX:+UseConcMarkSweepGC -XX:+UseCodeCacheFlushing -XX:SoftRefLRUPolicyMSPerMB=50 -ea -Dsun.io.useCanonCaches=false -Dsun.awt.keepWorkingSetOnMinimize=true -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djsse.enablesSNIExtension=false -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dfile.encoding=UTF-8 // -Duser.name=
2. 采用 G1垃圾回收配置
-server -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=512M -XX:+AlwaysPreTouch -Xms128m -Xmx4g -XX:ReservedCodeCacheSize=512m -XX:+UseG1GC -XX:+UseStringDeduplication -XX:AutoBoxCacheMax=20000 -ea -Dsun.io.useCanonCaches=false -Dsun.awt.keepWorkingSetOnMinimize=true -Djava.net.preferIPv4Stack=true -Djdk.http.auth.tunneling.disabledSchemes="" -Djsse.enablesSNIExtension=false -XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dfile.encoding=UTF-8 // -Duser.name=
到此這篇關(guān)于新版idea如何開啟多臺JVM虛擬機的流程步驟的文章就介紹到這了,更多相關(guān)idea開啟多臺JVM內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SpringBoot實現(xiàn)賬號登錄錯誤次數(shù)的限制和鎖定功能
本文介紹了如何使用SpringBoot和Redis實現(xiàn)賬號登錄錯誤次數(shù)限制和鎖定功能,通過自定義注解和AOP切面,結(jié)合配置文件靈活設(shè)置最大嘗試次數(shù)和鎖定時長,感興趣的朋友跟隨小編一起看看吧2024-12-12IDEA如何切換數(shù)據(jù)庫版本mysql5或mysql8
本文介紹了如何將IntelliJ IDEA從MySQL5切換到MySQL8的詳細步驟,包括下載MySQL8、安裝、配置、停止舊服務、啟動新服務以及更改密碼等2025-01-01SpringBoot中整合MyBatis-Plus-Join使用聯(lián)表查詢的實現(xiàn)
本文主要介紹了SpringBoot中整合MyBatis-Plus-Join使用聯(lián)表查詢的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-03-03在Java中如何決定使用 HashMap 還是 TreeMap
這篇文章主要介紹了在Java中如何決定使用 HashMap 還是 TreeMap,很多朋友對這樣的問題很迷茫,下面小編給大家?guī)硪黄恼聨椭蠹伊私?,需要的朋友可以參考?/div> 2019-10-10最新評論