调优
junehappylove
上善若水。水善利万物而不争,处众人之所恶,故几于道。居,善地;心,善渊;与,善仁;言,善信;正,善治;事,善能;动,善时。夫唯不争,故无尤。
展开
-
JVM调优总结(3):垃圾回收面临的问题
如何区分垃圾前面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,从哪儿开始查找哪些对象是正在被当前系统使用的。前面分析的堆和栈的区别,其中栈是真正进行程序执行地方,所以原创 2017-06-09 16:52:50 · 231 阅读 · 0 评论 -
JVM调优总结(2):基本垃圾回收算法
可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep):此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把原创 2017-06-09 16:43:23 · 349 阅读 · 0 评论 -
JVM调优总结(5):典型配置
以下配置主要针对分代垃圾回收算法而言。堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:java原创 2017-06-09 17:43:34 · 304 阅读 · 0 评论 -
JVM调优总结(6):新一代的垃圾回收算法
垃圾回收的瓶颈传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个相对较小范围内,但原创 2017-06-09 17:50:03 · 289 阅读 · 0 评论 -
JVM调优总结(7):调优方法
JVM调优工具 Jconsole,jProfile,VisualVMJconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。如何调优观察内存释放情况、集合类检查、对象树上面这些调优工原创 2017-06-09 18:03:31 · 395 阅读 · 0 评论 -
JVM调优总结(8):反思
垃圾回收的悖论所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的响应时间,造成拥塞或堆积。这也是后续JDK增加G1算法的一个重要原因。当然,上面是从技术角度出发解决垃圾回收带来的问题,但是从系统设计方面我们就需原创 2017-06-09 18:33:50 · 296 阅读 · 0 评论 -
JVM调优总结(9):参考资料
能整理出上面一些东西,也是因为站在巨人的肩上。下面是一些参考资料,供大家学习,大家有更好的,可以继续完善:)Java 理论与实践: 垃圾收集简史Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection TuningImproving Java Application Performance and Scalability by Reduc原创 2017-06-09 18:36:08 · 349 阅读 · 0 评论 -
57条最有价值的经验
一、创建和销毁对象 (01)考虑用静态工厂方法代替构造函数 (02) 使用私有构造函数强化singleton属性 (03)通过私有构造函数强化不可实例化的能力 (04) 避免创建重复对象 (05)消除过期的对象引用 (06)避免使用终结函数 二、对于所有对象都通用的方法 (07)在改写equals时候请遵守通用约定 (08)改写equals时总要改写原创 2017-06-13 12:47:18 · 349 阅读 · 0 评论