今天要说的是如何查看 JVM 中已经设置的参数,包括显示参数和隐式参数。 打印显式参数 -XX:+PrintVMOptions 该参数表示程序运行时,打印虚拟机接受到的命令行显式参数。...打印显式隐式参数 -XX:+PrintCommandLineFlags 该参数打印传递给虚拟机的显式和隐式参数。...打印所有系统参数 -XX:+PrintFlagsFinal 该参数会打印所有的系统参数的值。...我们用下面的命令运行程序: java -XX:+UseSerialGC -XX:+PrintFlagsFinal com.chenshuyi.ClassLoadDemo > jvm_flag_final.txt...之后打开 jvm_flag_final.txt 文件,可以看到有 800 多行,这是因为程序将虚拟机的所有参数都打印了出来。
-Xms128m:JVM初始分配的堆内存 -Xmx512m:JVM最大允许分配的堆内存,按需分配 -XX:PermSize=64M:JVM初始分配的非堆内存 -XX:MaxPermSize=128M:JVM...最大允许分配的非堆内存,按需分配 -XX:+HeapDumpOnOutOfMemoryError:参数表示当JVM发生OOM时,自动生成DUMP文件 -XX:+PrintGCDateStamps:输出GC
参数解释: -Xms: 初始堆大小 -Xmx: 最大堆大小 -Xmn: 年轻代大小 -XX:+PrintGCDetails 打印gc日志详情 -XX:SurvivorRatio=8 eden与survivor
JVM的参数类型 1. 标准参数 * -help * -server , -client * -version . -showversion * -cp , -classpath 2....X参数 * 非标准化参数(在各个JDK版本中可能会变,但是变动比较小) * -Xint : 解释执行 -Xcomp : 编译执行 第一次使用就编译成本地代码 -Xmixed :混合模式,...JVM自己来决定是否编译成本地代码 3....XX参数 非标转化参数 相对不稳定 主要用于JVM调优和Debug 参数分类 Boolean类型 格式:-XX:[+-] 表示启用或者禁用name属性。...不是X参数,而是XX参数 2. -Xms 等价于 -XX:InitialHeapSize 初始化的堆大小 3.
**jvm参数优化** * 最近碰到了公司项目发布设置参数较小导致项目启动失败(又背了一个锅) JAVA_OPTS="-Dproject.name=${key} -Djava.security.egd
# 打印加载日志 -Xlog:class+load=info 等同-verbose:class # 打印所有jvm参数 -XX:+PrintFlagsFinal # 最大堆空间 -Xmx #...最小堆空间 -Xms 资料 JVM 参数设置 Is there a way to get which classes a ClassLoader has loaded?
Jvm创建对象之内存分配-JVM(七) 一、大对象直接进入老年代 大对象指需要连续空间存储的对象(字符串,数组)。...正常是eden放不下进入老年代,但是我们也可以用参数配置,当大于这个参数直接进入老年代。...记得参数后面还有加个打印gc的参数-XX:PrintGCDetails 当我们设置了这个参数之后,则看到一个7M的数据明明可以放在eden,但是直接进入了老年代,前面的百分之14并不是我们代码的7M对象...可以通过参数配置年龄代-XX:MaxTenuringThreshold 三、对象动态年龄判断机制 我们有一个对象在eden,当yangGC后,状态还是活跃状态,则会进入survivor,但也会有一种情况直接进入老年代...所以我们设置jvm参数是要根据实际情况来设置的,那么这种怎么设置呢?
---- Pre 有的时候,想看下自己没有设置的JVM参数的值, 或者有的时候想看下JVM某个参数的默认值 ,亦或想看下用户或者JVM修改的JVM参数 ? 咋办 ?...JVM在1.6.0_14以后提供了几个参数可以打印出来所有XX参数和对应的值 -XX:+PrintFlagsInitial 表示打印出所有参数选项的默认值 -XX:+PrintFlagsFinal...列出JVM参数的默认值 Java诞生了25年+, N多个参数 ,鬼记得住~ 我们只需要直到常用的,会找就可以了。...第一列表示参数的数据类型 第二列是名称 第三列”=”表示第四列是参数的默认值,如果是”:=” 表明了参数被用户或者JVM赋值了 第四列为值 第五列是参数的类别 ---- -XX:+PrintFlagsFinal...line.separator = java.io.tmpdir = /tmp java.vm.specification.vendor = Oracle Corporation os.name = Linux
Pre JVM-08垃圾收集Garbage Collection【GC常用参数】 ? ---- JDK版本 = 1.8 ---- 核心参数 ?...---- 线程栈 默认1M , 不足的话 StackOverflowError -Xss设置越小 ,说明一个线程栈里能分配的栈帧就越少,但是对JVM整体来说能开启的线程数会更多 ,当然了,线程多了并不一定性能就高...对于64位JVM来说,元空间的默认初始大小是21MB,若不足,GC后自动扩容,无上限,取决于操作系统的内存大小。...---- 【经验之谈】 一般建议在JVM参数中将MetaspaceSize和MaxMetaspaceSize设置成一样的值 ,8G物理内存的机器来说,可以将这两个参数设置为256M 如果应用启动比较慢,...可以看下是不是因为方法区的JVM参数没有设置(默认值21 ,频繁GC,自动扩容)导致的。
本次主要内容: 如何查看参数标准参数-X参数-XX参数Boolean类型非Boolean类型其他参数如何设置参数单位换算JVM常见参数和含义 如何查看参数 java -XX:+PrintFlagsFinal...想要的JVM参数在这里都能找到。 标准参数 -version :输出java的版本信息,比如jdk版本、vendor、model。 -help :输出java标准参数列表及其描述。...-XX参数 非标准化参数,相对不稳定,主要用于JVM调优和Debug,使用频率最高的参数。...(参数只有被标记为manageable的flags可以被实时修改) 单位换算 1Byte(字节)=8bit(位) 1KB=1024Byte(字节) 1MB=1024KB 1GB=1024MB 1TB=1024GB...查询堆内存大小MaxHeapSize:= 104857600 值得注意的是"="表示默认值,":="表示被用户或JVM修改后的值 ?
jvm 命令行工具 名称 描述 jps JVM 进程状态工具。显示系统内的所有 JVM 进程。 jstat JVM 统计监控工具。...并且可以生成线程快照(一般称为 threaddump 或 javacore 文件) jinfo JVM 信息查看工具。用于实时查看和调整 JVM 进程参数。 jcmd JVM 命令行调试 工具。...如果CMS GC时间很长,并且明显受新生代存活对象数量影响时打开,但会导致每次CMS GC与一次YGC连在一起执行,加大了事实上JVM停顿的时间 其他优化参数 -XX:+AlwaysPreTouch:...-XX:+AlwaysPreTouch参数能够达到的效果就是,在服务启动的时候真实的分配物理内存给JVM,而不再是虚拟内存,效果是可以加快代码运行效率,缺点也是有的,毕竟把分配物理内存的事提前放到JVM...(离线环境压测可以打开这两个参数) 参考资料 JVM对外内存完全解读
打开命令提示符(Windows)或终端(macOS和Linux)。...这些JVM参数将使您的Java应用程序使用指定的代理服务器进行网络连接
在jvm中有很多的参数可以进行设置,这样可以让jvm在各种环境中都能够高效的运行。绝大部分的参数保持默认即可。...标准参数 jvm的标准参数,一般都是很稳定的,在未来的JVM版本中不会改变,可以使用 java -help 检索出所有的标准参数。...-X参数 jvm的 -X 参数是非标准参数,在不同版本的jvm中,参数可能会有所不同,可以通过 java -X 查看非标准参数。...XX参数也是非标准参数,主要用于jvm的调优和debug操作。...java -XX:+PrintFlagsFinal -version 参数有 boolean类型和数字类型,值的操作符是 = 或 := ,分别代表 默认值 和 被修改的值。 ?
参数 HotSpot JVM 提供了三类参数。...然而,在实际情况中X参数和XX参数并没有什么不同。X参数的功能是十分稳定的,然而很多XX参数仍在实验当中(主要是JVM的开发者用于debugging和调优JVM自身的实现)。...第一列表示参数的数据类型,第二列是名称,第四列为值,第五列是参数的类别。第三列”=”表示第四列是参数的默认值,而”:=” 表明了参数被用户或者JVM赋值了。...-XX:+PrintCommandLineFlags 这个参数让JVM打印出那些已经被用户或者JVM设置过的详细的XX参数的名称和值。...以这种方式,我们可以用-XX:+PrintCommandLineFlags作为快捷方式来查看修改过的参数 监控jvm 使用自带工具就行,jstat,jmap,jstack jstack主要用来查看某个Java
Java HotSpot VM中-XX:的可配置参数列表进行描述;这些参数可以被松散的聚合成三类: 行为参数(Behavioral Options):用于改变jvm的一些基础行为; 性能调优(Performance...Tuning):用于jvm的性能调优; 调试参数(Debugging Options):一般用于打开跟踪、打印、输出等jvm参数,用于显示jvm更加详细的信息; 行为参数: 参数及其默认值 描述 -...XX:-DisableExplicitGC 禁止调用System.gc();但jvm的gc仍然有效 -XX:+MaxFDLimit 最大化文件描述符的数量限制 -XX:+ScavengeBeforeFullGC...新生代GC优先于Full GC执行 -XX:+UseGCOverheadLimit 在抛出OOM之前限制jvm耗费在GC上的时间比例 -XX:-UseConcMarkSweepGC 对老生代采用并发标记交换算法进行...: 参数及其默认值 描述 -XX:-CITime 打印消耗在JIT编译的时间 -XX:ErrorFile=.
-Xms:初始堆大小 -Xmx:最大堆大小 -XX:NewSize=n:设置年轻代初始大小 -XX:MaxNewSize=n设置年轻代最大大小 -Xmn:相当于...
就打算优化一下JVM的设置,AppCode的JVM参数配置文件在 /Applications/AppCode EAP.app/bin/idea.vmoptions 使用默认的参数,用一段AppCode,...查了一下默认的参数,内存设置的太保守,所以我改成了下面这个方案: 我的机子是8G内存,给AppCode分配1500M,如果你的是4G内存,建议把-Xms1500m和-Xmx1500m都调成1000m,-...修改之前把idea.vmoptions文件备份一下,以防万一。...至于上面参数的意思,可以查看我在iteye上以前的一篇Blog:10s启动MyEclipse/Eclipse的JVM参数(含Mac下)
注:本文部分参数不适用于JDK1.8,请大家阅读时注意。有时间我会特别总结一下JDK1.8的JVM参数。...HotSpot JVM 有许多可用的参数选项,也许太多了,有时候我们会将一些正在寻找的或者“魔法式”的选项添加在我们的应用上,导致非常可怕的后果。...为了获得完整的JVM参数列表,我们不仅可以参考OpenJDK源码里的globals.hpp文件,也可以从这个网站上找到这些列表。 在这里我总结了一些实用的JVM参数,接下来我们一起学习一下。...(引自JVM实用参数-6 吞吐量收集器关于该参数的解释部分) -XX:CMSInitiatingOccupancyFraction=n 设置CMS垃圾收集器开始GC时,老年代所占JVM大小的比例,当分配率不可预测时...(引自JVM实用参数(七)CMS收集器关于该参数解释部分) -XX:+CMSClassUnloadingEnabled 相对于并行收集器,CMS收集器默认不会对永久代进行垃圾回收。
本文涉及:gc、堆、栈、永久区、元数据区的常用参数 GC基本参数 打印gc简要信息:-XX:+PrintGC [GC (System.gc()) 198247K->197248K(261632K),
领取专属 10元无门槛券
手把手带您无忧上云