一行命令获取当前JVM所有可设置的参数以及当前默认值
java -XX:+PrintFlagsInitial >>1.txt
然后查看这个1.txt即可
- uintx AdaptivePermSizeWeight = 20 {product}
- uintx AdaptiveSizeDecrementScaleFactor = 4 {product}
- uintx AdaptiveSizeMajorGCDecayTimeScale = 10 {product}
- uintx AdaptiveSizePausePolicy = 0 {product}
- uintx AdaptiveSizePolicyCollectionCostMargin = 50 {product}
- ........
- ........
具体的参数含义可以百度,当然也可以去查找open JDK的源码查看
另外给一个目前我个人觉得不错的eclipse JVM参数
JDK 6 下:
- -vmargs
- -Xverify:none
- -client
- -XX:-UseSplitVerifier
- -Dosgi.requiredJavaVersion=1.6
- -Xms256m
- -Xmx256m
- -XX:MaxPermSize=200m
- -XX:PermSize=200m
- -XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses
- -XX:+CMSPermGenSweepingEnabled
- -XX:+CMSClassUnloadingEnabled
- -XX:+UseConcMarkSweepGC
- -XX:+UseParNewGC
- -XX:CompileThreshold=1000
- -XX:+UseStringCache
- -XX:+UseFastAccessorMethods
- -XX:+UseBiasedLocking
- -XX:CMSFullGCsBeforeCompaction=5
- -XX:+UseCMSCompactAtFullCollection
- -XX:+UseThreadPriorities
- -XX:+MaxFDLimit
- -XX:-DontCompileHugeMethods
- -XX:InitialCodeCacheSize=128m
- -XX:ReservedCodeCacheSize=128m
Java程序员有时候需要了解JVM相关的参数,不管是出于好奇或者工作需要。Oracle的文档中列出了一些,(点击这里),单并不是全部,而且有些参数的设置会默认启用或者关闭其他一些参数,而在某些情况下设置某个参数是不会生效的。还有些时候你想让JVM做某些事情,但是你不知道那个参数可以用。下面介绍一些办法用以列出所有参数,这样你在研究或者Google的时候也比较有明确的目标。
如果你想查看一下线上正在运行的JVM到底设置了那些参数,生效的是那些,可能用到的方法:
1. 在Linux下用ps命令找到启动Java应用时的参数
- ps -ef | grep "your java app name"
这个命令会打出你启动Java应用时传给java命令的所有参数,你可以看到里面的JVM参数。
2.直接看启动脚本,或者参数配置
你未必能找到所有设置这JVM参数的地方,容易遗漏。
一般来讲以上两种办法都需要对JVM了如指掌或者非常熟悉,至少对特定的参数。
其实JVM中有一个参数-XX:+PrintFlagsFinal,可以打印出几乎所有的JVM支持的参数以及他们的默认值。如果你想要查看你的Java应用到底使用了那些参数,只要在启动的时候加上这个参数就可以了。
1.查看你使用的JDK支持的参数
- java -XX:+UnlockDiagnosticVMOptions -XX:+PrintFlagsFinal -version
2.打印Java应用启用的JVM参数
- java -XX:+PrintFlagsFinal -classpath=/path/to/your/libs MainClass
3.如果你的Java应用已经是运行状态了,你想查看某个JVM参数生效没有可以使用jinfo这个工具。比如说大名鼎鼎的G1垃圾回收器,在JDK7update3中不论是客户端(-client)还是服务器(-server)模式下都不是默认启动的。
jinfo是随JDK一起发布的,使用时先用jps找到Java应用的pid。直接运行jinfo可以查看使用说明。
- jinfo -flag UseParallelOldGC 31072
- -XX:+UseParallelOldGC
JDK中实用的工具还很多,可以逐个的体验一下${JAVA_HOME}/bin目录中的每个命令,有惊喜。
http://blog.csdn.net/zhangjianying/article/details/7461563
http://blog.csdn.net/redhat456/article/details/7360249
相关推荐
JVM参数设置是优化Java应用性能的关键环节,它可以帮助我们控制JVM的行为,如内存分配、垃圾回收策略、线程调度等。下面将详细介绍一些重要的JVM参数及其作用。 1. 内存设置: - `-Xms` 和 `-Xmx`:这两个参数用于...
2. **JVM参数**:JVM有许多可调整的参数,如`-Xms`和`-Xmx`用于设置堆内存大小,`-XX:NewRatio`控制新生代与老年代的比例,`-XX:SurvivorRatio`设定Eden区与Survivor区的比例,`-XX:+UseConcMarkSweepGC`启用CMS垃圾...
本文将详细介绍如何在 Tomcat 6.0 中修改启动内存设置以及配置 Java 虚拟机 (JVM) 的相关参数。 #### 二、JVM 内存参数详解 在调整 Tomcat 的内存设置之前,我们需要了解一些基本的 JVM 内存参数: 1. **`-Xms`**...
本文将深入探讨JVM的常用参数设置,以及它们如何影响Java应用程序的运行。 一、JVM内存设置 1. **堆内存**: - `-Xms`:初始堆大小,例如`-Xms256m`表示初始分配256MB内存。 - `-Xmx`:最大堆大小,例如`-Xmx...
其中,设置合适的JVM(Java虚拟机)参数是优化Eclipse运行性能的重要手段之一。本文将详细介绍如何设置Eclipse的JVM参数,并解释这些参数的意义及其对Eclipse性能的影响。 #### 二、Eclipse与JVM的关系 Eclipse...
Eclipse中的JVM内存设置涉及到多个参数,这些参数用于控制JVM如何分配和管理内存资源。以下是关于JVM内存设置的一些详细知识: 1. **JVM内存结构**: - **堆内存(Heap)**:这是Java应用程序的主要内存区域,用来...
### JVM参数设置详解 在Java应用开发与维护过程中,JVM(Java虚拟机)的配置至关重要,它直接影响到应用程序的性能表现与稳定性。本文将基于提供的文件内容,深入解析Linux环境下JVM的基本参数设置方法及原理。 ##...
其中`libname`为本地代理库文件名,如`hprof`,可用于获取JVM的运行情况,包括CPU、内存、线程等运行数据,并可以输出到指定文件中。`options`是传递给本地库的参数,多个参数间用逗号分隔。在不同的操作系统上,...
本文将深入探讨一些常用的JVM配置参数,包括但不限于跟踪参数、堆的分配参数以及栈的分配参数,并通过具体示例加以说明。 #### 二、Trace跟踪参数 ##### -verbose:gc - **作用**:该参数用于开启GC(垃圾回收)...
然而,最佳的JVM参数配置往往依赖于具体的应用场景和硬件配置,因此,持续的性能监控和调优是必不可少的。希望本文能为读者提供一个深入理解JVM参数配置的起点,引导大家探索更高级的性能优化技术。
在进行JVM调优之前,先通过该命令查看当前的参数值,有助于避免重复设置已经默认开启的参数,同时也可以了解不同版本之间的差异。 2. **-XX:+AlwaysPreTouch** - 启动时预访问并置零所有分配的内存页面,虽然可能...
JVM参数调优是优化Java应用程序性能的关键环节,尤其是在服务器端的应用中,如Web服务器Resin。本实践案例中,作者分别尝试了三种不同的垃圾回收(GC)策略:串行回收、并行回收和并发回收,并针对每种策略提供了...
JVM 内存参数详解以及配置调优 JVM 内存参数是 Java 虚拟机中最重要的参数之一,它直接影响着 Java 应用程序的性能和稳定性。在这个资源中,我们将详细讨论 JVM 内存参数的配置和调优,包括 JVM 的结构、内存管理、...
9. **-XX:+PrintFlagsFinal**: 打印所有默认的JVM设置和它们的值,有助于理解和调试JVM行为。 10. **-XX:+HeapDumpOnOutOfMemoryError**: 当发生内存溢出错误时,生成堆转储文件,便于后续分析。 11. **-XX:+...
1. **堆内存(Heap)**:这是JVM管理的最大块内存区域,用于存储所有对象实例以及数组。堆内存又分为年轻代(Young Generation)和老年代(Old Generation),年轻代进一步细分为Eden区和两个Survivor区(S0、S1)。 2. **...
一、 JVM 内存设置参数 JVM 内存设置参数有四个: * -Xss:每个线程的 Stack 大小 * -Xmx:Java Heap 最大值 * -Xms:Java Heap 初始值 * -Xmn:Java Heap Young 区大小 这些参数的默认值可以根据物理内存大小及...
Java虚拟机(JVM)提供了一系列内置的监控和诊断工具,可以帮助开发者和运维人员高效地获取和分析这些信息。本篇文章将详细介绍以下几个核心的JVM命令工具及其使用方法: 1. **jps** - 显示系统中所有HotSpot虚拟机...