java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > idea开启多台JVM

新版idea如何开启多台JVM虚拟机的流程步骤

作者:五敷有你

在IntelliJ IDEA这个集成开发环境中(IDE),开启JVM(Java Virtual Machine)通常是在运行Java应用程序时的操作,本文给大家介绍了新版idea如何开启多台JVM虚拟机的流程步骤,需要的朋友可以参考下

流程如下:

通过以上步骤,你就可以在 IntelliJ IDEA 中同时运行多个不同的 JVM 虚拟机实例。你可以通过创建多个配置,每个配置对应一个虚拟机实例,方便地管理和切换。这在需要模拟多个环境或进行并发调试时非常有用。

手把手教学

1.看看自己的项目

2.可能开始的时候啥也没有,就点Run Configuration Type

3.再点击Edit Configurations...

4.点击+号添加SpringBoot

5.主类选择一下,一般就一个,点他选了就行。

6.然后点击Modify Options 选择添加add VM Options

7.点击apply 再OK就有了!!!

拓展:IDEA 设置启动 JVM 参数

一、设置方式

1. 通过 IDEA 设置

2. 编辑配置文件

IDEA 安装目录 / bin 目录,其中有两个 vmoptions 文件,针对不同的 JDK 进行配置

二、参数说明

1. 通用参数说明

参数说明
-Xms初始化堆内存大小, eg. -Xms1G
-Xmx堆内存最大值,eg. -Xms1G,通常与 -Xms 设置相同的值
-XX:ReservedCodeCacheSize“代码缓存”,它是用来存储已编译方法生成的本地代码。代码缓存确实很少引起性能问题,但是一旦发生其影响可能是毁灭性的。如果代码缓存被占满,JVM会打印出一条警告消息,并切换到interpreted-only 模式:JIT编译器被停用,字节码将不再会被编译成机器码。因此,应用程序将继续运行,但运行速度会降低一个数量级,直到有人注意到这个问题。就像其他内存区域一样,我们可以自定义代码缓存的大小。它们的参数都是字节值。eg. -XX:ReservedCodeCacheSize=240m
-XX:InitialCodeCacheSize“代码缓存” 初始大小,eg. -XX:InitialCodeCacheSize=240m
-XX:+UseCodeCacheFlushing如果代码缓存不断增长,例如,因为热部署引起的内存泄漏,那么提高代码的缓存大小只会延缓其发生溢出。为了避免这种情况的发生,当代码缓存被填满时让JVM放弃一些编译代码。通过使用这个参数,我们至少可以避免当代码缓存被填满的时候 JVM 切换到 interpreted-only 模式, 该值默认是开启的
-XX:+AutoBoxCacheMaxJVM 在加载 Integer 这个类时,会优先加载静态的代码。当 JVM 进程启动完毕后, -128 ~ +127 范围的数字会被缓存起来,调用 valueOf 方法的时候,如果是这个范围内的数字,则直接从缓存取出。eg. -XX:AutoBoxCacheMax=20000
-XX:+AlwaysPreTouchJAVA 进程启动的时候,虽然我们可以为 JVM 指定合适的内存大小,但是这些内存操作系统并没有真正的分配给 JVM ,而是等 JVM 访问这些内存的时候,才真正分配,这样会造成以下问题。 GC 的时候,新生代的对象要晋升到老年代的时候,需要内存,这个时候操作系统才真正分配内存,这样就会加大 young gc 的停顿时间; 可能存在内存碎片的问题。可以在 JVM 启动的时候, eg. -XX:+AlwaysPreTouch
-XX:PermSizeJVM 初始分配的非堆内存,就是永久代,JDK 1.7 适用。 eg. -XX:PermSize=64M
-XX:MaxPermSizeJVM 最大允许分配的非堆内存,按需分配, JDK 1.7 适用,eg. -XX:MaxPermSize=128M
-XX:MetaspaceSize初始元空间大小,达到该值就会触发垃圾收集进行类型卸载,同时 GC 会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过 MaxMetaspaceSize 时,适当提高该值, JDK 8 适用。eg. -XX:MetaspaceSize=128M
-XX:MaxMetaspaceSize最大元空间,默认是没有限制的,JDK 8 适用。 eg. -XX:MaxMetaspaceSize =128M

2. 使用 CMS 垃圾回收

参数说明
-XX:+UseConcMarkSweepGC采用 CMS 垃圾回收机制

3. 使用 G1 垃圾回收

参数说明
-XX:+UseG1GCG1 垃圾回收机制
-XX:+UseStringDeduplicationG1垃圾回收器的时候,通过该参数我们可以通过删除重复的字符串,只保留一个char[]来优化堆内存。

三、样例

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=

到此这篇关于新版idea如何开启多台JVM虚拟机的流程步骤的文章就介绍到这了,更多相关idea开启多台JVM内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文