1. 新对象预留在年轻代 通过设置一个较大的年轻代预留新对象,设置合理的 Survivor 区并且提供 Survivor 区的使用率,可以将年轻对象保存在年轻代。

  2. 大对象进入年老代 使用参数-XX:PetenureSizeThreshold 设置大对象直接进入年老代的阈值

  3. 设置对象进入年老代的年龄 这个阈值的最大值可以通过参数-XX:MaxTenuringThreshold 来设置,默认值是 15

  4. 稳定的 Java 堆 获得一个稳定的堆大小的方法是使-Xms 和-Xmx 的大小一致,即最大堆和最小堆 (初始堆) 一样。

  5. 增大吞吐量提升系统性能 –Xmx380m –Xms3800m:设置 Java 堆的最大值和初始值。一般情况下,为了避免堆内存的频繁震荡,导致系统性能下降,我们的做法是设置最大堆等于最小堆。假设这里把最小堆减少为最大堆的一半,即 1900m,那么 JVM 会尽可能在 1900MB 堆空间中运行,如果这样,发生 GC 的可能性就会比较高; -Xss128k:减少线程栈的大小,这样可以使剩余的系统内存支持更多的线程; -Xmn2g:设置年轻代区域大小为 2GB; –XX:+UseParallelGC:年轻代使用并行垃圾回收收集器。这是一个关注吞吐量的收集器,可以尽可能地减少 GC 时间。 –XX:ParallelGC-Threads:设置用于垃圾回收的线程数,通常情况下,可以设置和 CPU 数量相等。但在 CPU 数量比较多的情况下,设置相对较小的数值也是合理的; –XX:+UseParallelOldGC:设置年老代使用并行回收收集器。

  6. 尝试使用大的内存分页 –XX:+LargePageSizeInBytes:设置大页的大小。 内存分页 (Paging) 是在使用 MMU 的基础上,提出的一种内存管理机制。它将虚拟地址和物理地址按固定大小(4K)分割成页 (page) 和页帧 (page frame),并保证页与页帧的大小相同。这种机制,从数据结构上,保证了访问内存的高效,并使 OS 能支持非连续性的内存分配。

  7. 使用非占有的垃圾回收器 为降低应用软件的垃圾回收时的停顿,首先考虑的是使用关注系统停顿的 CMS 回收器,其次,为了减少 Full GC 次数,应尽可能将对象预留在年轻代。

如何提高JVM的性能?相关推荐

  1. system.gc 性能_使用这些先进的GC技术提高应用程序性能

    system.gc 性能 应用程序性能是我们关注的重点,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开 ...

  2. 使用这些先进的GC技术提高应用程序性能

    应用程序性能是我们的首要考虑因素,垃圾收集优化是取得小而有意义的进步的好地方 自动化垃圾收集(与JIT HotSpot编译器一起)是JVM中最先进,最有价值的组件之一,但是许多开发人员和工程师对垃圾收 ...

  3. 一文了解程序员必须要知道的JVM和性能优化知识点

    目录 JVM和性能优化 1.Java内存区域 虚拟机的历史 未来的Java技术一览 运行时数据区域 站在线程角度来看堆和栈 深入辨析堆和栈 方法的出入栈 虚拟机中的对象 堆参数设置和内存溢出实战 2. ...

  4. 降低数值精度以提高深度学习性能

    降低数值精度以提高深度学习性能 Lowering Numerical Precision to Increase Deep Learning Performance 深度学习训练和推理将成为未来几十年 ...

  5. 如何用JNI技术提高Java的性能详解

    阻碍Java获得广泛应用的一个主要因素是Java程序的运行效率.Java是介于解释型和编译型之间的一种语言,同样的程序,如果用编译型语言C来实现,其运行速度一般要比Java快一倍以上.Java具有平台 ...

  6. 提高ActiveMQ工作性能

    2019独角兽企业重金招聘Python工程师标准>>> 提高ActiveMQ工作性能 博客分类: MQ (接上文<架构设计:系统间通信(22)--提高ActiveMQ工作性能( ...

  7. 提高WPF程序性能的几条建议

    原文:提高WPF程序性能的几条建议 这篇博客将介绍一些提高WPF程序的建议(水平有限,如果建议有误,请指正.) 1. 加快WPF程序的启动速度: (1).减少需要显示的元素数量,去除不需要或者冗余的X ...

  8. 提前“剧透”能提高自监督学习性能吗?华为诺亚实验室说:不一定!

    允中 发自 凹非寺  量子位 报道 | 公众号 QbitAI 编者按: 提前"剧透"并不一定能提高自监督学习性能,这是华为诺亚实验室最新的理论研究结果. 由于自监督学习数据和下游任 ...

  9. 组织可以最大限度提高数据中心性能的五个步骤

      当很多组织列出未来一年影响技术发展的趋势和问题时,通常都会有些长远的考虑,例如可能设想几年之后甚至几十年之后的未来发展.而分析机构更是如此.例如,对于2019年,调研机构Gartner公司关注人工 ...

最新文章

  1. 返回值_关于GWLP_WNDPROC的那些奇怪的返回值
  2. python第三方库numpy-python第三方库之numpy基础
  3. js自定义类,混合的构造函数/原型方式
  4. php 输出答案,php 如何只输出最后生成的那个值??
  5. DataGrid单击行时改变颜色
  6. 合并外部知识库-学习资料
  7. 判断2个list中是否有相同的数据(相交)Collections.disjoint
  8. 2.页面布局示例笔记
  9. 小米启动安心服务月 手机家电产品可免费清洁保养
  10. mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'
  11. 怎么用python打开csv文件_使用Python从CSV文件读取数据
  12. 【报告分享】基础设施的新兴趋势-毕马威.pdf(附pdf下载链接)
  13. win7下ado连接mysql_提示连接无法用于执行此操作_ADODB.Recordset (0x800A0E7D)连接无法用于执行此操作。在此上下文中它可能已被关闭或无效。...
  14. 高性能网站建设之减少Http连接数
  15. linux复制文件到另一台服务器
  16. MongoDB secondary节点
  17. 电信猫大亚DB120-WG破解超级密码方法
  18. 数字战疫|央视聚焦闵行,有信云助力上海数千家企业复工复产
  19. android 改变输入法enter键文字 为搜索 下一个 以及前往
  20. 剑指offer: 数组中数字出现的次数(曾在滴滴校招面试中遇到过)、leetcode消失的数字

热门文章

  1. Android将ButtonBar放在屏幕底部
  2. 数据库中主键的选择和使用
  3. HBASE整合ldap权限管理
  4. python代码评测结果tle_TLE计算列表中指定范围内的元素数 - python
  5. loggerFactory java_java日志LoggerFactory.getLogger最全讲解使用方法
  6. 超详细:Springboot连接centos7下redis6的必要配置和失败分析
  7. apache 支持php urlmanager,Yii中urlManager的配置
  8. Educational Codeforces Round 64 Div.2 D - 0-1-Tree
  9. Golang 学习笔记(08)—— 文件操作
  10. 最安全的浏览器?黑客大赛微软Edge被破解5次夺下“冠军”