做了这么多年java,自以为算是熟悉,其实还差得远,啥也别说了,还是踏踏实实地学吧。今天总结一下常用的JVM的启动参数。

参数类别

参数项

说明

标准参数(-,所有的JVM实现都必须实现这些参数的功能,而且向后兼容)

-client

以client模式启动jvm,这种方式启动速度快,但运行时性能和内存管理效率不高,适合客户端程序或者开发调试。

-server

以server模式启动jvm,与client情况恰好相反。适合生产环境。64位的jvm自动以server模式启动。

-classpath

-cp

告诉jvm类搜索路径。如果指定了-classpath,则jvm就忽略CLASSPATH中指定的路径。各路径之间以分号隔开。如果-classpath和CLASSPATH都没有指定,则jvm从当前路径寻找class。

Jvm搜索class的方式和顺序为:Bootstrap(jvm自带的)->Extension(JRE_HOME/lib/ext中的)->User(应用程序自己的)。如下语句会输出上述三种方式的路径信息:

System.getProperty("sun.boot.class.path");

System.getProperty("java.ext.dirs");

System.getProperty("java.class.path");

-Dproperty=value

设置系统属性名/值对。如果value中有空格,则需要使用双引号。

-jar

指定以jar包的形式启动应用程序

-javaagent:<jarpath>[=<options>]

指定jvm启动时装入java语言设备代理。关于设备代理是jdk1.5新推出的概念。进一步的信息可以参考java.lang.instrument.Instrumentation接口

-verbose[:class|gc|jni]

分别输出:

Jvm载入类的信息。诊断ClassNotFound错误时有用

Jvm每次gc的信息。

Native方法调用的情况,用于诊断jni调用。

非标准参数(-X ,默认JVM实现此功能,但是不保证所有JVM都实行,而且不保证向后兼容)

-Xbootclasspath:bootclasspath

让jvm从指定的路径中加载bootclass,用来替换jdk的rt.jar。一般不会用到。

-Xbootclasspath/a:path

被指定的文件追加到默认的bootstrap路径中。

-Xbootclasspath/p:path

让jvm优先于默认的bootstrap去加载path中指定的class

-Xincgc

开启增量gc,一般也不会用到。

-Xloggc:file

输出gc日志,在没有专业的监控工具时,这个显得很有用。

-Xmsn

指定jvm堆的初始大小。默认是物理内存的1/64

-Xmxn

指定jvm堆的最大值。默认是物理内存的1/4

-Xprof

跟踪正在运行的程序,并将跟踪数据输出到标准输出,适合开发调试。

-Xssn

设置单个线程栈的大小。

非稳定参数(-XX,此类参数各个JVM的实现会有不同,而且随时可能消失)

-XX:+ScavengeBeforeFullGC

新生代GC优先于Full GC执行

-XX:+UseGCOverheadLimit

在抛出OOM之前,jvm消耗在gc上的时间比例。

-XX:-UseConcMarkSweepGC

采用并发标记交换算法进行GC。并发是指过个线程同时gc,适合多核处理器的情况,并发一定满足并行,反之不成立。

-XX:-UseParallelGC

启用并行GC。并行是指有独立的线程进行gc,gc时不会打断应用线程。

-XX:-UseSerialGC

启用串行GC。新版本jdk不会这么干了。

-XX:MaxNewSize=size

Java堆中新生成对象占用堆的大小

-XX:MaxPermSize=size

Java堆中年老代占用堆的最大值

-XX:HeadDumpPath=./java_pid<pid>.hprof

指定导出堆信息时的路径或者文件名。

-XX:-HeadDumpOnOutOfMemoryError

当首次出现OOM时导出此时堆中相关信息。

-XX:-PrintGC

每次GC时打印相关信息

-XX:-PrintGC Details

每次GC时打印详细信息

-XX:-PrintGCTimeStamps

打印GC的时间戳

-XX:-TranceClassLoading

跟踪类的加载信息

-XX:-TraceClassLoadingPreorder

跟踪被引用到的所有类的加载信息

-XX:-TranceClassResolution

跟踪常量池

-XX:-TraceClassUnloading

跟踪类的卸载信息

http://www.cnblogs.com/wenfeng762/archive/2011/08/14/2137810.html

