jvm 堆 比例_JVM调优原则

JVM调优原则

调优目标

  1. 将进入老年代的对象数量降到最低

  2. 减少 Full GC 的执行时间

在同样场景下,采用多个机器上进行参数调整后的比较验证,将验证能够提高性能的参数应用到最终所有服务器上。

一般常规

满足下列不需要优化

Minor GC执行时间不到50ms;
Minor GC执行不频繁,约10秒一次;
Full GC执行时间不到1s;
Full GC执行频率不算频繁,不低于10分钟1次;

基本思想

针对JVM堆的设置

一般可以通过-Xms -Xmx限定其最小、最大值,为了防止垃圾收集器在最小、最大之间收缩堆而产生额外的时间,通常把最大、最小设置为相同的值;

年轻代和年老代

根据默认的比例(1:2)分配堆内存, 可以通过调整二者之间的比率NewRadio来调整二者之间的大小。

如年轻代,通过 -XX:newSize -XX:MaxNewSize来设置其绝对大小。同样,为了防止年轻代的堆收缩,我们通常会把-XX:newSize -XX:MaxNewSize设置为同样大小。

年轻代和年老代设置多大才参考:

  1. 更大的年轻代必然导致更小的年老代,大的年轻代会延长普通GC的周期,但会增加每次GC的时间,小的年老代会导致更频繁的Full GC。

  2. 更小的年轻代必然导致更大年老代,小的年轻代会导致普通GC很频繁,但每次的GC时间会更短,大的年老代会减少Full GC的频率。

如何选择应该依赖应用程序对象生命周期的分布情况:如果应用存在大量的临时对象,应该选择更大的年轻代;如果存在相对较多的持久对象,年老代应该适当增大。但很多应用都没有这样明显的特性。

在抉择时应该根据以下两点:

  1. 本着Full GC尽量少的原则,让年老代尽量缓存常用对象,JVM的默认比例1:2也是这个道理 。

  2. 通过观察应用一段时间,看其他在峰值时年老代会占多少内存,在不影响Full GC的前提下,根据实际情况加大年轻代,比如可以把比例控制在1:1。但应该给年老代至少预留1/3的增长空间。

配置较好的机器

比如多核、大内存机器,可以为年老代选择并行收集算法:-XX:+UseParallelOldGC 。

线程堆栈的设置

每个线程默认会开启1M的堆栈,用于存放栈帧、调用参数、局部变量等,对大多数应用而言这个默认值太了,一般256K就足用。

理论上,在内存不变的情况下,减少每个线程的堆栈,可以产生更多的线程,但这实际上还受限于操作系统。

922550f0ef4258c7cd93b62fc6cfb44d.png如果你觉得文章不错,文末的赞 ? 又回来啦,记得给我「点赞」和「在看」哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/406430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

64位虚拟机下asm()语法_用Hyper-V在win10中创建虚拟机,简单快捷,不用安装其它软件...

运行虚拟机是使用操作系统的好方法,因为无需在电脑上安装它,例如,你可以毫无风险地试用最新的Windows 10试用版或新的Ubuntu(Linux)发行版。以下是如何在Windows 10中创建虚拟机的方法。认识Windows 10中的Hyper-V微软提供了一个称为Hyper-V的…

测试晶面间距软件_纳米材料粒度测试方法大全

纳米材料是指三维空间尺寸中至少有一维处于纳米数量级 (1~100 nm),或由纳米结构单元组成的具有特殊性质的材料,被誉为“21世纪最重要的战略性高技术材料之一”。当材料的粒度大小达到纳米尺度时,将具有传统微米级尺度材料所不具备的小尺寸效应…

CDHtmlDialog 与 网页交互技巧

From: http://blog.csdn.net/catxl313/article/details/2204541 CDHtmlDialog可以方便的将网页嵌入对话框,使得在程序设计中人机界面(DHTML网页)与控制逻辑(CDialog)可以很好的分离,下面是一些实用技术与技…

java 盘符 系统_001-Java再回首开篇-入门基础

来我们一起了解下java背景突然想着, 整理一套从基础开始的文章吧,对自己来讲是回顾基础和复习,对他人来讲,能有一点点绵薄的帮助,我也是很欣慰了呢,希望能帮你少走点弯路。自己整理的,如有勘误&…

js 如何去除字符两端的引号

通过js 提供的substring()就可以直接去除引号。(注意是小写,和java不同) var str JSON.stringify("sasasa"); console.log(str); var str str.substring(1,str.length-1); console.log(str);

