如何提高JVM的性能?
新对象预留在年轻代 通过设置一个较大的年轻代预留新对象,设置合理的 Survivor 区并且提供 Survivor 区的使用率,可以将年轻对象保存在年轻代。
大对象进入年老代 使用参数-XX:PetenureSizeThreshold 设置大对象直接进入年老代的阈值
设置对象进入年老代的年龄 这个阈值的最大值可以通过参数-XX:MaxTenuringThreshold 来设置,默认值是 15
稳定的 Java 堆 获得一个稳定的堆大小的方法是使-Xms 和-Xmx 的大小一致,即最大堆和最小堆 (初始堆) 一样。
增大吞吐量提升系统性能 –Xmx380m –Xms3800m:设置 Java 堆的最大值和初始值。一般情况下,为了避免堆内存的频繁震荡,导致系统性能下降,我们的做法是设置最大堆等于最小堆。假设这里把最小堆减少为最大堆的一半,即 1900m,那么 JVM 会尽可能在 1900MB 堆空间中运行,如果这样,发生 GC 的可能性就会比较高; -Xss128k:减少线程栈的大小,这样可以使剩余的系统内存支持更多的线程; -Xmn2g:设置年轻代区域大小为 2GB; –XX:+UseParallelGC:年轻代使用并行垃圾回收收集器。这是一个关注吞吐量的收集器,可以尽可能地减少 GC 时间。 –XX:ParallelGC-Threads:设置用于垃圾回收的线程数,通常情况下,可以设置和 CPU 数量相等。但在 CPU 数量比较多的情况下,设置相对较小的数值也是合理的; –XX:+UseParallelOldGC:设置年老代使用并行回收收集器。
尝试使用大的内存分页 –XX:+LargePageSizeInBytes:设置大页的大小。 内存分页 (Paging) 是在使用 MMU 的基础上,提出的一种内存管理机制。它将虚拟地址和物理地址按固定大小(4K)分割成页 (page) 和页帧 (page frame),并保证页与页帧的大小相同。这种机制,从数据结构上,保证了访问内存的高效,并使 OS 能支持非连续性的内存分配。
使用非占有的垃圾回收器 为降低应用软件的垃圾回收时的停顿,首先考虑的是使用关注系统停顿的 CMS 回收器,其次,为了减少 Full GC 次数,应尽可能将对象预留在年轻代。
如何提高JVM的性能?相关推荐
- system.gc 性能_使用这些先进的GC技术提高应用程序性能
system.gc 性能 应用程序性能是我们关注的重点,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开 ...
- 使用这些先进的GC技术提高应用程序性能
应用程序性能是我们的首要考虑因素,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开发人员和工程师对垃圾收 ...
- 一文了解程序员必须要知道的JVM和性能优化知识点
目录 JVM和性能优化 1.Java内存区域 虚拟机的历史 未来的Java技术一览 运行时数据区域 站在线程角度来看堆和栈 深入辨析堆和栈 方法的出入栈 虚拟机中的对象 堆参数设置和内存溢出实战 2. ...
- 降低数值精度以提高深度学习性能
降低数值精度以提高深度学习性能 Lowering Numerical Precision to Increase Deep Learning Performance 深度学习训练和推理将成为未来几十年 ...
- 如何用JNI技术提高Java的性能详解
阻碍Java获得广泛应用的一个主要因素是Java程序的运行效率.Java是介于解释型和编译型之间的一种语言,同样的程序,如果用编译型语言C来实现,其运行速度一般要比Java快一倍以上.Java具有平台 ...
- 提高ActiveMQ工作性能
2019独角兽企业重金招聘Python工程师标准>>> 提高ActiveMQ工作性能 博客分类: MQ (接上文<架构设计:系统间通信(22)--提高ActiveMQ工作性能( ...
- 提高WPF程序性能的几条建议
原文:提高WPF程序性能的几条建议 这篇博客将介绍一些提高WPF程序的建议(水平有限,如果建议有误,请指正.) 1. 加快WPF程序的启动速度: (1).减少需要显示的元素数量,去除不需要或者冗余的X ...
- 提前“剧透”能提高自监督学习性能吗?华为诺亚实验室说:不一定!
允中 发自 凹非寺 量子位 报道 | 公众号 QbitAI 编者按: 提前"剧透"并不一定能提高自监督学习性能,这是华为诺亚实验室最新的理论研究结果. 由于自监督学习数据和下游任 ...
- 组织可以最大限度提高数据中心性能的五个步骤
当很多组织列出未来一年影响技术发展的趋势和问题时,通常都会有些长远的考虑,例如可能设想几年之后甚至几十年之后的未来发展.而分析机构更是如此.例如,对于2019年,调研机构Gartner公司关注人工 ...
最新文章
- 返回值_关于GWLP_WNDPROC的那些奇怪的返回值
- python第三方库numpy-python第三方库之numpy基础
- js自定义类,混合的构造函数/原型方式
- php 输出答案,php 如何只输出最后生成的那个值??
- DataGrid单击行时改变颜色
- 合并外部知识库-学习资料
- 判断2个list中是否有相同的数据(相交)Collections.disjoint
- 2.页面布局示例笔记
- 小米启动安心服务月 手机家电产品可免费清洁保养
- mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'
- 怎么用python打开csv文件_使用Python从CSV文件读取数据
- 【报告分享】基础设施的新兴趋势-毕马威.pdf(附pdf下载链接)
- win7下ado连接mysql_提示连接无法用于执行此操作_ADODB.Recordset (0x800A0E7D)连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。...
- 高性能网站建设之减少Http连接数
- linux复制文件到另一台服务器
- MongoDB secondary节点
- 电信猫大亚DB120-WG破解超级密码方法
- 数字战疫|央视聚焦闵行,有信云助力上海数千家企业复工复产
- android 改变输入法enter键文字 为搜索 下一个 以及前往
- 剑指offer: 数组中数字出现的次数(曾在滴滴校招面试中遇到过)、leetcode消失的数字
热门文章
- Android将ButtonBar放在屏幕底部
- 数据库中主键的选择和使用
- HBASE整合ldap权限管理
- python代码评测结果tle_TLE计算列表中指定范围内的元素数 - python
- loggerFactory java_java日志LoggerFactory.getLogger最全讲解使用方法
- 超详细:Springboot连接centos7下redis6的必要配置和失败分析
- apache 支持php urlmanager,Yii中urlManager的配置
- Educational Codeforces Round 64 Div.2 D - 0-1-Tree
- Golang 学习笔记(08)—— 文件操作
- 最安全的浏览器?黑客大赛微软Edge被破解5次夺下“冠军”