compiler之automatic memory management以及Java GC

原创 2015年11月17日 16:20:23

基本方案就3种

1) mark and sweep

2) stop and copy (会用到copy graph算法,见leetcode)

3) reference counting

前2种方案GC是一个是独立的过程,要先进行扫描(object graph 遍历)mark reachable object,然后进行sweep或者copy。引用计数是即时的,当一个object的RC变为0时候立刻回收。一个赋值语句 a = b;对应4条语句

RC(b) += 1

RC(a) -= 1

if (RC(a) == 0)  //de-allocate  the object a points to

a = b

另外,当一个对象被销毁时候也会更新它指向对象的 RC

比较一下 sweep 和 copy

1) sweep 是把unmarked的对象加入到 free list,会有碎片问题;copy是把reachable对象copy到另一个区域

2) copy需要把存储区分成2个区域;sweep不需要

3) 分配:sweep需要scan free list找到大小匹配的块;而copy则只需要从当前指针分配并推进指针,速度块


generation based GC :解决这样一个问题:每次全体扫描,很多对象一直都是reachable的,对这些对象的扫描是浪费的。所以更针对一些,把对象分为长对象和短对象,主要针对短对象扫描,长对象的扫描不需要那么频繁


GC也是程序,可以从一般程序的角度衡量

和主程序的关系角度:

Concurrent GC:通过一定的协调机制可以让GC和程序并发运行。而一般GC 是要stop the world

从单线程多线程角度:

Parallel GC:多个Garbage Collector一起工作,利用多核,GC本身也可以是多线程。


Java GC

基本是基于copy + 分代, Permanent Space是固定的放class的地方,实际就是2代,不过第一代内部又分里3个小代,

Eden 

1st Survivor 

2nd Survivor




版权声明:本文为博主原创文章,未经博主允许不得转载。

Oracle 11g internals part 1: Automatic Memory Management

This is my attempt for getting cheap popularity out of recent Oracle 11g release. This is not going ...
  • loryliu
  • loryliu
  • 2015年11月19日 21:36
  • 269

Using Automatic Memory Management

以下内容是Oracle公司关于对Oracle11g数据库内存管理的经典描述,很不错: This section provides background information on the aut...

Automatic Shared Memory Management(ASMM)

1.base:    1) In Oracle 10g, you need to specify only the SGA_TARGET parameter, which specifies the...

数据结构复习笔记(Data Structures & Algorithms in Java, 4th) --Memory Management (Heap & Stack)

这篇文章主要是学习Java虚拟机(JVM)内存管理的基础,学习内存管理所需要使用的几个数据结构 (Stack, Heap)。...

Java Memory Management Skill List

Java Memory Management Skill List

Java Memory Management and Optimization

Java Memory Management and Optimization

Master Note For Automatic Storage Management (ASM) For Operating System (OS) Administrators [ID 1345

In this Document   Purpose   Scope   Master Note For Automatic Storage Management (ASM) For...

Deployment of very large databases (10TB to PB range) with Automatic Storage Management (ASM) [ID 36

 PURPOSE-------Support efficient deployment of very large databases (10TB to PB range) with Automati...

Master Note for Automatic Storage Management (ASM) (Doc ID 1187723.1)

Automatic Storage Management (ASM) Alerts:   Alert: Querying v$asm_file Gives ORA-15196 After ASM...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:compiler之automatic memory management以及Java GC
举报原因:
原因补充:

(最多只允许输入30个字)