[翻译]G1垃圾收集器(五) 之 G1 GC的步骤(下)
G1的老年代收集是年轻代收集是并发执行的,它有个比CMS快的区域活跃度算法,先去收集活跃度低的区域,这样会收集的会快一点,本文的翻译是直译的,原理意思还要细细去推敲。 阅读全文
G1的老年代收集是年轻代收集是并发执行的,它有个比CMS快的区域活跃度算法,先去收集活跃度低的区域,这样会收集的会快一点,本文的翻译是直译的,原理意思还要细细去推敲。 阅读全文
G1 GC堆结构和传统GC的堆结构有很大区别,传统的GC的堆结构是划分为连续的几块区域,大小是固定的。G1 GC的堆结构是划分成许多个小区域,这些小区域被赋予不同的角色,这个角色类似传统GC划分的几块区域,但是这个角色的区域个数,也就是总大小是可变的。 阅读全文
并发标记扫描收集器(CMS),也被称作低暂停并发收集器。它是回收老年代。它试图利用和应用线程并发的收集尽可能多的垃圾,以减少因为垃圾收集导致的停顿。通常这种低延迟并发收集器不会对活动的对象进行压缩处理,也就是说它只做一个不对对象进行移动的垃圾回收,那么配分一个更大的内存的时候,碎片就会成为一个问题。本章节回顾了传统CMS GC的垃圾回收的过程。 阅读全文
垃圾优先收集器(G1 GC) 是一个服务器型的垃圾收集器,它的目标是大内存,多处理器的机器。高概率的满足一个垃圾回收暂停时间的目标下,实现大吞吐量。(译者注:例如设置的垃圾回收暂停时间是200ms,G1可以保证90%的垃圾回收暂停时间都在200ms以内,从而保证大的吞吐量),在jdk1.7update4 及其以后的版本完全支持G1 GC 阅读全文
java是一门编程语言和计算平台,第一个版本有Sun Microsystems公司在1995年发布,它是支撑java程序,包括公用事业,游戏,和商业等应用的底层技术。java程序跑在全球超过850万的个人电脑,以及数十亿的设备中,包括移动电话和电视设备。java是有一些关键组建的集合,作为一个整体,构建了所谓的java平台 阅读全文
本文开始翻译oracle官方对G1垃圾收集器的介绍文档《Getting Started with the G1 Garbage Collector》,以加深对GC的理解,便于日后用到对jvm GC的调优。 阅读全文
关于elasticsearch的使用中,感觉有三个点挺重要的,第一个是关于GC的配置,可能不被人注意,后面两个配置,对性能和实时性上可能有较大的影响。 阅读全文
线程池的目的是为了使用有限的线程处理大并发的任务。jdk自带丰富的线程池适应不同的应用场景。一般线程池需要考虑这样四个问题… 阅读全文
java提供了对boolean、Integer、Long的原子操作对象AtomicBoolean、AtomicInteger、AtomicLong。实现一些原子操作,这样简单的原子操作会比使用synchronized或者lock实现方便很多。 阅读全文
和synchronized一样,Lock是为了线程互斥而设计的,在synchronized中,使用对象隐式锁的wait notify(notifyAll)来实现线程之间的通信,同样的功能在Lock中是通过Codition来实现的。Condition除了完成wait和notify的基本功能之外,它的好处在于一个Lock可以通过创建多个Condition,选择性的去通知wait的线程。 阅读全文