JVM参数说明(转)的更多相关文章

  1. JVM参数说明介绍

    1.JVM运行时数据区内存参数说明 2.JVM垃圾收集器参数总结 原文:https://blog.csdn.net/bluuusea/article/details/90697340 ======== ...

  2. JVM参数说明

    转载于https://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html文章 JVM参数说明 -Xms:初始堆大小  默认值=物理内存的1 ...

  3. 【JVM】JVM参数说明和分析

    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略, 调整JVM.GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Jav ...

  4. jvm内存溢出问题

     Java内存溢出详解 一.常见的Java内存溢出有以下三种: 1. java.lang.OutOfMemoryError: Java heap space ----JVM Heap(堆)溢出 J ...

  5. tomcat jvm 内存调优 适用于 JDK 6 & 7

    参考:https://blog.csdn.net/m0_37327416/article/details/76185051 1.jvm内存管理机制: 1)堆(Heap)和非堆(Non-heap)内存 ...

  6. java常用JVM参数介绍

    采集服务JVM参数说明 -Xmx4g -Xms4g -Xmn512m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=4g -Xss256k Xms 是指设定程 ...

  7. jvm内存模型、常见参数及调优

    JVM内存结构: 主要分为:方法区.堆.虚拟机栈.本地方法栈.程序计数器,其中方法区和堆是线程共享的,其他的都是线程隔离的. 方法区: 主要存放类的信息.静态变量.常量.编译后的方法代码,永久代Per ...

  8. 【WEB】Tomcat基础使用知识

    由于当前项目性质原因,从开始到现在使用的WEB服务器都是WAS,而Tomcat的基础知识也慢慢地被遗忘.由于种种原因,让我参与到了另外一个全新的项目,使用的是Tomcat6.X,所以复习是必须的,而写 ...

  9. Tomcat常见的内存溢出,以及解决方法

    一.常见的三种内存溢出错误: 1.java.lang.OutOfMemoryError:java heap space    ====JVM Heap(堆)溢出 JVM再启动的时候回自动设置JVM H ...

随机推荐

  1. 使用超链接跳转页面(GridView)

    1. the html markup <div> <asp:GridView ID=" OnPageIndexChanging="GridView1_PageIn ...

  2. Android 常用开源代码整理

    1.AndroidAnnotations一个强大的android开源注解框架, 基本上可以注入任何类型, 比一般的所谓的注入框架要快, 因为他是通过生成一个子类来实现的绑定.具体查看文档. 2.and ...

  3. php随笔5-thinkphp OA系统 人力资源管理

    最近闲来无事,自己尝试通过thinkphp3.1.3框架开发一套自己的OA系统,目前已完成了人力资源管理部分的内容,遇到并解决了几个问题. 1.由于刚开始不太熟悉thinkphp的框架,花费了一些功夫 ...

  4. Android 学习开发笔记《Android认识》

    1.          Android:2007年11月5日第一版,2009年5月豪华版,2010年HTC手机 2.          Android框架主要:应用程序.应用程序框架.函数库.运行时. ...

  5. C语言之猜数字游戏

    猜数字游戏 猜数字游戏是以前功能机上的一款益智游戏,计算机会根据输入的位数随机分配一个符合要求的数据,计算机输出guess后便可以输入数字,注意数字间需要用空格或回车符加以区分,计算机会根据输入信息给 ...

  6. NET Core1

    NET Core .net core最近园子讨论频率很高的话题,从不久前发布正式版本后,也是开始从netcore官网一步一步走向学习之路:.net跨平台的设计让人很是兴奋起来,因为做了多年的互联网研发 ...

  7. Socket 基础解析使用ServerSocket建立聊天服务器

    很简单的教程哦! 1.socket 简介 Socket 又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求.ServerSocket 用于 ...

  8. Mylyn

    Mylyn(旧称Mylar)是eclipse的一个插件,用于将任务管理和上下文管理无缝集成到Eclipse中.1. 安装 下载相应的Mylyn zip包,解压缩开就是两个文件夹:features和pl ...

  9. IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★

    IT第二十天 上午 面向对象编程思想 1.组装电脑的设计: (1)电脑的组成:显示器+机箱 (2)机箱的组成:电源+主板+硬盘 (3)主板所包含的部件:cpu+内存+PCI接口+usb接口 (4)PC ...

  10. 点菜系统 pickview的简单实用

    使用pickview的时候多想想tableview的使用,观察两者的相同之处 pickview的主要用途用于选择地区  生日年月日  和点餐 示例代码 简单的pickview点餐系统//  ViewC ...