JVM相关参数

来源:互联网 发布:有赞 源码 编辑:程序博客网 时间:2024/06/13 05:33
在设置IDEA JVM参数的时候涉及到了一些不清楚的参数,在此做些记录。
    
-server
-Xms2g
-Xmx2g
-XX:NewRatio=3
-Xss16m
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
-XX:ConcGCThreads=4
-XX:ReservedCodeCacheSize=240m
-XX:+AlwaysPreTouch
-XX:+TieredCompilation
-XX:+UseCompressedOops
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-Djsse.enableSNIExtension=false
-ea





-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
-XX:NewRatio=3 表示年轻代与年老代所占比值为1:3,年轻代占整个堆栈的1/5 Xms=Xmx并且设置了Xmn的情况下,该参数不需要进行设置。
-Xss:每个线程的Stack大小
-XX:+UseConcMarkSweepGC 使用CMS内存收集
-XX:+CMSParallelRemarkEnabled 降低标记停顿
-XX:ConcGCThreads=4 定义并发CMS过程运行时的线程数为4
-XX:ReservedCodeCacheSize and -XX:InitialCodeCacheSize “代码缓存”,它是用来存储已编译方法生成的本地代码
-XX:+AlwaysPreTouch 启动时访问并置零内存页面
    启动时就把参数里说好了的内存全部舔一遍,可能令得启动时慢上一点,但后面访问时会更流畅,比如页面会连续分配,比如不会在晋升新生代到老生代时才去申请页面使得GC停顿时间加长。不过这选项对32G之类的大堆才会更有感觉一点。
-XX:+TieredCompilation 分层编译 使得飙高的CPU尽快回落。
-XX:+UseCompressedOops 压缩普通对象指针
-XX:SoftRefLRUPolicyMSPerMB=50 软引用对象会在最后一段时间之后再存活一段时间,默认值是在堆中每空闲兆字节的生命周期的1秒。softly reachable objects will remain alive for some amount of time after the last time they were referenced. The default value is one second of lifetime per free megabyte in the heap

-Djsse.enableSNIExtension=false  Java 7引入了默认启用的SNI支持。我发现某些配置错误的服务器在SSL握手中发送了一个“无法识别的名称”警告,大多数客户端都会忽略它,除了Java。正如@Bob Kerns所说,Oracle工程师拒绝“修复”这个bug /功能。
    作为解决方法,他们建议设置jsse.enableSNIExtension属性。为了让你的程序在没有重新编译的情况下工作,请运行你的应用程序









参考地址
http://1992mrwang.blog.51cto.com/3265935/1434038
http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
http://ifeve.com/useful-jvm-flags-part-7-cms-collector/
原创粉丝点击