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