jvm的一些总结

* JVM调优总结*
1.栈和堆
栈是运行时的单位,解决程序如何执行,代表处理逻辑
安全的
堆是存储单位,解决数据存储问题,代表数据 线程不安全的 因为堆是共享的

2.垃圾回收算法
(1)引用计数:此对象有一个引用增加一个计数,删除一个引用减少一个计数.gc引用数是0的,循环引用问题无法处理
(2)标记 - 清楚MarkSweep:1从引用根节点(栈)开始标记被引用的对象
形成一颗以java的栈中引用所对应的对象为根节点的一颗对象树,栈中有多个引用会形成多个对象数
2.遍历堆,清楚未标记的对象
要暂停整个应用,会产生内存碎片
(3)复制:内存被划分为2个相等的区域,每次用其中的1个
遍历当前正在用的区域,把里面使用中的复制到另一块,然后清理这一块
不会有碎片但是要2倍内存

(4)标记 - 整理MarkCompact:1从根节点标记被引用对象
2.遍历堆,清楚未标记,把存活对象压缩到一起
避免了碎片,也不需要2倍空间

3.收集器
(1)串行收集器Serial Collector
单线程适合单处理器机器适合小数据量情况效率高
-XX:+ useSerialGC
(2)并行收集器Paraller收集器
多线程处理垃圾回收工作,速度快,效率高
对年轻代进行并行垃圾回收,减少垃圾回收需要的时间
-XX:+ useParallelGC
-xx:parallelGCThreads = 设置并行垃圾回收的线程数
-xx:macGCPauseMills = 垃圾回收最长暂停时间
-xx:gcTimeRatio = 1 / n + 1吞吐量垃圾回收时间和费垃圾回收时间的比值
也可以对年老代进行并行收集
(1)(2)要暂停整个运行环境,只有垃圾回收程序运行,系统在垃圾回收时会有明显的暂停,堆越大停的时间越长
垃圾回收过程中应用响应时间可能加长
适合多的cpu对应用响应无要求的大中型应用
(3)并发收集器
应用不停止,垃圾回收只暂停很少的时间。适合响应时间要求高的中大规模应用
CMS(并发标记清理收集器,Concurrent Mark Sweep)
主要用在老年代,在应用不停止的情况下使用独立的垃圾回收线程,短暂的停顿
-XX:+ useConMarkSweepGc
浮动垃圾:应用运行同时回收垃圾,垃圾回收进行完成时会产生垃圾,在下个垃圾回收周期才可以回收。
并发模式失败并发模式失败:并发模式在应用运行时进行垃圾的回收,要保证堆在垃圾回收这段时间有足够的时间供程序使用
垃圾回收还没完成,堆就满了,会发生并发模式失败,整个应用会暂停。
-xx:cmsInitiatingOccupancyFraction = 指定还有多少剩余堆时开始执行并发收集


常见设置
堆设置
-Xms:初始堆大小
-Xmx:最大堆大小
-XX:新尺寸= N:设置新生代大小
-XX:NewRatio = N:设置新生代和老生代的比值如:为3,表示新生代与老生代比值为1:3,新生代占整个新生代老生代和的1/4
-XX:SurvivorRatio = N:。新生代中伊甸区与两个幸存者区的比值注意幸存者区有两个如:3,表示伊甸:幸存者= 3:2,一个幸存者区占整个新生代的1 /五
-XX:MaxPermSize参数= N:设置永久带大小
收集器设置
-XX:+ UseSerialGC:设置串行收集器
-XX:+ UseParallelGC:设置并行收集器
-XX:+ UseParalledlOldGC:设置并行老生代收集器
-XX:+ UseConcMarkSweepGC:设置并发收集器
垃圾回收统计信息
-XX:+ PrintGC
-XX:+ PrintGCDetails
-XX:+ PrintGCTimeStamps
-Xloggc:文件名
并行收集器设置
-XX:ParallelGCThreads = N:设置并行收集器收集时使用的CPU数并行收集线程数。
-XX:MaxGCPauseMillis = N:设置并行收集最大暂停时间
-XX:GCTimeRatio = N:设置垃圾回收时间占程序运行时间的百分比公式为1 /(1 + n)的
并发收集器设置
-XX:+ CMSIncrementalMode:设置为增量模式适用于单CPU情况。
-XX:ParallelGCThreads = N:设置并发收集器新生代收集方式为并行收集时,使用的CPU数并行收集线程数

