当前位置: 代码网 > it编程>编程语言>Java > 新版idea如何开启多台JVM虚拟机的流程步骤

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

2024年10月25日 Java 我要评论
流程如下:打开 intellij idea: 启动你的 intellij idea。打开新的项目或窗口: 可以打开一个新的项目,或者在当前项目中打开一个新的窗口。配置新的运行/调试配置: 在 inte

流程如下:

  • 打开 intellij idea: 启动你的 intellij idea。
  • 打开新的项目或窗口: 可以打开一个新的项目,或者在当前项目中打开一个新的窗口。
  • 配置新的运行/调试配置: 在 intellij idea 的工具栏中,找到并点击右侧的编辑配置按钮(位于运行/调试配置的旁边,通常是一个小下拉箭头)。
  • 选择 edit configurations: 在弹出的菜单中,选择 "edit configurations"。
  • 添加新的配置: 在打开的配置窗口左上角,点击加号按钮或复制按钮,以添加一个新的配置。
  • 选择 application 配置类型: 在弹出的菜单中,选择 "application" 配置类型。
  • 配置新的运行/调试配置: 在右侧的配置窗口中,配置以下参数:
    • name(名称): 为你的配置起一个名称,以便区分。
    • main class(主类): 指定你的 java 主类。
    • vm options(虚拟机选项): 在这里输入你想要配置的虚拟机选项,比如 -duser.language=en
    • program arguments(程序参数): 如果你的程序需要参数,可以在这里添加。
  • 保存配置: 确保点击窗口底部的 "ok" 按钮来保存你的配置。
  • 运行新的配置: 在 intellij idea 的工具栏中选择你刚刚配置的运行/调试配置,点击运行按钮。

通过以上步骤,你就可以在 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内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com