添加 JVM 参数选项

一IDE

Eclipse 和IDEA中配置简单,在 Run Configurations 中 VM Options 中配置即可,大同小异。

二 运行 jar 包

java -Xms100m -Xmx100m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -jar demo.jar

三 Tomcat 运行 war 包

# Linux 下tomcat/bin/catalina.sh 添加

JAVA_OPTS=“-Xms512M -Xmx1024M”

# windows下 catalina.bat 添加

set “JAVA_OPTS=-Xms512M -Xmx1024M”

四 程序运行过程中

# 设置Boolean类型参数

jinfo -flag [+|-]

# 设置非Boolean类型参数

jinfo -flag =

五实战——运行过程中,哪些参数选项可以被修改

E:JVMDemo3>jps
7408 Jps
7300 RemoteMavenServer36
8356 Launcher
10364 OOMTest
7356

# 查看某个数值型参数
E:JVMDemo3>jinfo -flag InitialHeapSize 10364
-XX:InitialHeapSize=251658240

# 运行时,InitialHeapSize 参数不能被修改
E:JVMDemo3>jinfo -flag InitialHeapSize=10000 10364
Exception in thread "main" com.sun.tools.attach.AttachOperationFailedException: flag 'InitialHeapSize' cannot be changed
        at sun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:117)
        at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:261)
        at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:234)
        at sun.tools.jinfo.JInfo.flag(JInfo.java:134)
        at sun.tools.jinfo.JInfo.main(JInfo.java:81)

# 查看某个布尔型参数
E:JVMDemo3>jinfo -flag UseG1GC 10364
-XX:-UseG1GC

# 运行时,UseG1GC 参数不能被修改
E:JVMDemo3>jinfo -flag +UseG1GC 10364
Exception in thread "main" com.sun.tools.attach.AttachOperationFailedException: flag 'UseG1GC' cannot be changed
        at sun.tools.attach.WindowsVirtualMachine.execute(WindowsVirtualMachine.java:117)
        at sun.tools.attach.HotSpotVirtualMachine.executeCommand(HotSpotVirtualMachine.java:261)
        at sun.tools.attach.HotSpotVirtualMachine.setFlag(HotSpotVirtualMachine.java:234)
        at sun.tools.jinfo.JInfo.flag(JInfo.java:140)
        at sun.tools.jinfo.JInfo.main(JInfo.java:81)

# 运行中能被修改的参数很少,仅下面这些
E:JVMDemo3>java -XX:+PrintFlagsFinal -version|find "manageable"
     intx CMSAbortablePrecleanWaitMillis            = 100                                 {manageable}
     intx CMSTriggerInterval                        = -1                                  {manageable}
     intx CMSWaitDuration                           = 2000                                {manageable}
     bool HeapDumpAfterFullGC                       = false                               {manageable}
     bool HeapDumpBeforeFullGC                      = false                               {manageable}
     bool HeapDumpOnOutOfMemoryError                = false                               {manageable}
    ccstr HeapDumpPath                              =                                     {manageable}
    uintx MaxHeapFreeRatio                          = 100                                 {manageable}
    uintx MinHeapFreeRatio                          = 0                                   {manageable}
     bool PrintClassHistogram                       = false                               {manageable}
     bool PrintClassHistogramAfterFullGC            = false                               {manageable}
     bool PrintClassHistogramBeforeFullGC           = false                               {manageable}
     bool PrintConcurrentLocks                      = false                               {manageable}
     bool PrintGC                                   = false                               {manageable}
     bool PrintGCDateStamps                         = false                               {manageable}
     bool PrintGCDetails                            = false                               {manageable}
     bool PrintGCID                                 = false                               {manageable}
     bool PrintGCTimeStamps                         = false                               {manageable}
java version "1.8.0_251"
Java(TM) SE Runtime Environment (build 1.8.0_251-b08)
Java HotSpot(TM) 64-Bit Server VM (build 25.251-b08, mixed mode)

