JVM 性能优化实践

配置介绍

神舟笔记本 I7-3610QM+8G+240SSD+500G

模仿

使用JAVA开发的著名软件有两个Eclipse和Idea,我们从此剖析

Idea 2017

JVM参数如下

image.png
  1. -Server 运行模式
    虚拟机在解释执行相对应的另一方面,虚拟机还有力度更强的编译器:当虚拟机运行在客户端模式是使用C1轻量级,服务端是C2重量级。显而易见,重量级会消耗更多的系统资源但是带来更强的性能。如果大家像我一样系统资源足够且长时间使用编译软件推荐是用C2

  2. -Xms -Xmx
    堆初始值128m 最大750m
    计算 最大值为不超过系统1/4

  3. ReservedCodeCacheSize
    保留代码所用的Cache大小

  4. UseConcMarkSweepGC
    -XX:+UseConcMarkSweepGC:设置年老代为并发收集。测试中配置这个以后,-XX:NewRatio=4的配置失效了,原因不明。所以,此时年轻代大小最好用-Xmn设置。

  5. XX:SoftRefLRUPolicyMSPerMB
    -XX:SoftRefLRUPolicyMSPerMB=N 这个参数比较有用的,官方解释是:Soft reference在虚拟机中比在客户集中存活的更长一些。其清除频率可以用命令行参数 -XX:SoftRefLRUPolicyMSPerMB=<N>来控制,这可以指定每兆堆空闲空间的 soft reference 保持存活(一旦它不强可达了)的毫秒数,这意味着每兆堆中的空闲空间中的 soft reference 会(在最后一个强引用被回收之后)存活1秒钟。注意,这是一个近似的值,因为 soft reference 只会在垃圾回收时才会被清除,而垃圾回收并不总在发生。系统默认为一秒,我觉得没必要等1秒,客户集中不用就立刻清除,改为 -XX:SoftRefLRUPolicyMSPerMB=0;

  6. ea
    -ea[:<package name>"..." | :<class name> ]
    上述参数就用来设置jvm是否启动断言机制(从JDK 1.4开始支持),缺省时jvm关闭断言机制。
    用-ea 可打开断言机制,不加<packagename>和classname时运行所有包和类中的断言,如果希望只运行某些包或类中的断言,可将包名或类名加到-ea之后。例如要启动包com.wombat.fruitbat中的断言,可用命令java -ea:com.wombat.fruitbat...<Main Class>。

  7. useCanonCaches
    使用标准IO缓存

  8. preferIPv4Stack
    优先使用IPv4栈

  9. HeapDumpOnOutOfMemoryError
    堆内存溢出输出

  10. OmitStackTraceInFastThrow
    开启追踪

Eclipse

1image.png

前面是使用了一些插件可以忽略

Diff

默认使用了G1收集器
Eclipse更使用更多内存
在使用G1垃圾回收器的时候,通过 JVM参数 -XX:+UseStringDeduplication 。 我们可以通过删除重复的字符串,只保留一个char[]来优化堆内存。这个选择在Java 8 u 20被引入

推荐文章

JVM

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转载blog.csdn.net/ning109314/article/details/10411495/ JVM工...
    forever_smile阅读 5,550评论 1赞 56
  • 1.一些概念 1.1.数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始...
    落落落落大大方方阅读 4,869评论 4赞 86
  • Java 应用性能优化是一个老生常谈的话题,典型的性能问题如页面响应慢、接口超时,服务器负载高、并发数低,数据库频...
    Rick617阅读 7,682评论 1赞 9
  • 参数设置 在Java虚拟机的参数中,有3种表示方法用“ps -ef |grep "java"命令,可以得到当前Ja...
    九问阅读 9,343评论 2赞 52
  • 原文阅读 前言 这段时间懈怠了,罪过! 最近看到有同事也开始用上了微信公众号写博客了,挺好的~给他们点赞,这博客我...
    码农戏码阅读 6,248评论 2赞 31

友情链接更多精彩内容