asic面试题目 英伟达_免笔试!不限量!全球可编程图形处理技术领袖英伟达2021校园招聘火热进行中!...

关注并标星大同学吧每周1次,打卡阅读快速获取行业最新资讯秋意浓,渐微凉校招逐渐收尾不少同学陆陆续续开始签约还在观望决意不定的同学英伟达还没结束!筹谋已久的英伟达2021校园招聘终于来啦!拥有全世界最酷的AI计算机发明主办最顶…

C++真的能够王者归来吗?

From: http://blog.csdn.net/adwu73/article/details/7230048 C真的能够王者归来吗? 吴穹Adam 我个人认为不太可能!因为不能光看C改进了什么,有什么优点?而要看环境,看对手! 这篇博客不想写太长&#xff0c…

JTA的含义及应用简介

2019独角兽企业重金招聘Python工程师标准>>> Java Transaction API(Java事务API) (JTA)Java Transaction API(Application Programming Interface) 什么是JTA Transaction?它有怎样的特点呢?JTA Transaction是指由J2EE…

VC++ 深入详解 学习笔记(5) -- 修改窗口样式续

From: http://elton.iteye.com/blog/301503 之前说过, 修改窗口大小,窗口样式的方法。 这里说明一下修改窗口的图标,光标和背景的方法。 修改窗口大小,样式是在创建窗口的时候进行的,而修改图标,光标和背…

为CEDIT添加有颜色的边框

From: http://hi.baidu.com/dqf8/blog/item/56258ed62c658b2707088bb5.html 1、从CEDIT派生CMyEdit 2、添加代码: void CMyEdit::OnPaint() { CPaintDC dc(this); CPaintDC dc(this); // device context for painting // TODO: Add yo…

java 在数组末尾添加元素_Java快问快答:用 ArrayList 还是 LinkedList?

问题&#xff1a;通常我会这么定义列表&#xff1a;List<String> names new ArrayList<>()names类型使用List接口&#xff0c;那么具体实现该如何选择。 什么时候应该用LinkedList替代ArrayList&#xff0c;反之亦然&#xff1f;这里大家可以关注一下我的个人专栏…

手把手教你用好LINQ to SQL(1)

From: http://developer.51cto.com/art/200904/120915.htm 作者写下这篇文章的主要目的不是“一口吃成个胖子”让大家一次就学会LINQ to SQL。而是从不同的方面帮助大家正确理解&#xff0c;所以这里提到的快速的含义是提高效率&#xff0c;而不是单纯为了学习的速度。 最近接连…

esxi管理端口_网工知识角|一分钟轻松了解华为端口安全机制

学网络&#xff0c;就在IE-LAB国内高端网络工程师培养基地为防止MAC地址洪泛攻击&#xff0c;防止未经允许的设备访问网络&#xff0c;并增强安全性。通过端口安全机制&#xff0c;录连接到交换机端口的以太网MAC地址&#xff0c;只允许某个或者某些合法设备通过相应的端口进行…

VC设置CEdit控件背景透明、文字背景也透明

开发环境&#xff1a;VC6&#xff0c; a dialog based MFC application. 主界面&#xff1a; 为对话框添加WM_CTLCOLOR消息响应函数&#xff1a; HBRUSH CDDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) {HBRUSH hbr CDialog::OnCtlColor(pDC, pWnd, nCtlColor);…

Taro+react开发(71):Taro.nextTick

Taro.nextTick(callback) 延迟一部分操作到下一个时间片再执行。&#xff08;类似于 setTimeout&#xff09; 说明 因为自定义组件中的 setData 和 triggerEvent 等接口本身是同步的操作&#xff0c;当这几个接口被连续调用时&#xff0c;都是在一个同步流程中执行完的&#xf…

led拼接屏报价_LED拼接屏的装饰

LED拼接屏外装饰工程是利用结构连接件或者粘结剂将装饰材料固定到钢结构框架的外部&#xff0c;使之达到一个美观大方的外形&#xff0c;并且达到防水(针对户外)等防护目的。LED屏的常用装饰的材料如下。(1)不锈钢一般装饰使用的不锈钢主要有亚光拉丝不锈钢、镜面不锈钢&#x…

Taro+react开发(72):Taro.createSelectorQuery

Taro.createSelectorQuery() 返回一个 SelectorQuery 对象实例。可以在这个实例上使用 select 等方法选择节点&#xff0c;并使用 boundingClientRect 等方法选择需要查询的信息。