# 运行中,HeapDumpAfterFullGC 可以被修改
E:JVMDemo3>jinfo -flag HeapDumpAfterFullGC 10364
-XX:-HeapDumpAfterFullGC

E:JVMDemo3>jinfo -flag +HeapDumpAfterFullGC 10364

E:JVMDemo3>jinfo -flag HeapDumpAfterFullGC 10364
-XX:+HeapDumpAfterFullGC

# 运行中,HeapDumpPath 可以被修改
E:JVMDemo3>jinfo -flag HeapDumpPath 10364
-XX:HeapDumpPath=

E:JVMDemo3>jinfo -flag HeapDumpPath=d:/ 10364

E:JVMDemo3>jinfo -flag HeapDumpPath 10364
-XX:HeapDumpPath=d:/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: idea的JVM参数可以在运行/调试配置中进行配置。 具体步骤如下: 1. 打开IntelliJ IDEA。 2. 点击菜单栏的"Run",选择"Edit Configurations"(或者按下Shift + Alt + F10)。 3. 在左侧的配置列表中选择你要配置JVM参数的配置项,例如"Application"。 4. 在右侧的配置面板中,找到"VM options"(或者"VM options"),点击右侧的"+"图标添加JVM参数。 5. 在弹出的对话框中,输入你想要配置的JVM参数,例如"-Xmx512m"(表示设置最大堆内存为512MB)。 6. 点击"OK"保存配置。 这样,在运行或者调试你的应用程序时,IDEA会使用你配置的JVM参数。 需要注意的是,不同的配置项可能有不同的配置方式,具体的JVM参数配置取决于你使用的配置项类型。所以建议在配置JVM参数之前,先了解清楚你要配置的那个配置项的具体配置方式。 ### 回答2: 在Java虚拟机(JVM)中,可以通过命令行参数或配置文件来配置JVM参数。具体来说,可以在以下位置配置JVM参数: 1. 命令行参数:可以在命令行中使用"-D"选项来配置JVM参数。例如,可以使用"java -D参数名=参数值"的命令来配置JVM参数。这些参数会直接传递给JVM,并在程序运行时生效。 2. 环境变量:可以通过设置JVM相关的环境变量来配置JVM参数。例如,可以使用"export 参数名=参数值"的命令来设置环境变量,在程序启动时JVM会读取这些环境变量并加载对应的参数。 3. 配置文件:可以通过修改JVM的配置文件来配置JVM参数。不同的JVM实现可能有不同的配置文件,常见的包括"jvm.ini"、"jvm.conf"或"jvm.properties"等。通过编辑这些文件并添加或修改相应的参数,可以配置JVM的行为。 需要注意的是,JVM参数可以根据具体的需求进行不同的配置。其中一些常见的JVM参数包括堆内存大小、垃圾回收策略、类路径、编译优化等。这些参数的配置可以对程序的性能和行为产生重要影响,因此需要根据实际情况进行合理的调整和配置。 ### 回答3: Idea的JVM参数可以在其安装目录下的bin目录中的idea64.exe.vmoptions或idea.exe.vmoptions文件中配置。 可以按照以下步骤进行配置: 1. 首先,找到你的Idea安装目录,进入bin目录。 2. 在该目录下,你可以看到两个文件:idea64.exe.vmoptions和idea.exe.vmoptions。前者适用于64位操作系统,后者适用于32位操作系统。 3. 打开适用于你系统的文件(通过右键单击并选择"编辑"或使用任何文本编辑器打开)。 4. 在打开的文件中,你可以看到一系列以"-D"开头的行,每行都表示一个JVM参数。在这里你可以添加、修改或删除参数。 5. 添加/修改参数后,保存文件并重新启动Idea,新的JVM参数将生效。 请注意,修改JVM参数可能对Idea的性能和行为产生重大影响,因此在修改之前建议备份原始文件。同时,确保你理解所做更改的含义和影响,以免引起其他问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值