四,调优总结
1,新生代大小选择
1)响应时间优先的应用:。尽可能设大,直到接近系统的最低响应时间限制(根据实际情况选择)在此种情况下,新生代收集发生的频率也是最小的同时,减少到达老生代的对象。
2)吞吐量优先的应用:尽可能的设置大,可能到达吉比特的程度因为对响应时间没有要求,垃圾收集可以并行进行,一般适合8CPU以上的应用。
2,老生代大小选择
1)响应时间优先的应用:老年代使用并发收集器,所以其大小需要小心设置,一般要考虑并发会话率和会话持续时间等一些参数如果堆设置小了,可以会造成内存碎片,高回收频率以及应用暂停而使用传统的标记清除方式;如果堆大了,则需要较长的收集时间最优化的方案,一般需要参考以下数据获得:
1,并发垃圾收集信息
2,永久带并发收集次数
3,传统GC信息
4,花在新生代和老年代回收上的时间比例
减少新生代和老年代花费的时间,一般会提高应用的效率
2)吞吐量优先的应用:一般吞吐量优先的应用都有一个很大的新生代和一个较小的老年代原因是,这样可以尽可能回收掉大部分短期对象,减少中期的对象,而老年代尽量存放长期存活对象。
3,较小堆引起的碎片问题
因为老年代的并发收集器使用标记,清除算法,所以不会对堆进行压缩。当收集器回收时,他会把相邻的空间进行合并,这样可以分配给较大的对象。但是,当堆空间较小时,运行一段时间以后,就会出现“碎片”,如果并发收集器找不到足够的空间,那么并发收集器将会停止,然后使用传统的标记,清除方式进行回收。如果出现“碎片“,可能需要进行如下配置:
-XX:+ UseCMSCompactAtFullCollection:使用并发收集器时,开启对老年代的压缩。
-XX:CMSFullGCsBeforeCompaction = 0:上面配置开启的情况下,这里设置多少次Full GC后,对老年代进行压缩

快捷键 - 加粗按按按按按按按按按按按按按按按按按按按按按按按按按按按按按Ctrl + B - 斜体CTRL +我- 引用 CTRL + Q- 插入链接 按下按下按下 按下 按Ctrl + L键键键键键键键键键键键键键键键键键键按键键 插入代码按+ + - 插图“”按“CTRL + G” - 提升标题 机键,机键,键和键- 有序列表有序列表键-无序列表按按CTRL + U -横线按按按按按Ctrl键+ [R` - 德可信流程键盘键对,重做菜键

 Gamman=n1 quad foalln in mathbbN   G a m m a ( n ) = ( n − 1 ) !   q u a d   f o a l l n   i n   m a t h b b N X = \ dfrac {-b \时\ SQRT {B ^ 2 - 4AC}} {2A} 更多LaTex的语法请参考[这儿] [3] ### UML图:可以生染序列图: 序列张三 - >李四:嘿,小四儿,写博客了没?注意李四的权利:李四愣了一下,说:李四 - >张三:忙得吐血,哪有时间写。“或者流程图: flow st => start:开始e =>端:结束OP =>操作:我的操作COND =>条件:确认?ST-> OP-> CONDCOND(是) - >电子COND(无) - >运算 ` - 关于 序列图 语法,参考[这儿] [4], - 关于流程图语法,参考[这儿] [5 ] .Markdown器编辑 使用浏览器离线存储将内容保存在本地,用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常,内容不会丢失。用户再次打开浏览用时可以选择<我类=“icon-disk”>把正在写的博客保存到服务器草稿箱或者清除缓存,内容也不会丢失。> 注意:虽然浏览器存储大部分时候都比较可靠,但为了你的数据安全,在联网后,请务必及时发表或者保存到服务器*

浏览器兼容1.目前,本编辑器对铬浏览器支持最为完整。建议大家使用较新版本的铬0.3.IE9以下不支持4.IE9,10,11存在以下问题1.不支持离线功能1。 IE9不支持文件导入导出1.IE10不支持拖载文件导入--- [1]:http://math.stackexchange.com/ [2]:https:// github.com / jmcmanus / pagedown-extra“ Pagedown Extra“[3]:http://meta.math.stackexchange.com/questions/5020 / mathjax碱性教程和 - 快速参考[4]:http://bramp.github .io / js-sequence-diagrams / [5]:HTTP://adrai.github.io/flowchart.js/ [6]:https://github.com/benweet/stackedit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值