Java 进阶 (三) JVM参数说明

1.JVM(Java Virtual Machine)

1.-Xms    初始堆大小

2.-Xmx    最大堆大小

3.-Xmn    青年代大小

4.-Xss    每个线程的堆栈大小

5.-XX:+UseParNewGC    青年代垃圾收集方式为并行收集

6.-XX:+UseParallelOldGC   老年代垃圾收集方式为并行收集

7.-XX:ParallelGCThreads    并行收集器的线程数(最好与处理器数目相等)

8.-XX:MaxGCPauseMillis    每次青年代垃圾回收的最长时间(最大暂停时间)

9.-XX:+UseAdaptiveSizePolicy    自动选择青年代区大小和相应的Survivor区比例

10.-XX:GCTimeRatio    设置垃圾回收时间占程序运行时间的百分比

11.-XX:+ScavengeBeforeFullGC    Full GC前调用YGC

21.-XX:NewSize    青年代大小(for 1.3/1.4)

22.-XX:MaxNewSize    青年代最大值(for 1.3/1.4)

23.-XX:PermSize    设置持久代(perm gen)初始值

24.-XX:MaxPermSize    持久代最大值

2.CMS(Concurrent Mark-Sweep)

以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上-XX:+UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除。

1.-XX:+UseConcMarkSweepGC    使用CMS内存收集

2.-XX:CMSFullGCsBeforeCompaction    多少次后进行内存压缩

3.-XX:+CMSParallelRemarkEnabled    降低标记停顿

4.-XX+UseCMSCompactAtFullCollection    在FULL GC的时候, 对年老代的压缩

5.-XX:+UseCMSInitiatingOccupancyOnly    使用手动定义初始化定义开始CMS收集

6.-XX:CMSInitiatingOccupancyFraction=70    使用cms作为垃圾回收,使用70%后开始CMS收集

7.-XX:CMSInitiatingPermOccupancyFraction    设置Perm Gen使用到达多少比率时触发

8.-XX:+CMSIncrementalMode    设置为增量模式

时间: 2024-10-10 06:42:14

Java 进阶 (三) JVM参数说明的相关文章

Java进阶(三十四)Integer与int的种种比较你知道多少?

Java进阶(三十四)Integer与int的种种比较你知道多少? 前言 如果面试官问Integer与int的区别:估计大多数人只会说到两点:Ingeter是int的包装类,注意是一个类:int的初值为0,Ingeter的初值为null.但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱.所以我对它们进行了总结,希望对大家有帮助. 首先看代码: package

Java进阶(三十五)java int与integer的区别

Java进阶(三十五)java int与integer的区别 前言 int与integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而integer是对象,用一个引用指向这个对象. 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1; Integer i= new In

Java进阶(三十一) Web服务调用

Java进阶(三十一) Web服务调用 前言 有朋友问了一个问题:如何调用已知的音乐服务接口,服务文档如下: https://www.evernote.com/shard/s744/sh/c37cd503-68fc-4406-b8f2-5e90095be303/19b67e36aa2ccd19 查看代码之后,按照以往的服务调用方法实现,结果无法实现.很是费解,求教大师兄之后,问题,迎刃而解,只能说自己需要学习的地方还有很多. 完整代码如下: package plan.http.util; imp

Java进阶(三十二) HttpClient使用详解

Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们再讨论),它不仅是客户端发送Http请求变得容易,而且也方便了开发人员测试接口(基于Http协议的),即提高了开发的效率,也方便提高代码的健壮性.因此熟练掌握HttpClient是很重要的必修内容,掌握HttpClient后,相信对于Http协议的了解会更加深入. 一.简介 HttpClient是A

java进阶三:反射

1.得到各个字节码对应的实例对象(Class类型)的三种方式,示例如下: 类名.class,比如,System.class 对象.getClass(),比如,new Date().getClass() Class.forName("类名"),比如,Class.forName("java.util.Date") 2.Constructor类的使用,Constructor类代表某个类中的一个构造方法 得到某个类所有的构造方法: Constructor[] constru

(转)Java进阶java int与Integer的区别

Java进阶java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象,用一个引用指向这个对象. 1.Java 中的数据类型分为基本数据类型和复杂数据类型 int 是前者而Integer 是后者(也就是一个类):因此在类进行初始化时int类的变量初始为0.而Integer的变量则初始化为null. 2.初始化时: int i =1; Integer i= new Integer

Java 进阶(一) JVM运行时内存模型

1.JVM运行时数据区域的划分 a.程序计数器(Program Counter Register) 一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器.每个线程拥有独立的一个计数器,如果当前执行的是Native方法,则计数器值为空. b.JVM栈(Java Virtual Machine Stack) 描述Java方法执行的内存模型,每个方法在执行的同时都会创建一个栈帧(Stacks Frame)用于存储局部变量表,操作数栈,动态链接,方法出口等信息. 每一个方法从调用直至执行完成

Java进阶(三)多线程开发关键技术

原创文章,转载请务必将下面这段话置于文章开头处. 本文转发自Jason's Blog,原文链接 http://www.jasongj.com/java/multi_thread/ sleep和wait到底什么区别 其实这个问题应该这么问--sleep和wait有什么相同点.因为这两个方法除了都能让当前线程暂停执行完,几乎没有其它相同点. wait方法是Object类的方法,这意味着所有的Java类都可以调用该方法.sleep方法是Thread类的静态方法. wait是在当前线程持有wait对象锁

区分 JVM 内存结构、 Java 内存模型 以及 Java 对象模型 三个概念

本文由 简悦 SimpRead 转码, 原文地址 https://www.toutiao.com/i6732361325244056072/ 作者:Hollis 来源:公众号Hollis Java 作为一种面向对象的,跨平台语言,其对象.内存等一直是比较难的知识点.而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚.比如本文我们要讨论的 JVM 内存结构.Java 内存模型和 Java 对象模型,这就是三个截然不同的概念,但是很多人容易弄混. 可以这样说,很多高级开发甚至都搞不不清楚 JV