JVM 调优 算法

近来三周对所在公司系统进行了JVM Tuning,期间阅读了大量的文章. 也得意了我的老大哥cheng的指导,使整个tuning按着合理有序的方向开展.

因为JVM概念理论知识相对较多,对JVM的基础原理也需要很好的理解,所以我将近期所学试图用简洁清晰的语言整理记录,已备日后之用. 所述如有出入, 也请不吝赐教.

什么是垃圾回收:
在计算机科学中垃圾回收是一种自动内存管理. 回收器回收垃圾以及不被程序继续使用的对象占用的内存.

垃圾回收的基本原则:

1. 找到程序中不再被存取的数据对象.
2. 回收被这些对象占用的资源. Java通常找到所有被引用的对象,然后将剩余的对象当作没有被应用的对象进行回收.

下面介绍jvm5.0的几种收集器以及回收算法,我们可以通过JVM参数对垃圾回收器进行选择.

    Serial Collector:

JVM Parameter: -XX:+UseSerialGC

Throughput Collector 或 Parallel Collector:

JVM Parameter: -XX:+UseParallelGC
Young Generation GC 使用 parallel threads 算法.
Tenured Generation GC 使用 serial threads 算法.

Parallel Old Generation Collector:

JVM Parameter: -XX:+UseParallelOldGC

Old Generation的垃圾回收在一定阶段使用并行算法,使得old generation的回收速度加快.

The Concurrent Low Pause Collector:

JVM Parameter: -Xincgc 或者-XX:+UseConcMarkSweepGC
     
    The concurrent collector 是一种降低程序暂停时间的算法, 在收集tenured generation 的时候, 与stop all world 算法不同,在Major Collection绝大多数时间application依然运行不被暂停.在我所做试验中, 使用Concurrent Collector时MinorGC会变频繁.

The concurrent low pause collector 在jvm中使用一下参数启用
-XX:+UseConcMarkSweepGC
    -XX:+UseParNewGC
原则上讲,使用会得到更好的response time更低的pause time.
使用此算法也可以使多核处理器更好的发挥它的多线程能力.


值得注意的是 -XX:+UseParallelGC 不能和 -XX:+UseConcMarkSweepGC 一起使用.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值