logo
当前位置:首 页 > 软件使用 > 查看文章

IDEA中VM options参数设置和说明

软件使用 你是第2568个围观者 0条评论 供稿者: 标签:

打开Run Configurations界面

添加新的程序

 参数说明

  • -Xms1024m,设置JVM初始堆内存为1024m。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
  • -Xmx1024m,设置JVM最大堆内存为1024m。
  • -Xss512k,设置每个线程的栈大小。JDK5.0以后每个线程栈大小为1M,之前每个线程栈大小为256K。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会出现内存溢出的错误。
  • -Xmn341m,设置年轻代大小为341m。在整个堆内存大小确定的情况下,增大年轻代将会减小年老代,反之亦然。此值关系到JVM垃圾回收,对系统性能影响较大,官方推荐配置为整个堆大小的3/8。
  • -XX:NewSize=341m,设置年轻代初始值为341M。
  • -XX:MaxNewSize=341m,设置年轻代最大值为341M。
  • -XX:PermSize=512m,设置持久代初始值为512M,但在java8及之后就不支持了,改用-XX:MetaspaceSize=512m。
  • -XX:MaxPermSize=512m,设置持久代最大值为512M,同样在java8及之后就不支持了,改用-XX:MaxMetaspaceSize=512m。
  • -XX:NewRatio=2,设置年轻代(包括1个Eden和2个Survivor区)与年老代的比值。表示年轻代比年老代为1:2。
  • -XX:SurvivorRatio=8,设置年轻代中Eden区与Survivor区的比值。表示2个Survivor区(JVM堆内存年轻代中默认有2个大小相等的Survivor区)与1个Eden区的比值为1:1:8,即1个Survivor区占整个年轻代大小的1/10。
  • -XX:MaxTenuringThreshold=15,具体参看JVM系列之内存分配和回收策略中对象的衰老过程。
  • -XX:ReservedCodeCacheSize=240m,设置代码缓存的大小,用来存储已编译方法生成的本地代码。
  • -client,设置JVM使用Client模式,特点是启动速度比较快,但运行时性能和内存管理效率不高,通常用于客户端应用程序或开发调试;在32位环境下直接运行Java程序默认启用该模式。
  • -server,设置JVM使Server模式,特点是启动速度比较慢,但运行时性能和内存管理效率很高,适用于生产环境。在具有64位能力的JDK环境下默认启用该模式。
  • -Dserver.port=8088,设置服务端口为8088

-X这些参数基本上都是JVM参数,部分补充说明可以参看JVM系列之分代内存模型以及常用参数的查看和设置

-D的参数说明:后面跟的是配置参数,相当于在application.propertices中的配置,如下

如下代码可以取到其值

打印日志GC日志:

  • -verbose:gc,开启gc日志
  • -XX:+PrintGCDetails,打印gc详情
  • -XX:+PrintGCTimeStamps,打印GC时间戳
  • -XX:+PrintGCApplicationStoppedTime,打印GC停顿时间,可以查看到GC的STW停顿时间
  • -Xloggc:D:/temp/gclog/idea.gc.log,将日志输出到文件
  • -XX:+PrintHeapAtGC,每次一次GC后,都打印堆信息
说说梦想,谈谈感悟 ,聊聊技术,有啥要说的来github留言吧 https://github.com/cjx2328

—— 陈 建鑫

陈建鑫
你可能也喜欢Related Posts
footer logo
未经许可请勿自行使用、转载、修改、复制、发行、出售、发表或以其它方式利用本网站之内容。站长联系:cjx2328#126.com(修改#为@)
Copyright ©ziao Studio All Rights Reserved. E-mail:cjx2328#126.com(#号改成@) 沪ICP备14052271号-3