好书推荐 好书速递 排行榜 读书文摘

The Garbage Collection Handbook

The Garbage Collection Handbook
作者:Richard Jones / Antony Hosking / Eliot Moss
副标题:The Art of Automatic Memory Management
出版社:Chapman and Hall/CRC
出版年:2011-08
ISBN:9781420082791
行业:其它
浏览数:220

内容简介

Published in 1996, Richard Jones's Garbage Collection was a milestone in the area of automatic memory management. The field has grown considerably since then, sparking a need for an updated look at the latest state-of-the-art developments. The Garbage Collection Handbook: The Art of Automatic Memory Management brings together a wealth of knowledge gathered by automatic memory management researchers and developers over the past fifty years. The authors compare the most important approaches and state-of-the-art techniques in a single, accessible framework. The book addresses new challenges to garbage collection made by recent advances in hardware and software. It explores the consequences of these changes for designers and implementers of high performance garbage collectors. Along with simple and traditional algorithms, the book covers parallel, incremental, concurrent, and real-time garbage collection. Algorithms and concepts are often described with pseudocode and illustrations. The nearly universal adoption of garbage collection by modern programming languages makes a thorough understanding of this topic essential for any programmer. This authoritative handbook gives expert insight on how different collectors work as well as the various issues currently facing garbage collectors. Armed with this knowledge, programmers can confidently select and configure the many choices of garbage collectors. Web Resource The book's online bibliographic database at www.gchandbook.org includes over 2,500 garbage collection-related publications. Continually updated, it contains abstracts for some entries and URLs or DOIs for most of the electronically available ones. The database can be searched online or downloaded as BibTeX, PostScript, or PDF.

......(更多)

作者简介

理查德·琼斯(Richard Jones)

坎特伯雷-肯特大学计算机学院教授。1998年联合创立了国际存储管理研讨会,并担任*届会议主席。他发表了多篇关于垃圾回收技术、堆可视化技术、电子出版技术相关的论文,多次担任主要国际会议计划委员会的常务委员,同时还是《Software Practice and Experience》杂志的编辑委员会成员。因在动态存储管理领域的研究和学术成绩,他于2005年被聘任为格拉斯哥大学名誉研究员,2006年被计算机协会评为杰出科学家。

安东尼·霍思金(Antony Hosking)

普渡大学西拉法叶分校计算机学院副教授。他的主要研究方向是编程语言的设计与实现,特别是数据库与持久化编程语言、面向对象数据库系统、动态存储管理、编译器优化以及编程语言和应用的架构支持。

艾略特·莫斯(Eliot Moss)

马萨诸塞大学阿默斯特分校计算机科学学院教授。他的主要研究方向为编程语言及其实现,而且早在1978年就构建出垃圾回收器。除了自动存储管理领域之外,他在持久编程语言、虚拟机实现、事务性编程与事务内存方面也拥有较高的知名度。他曾与IBM研究员一起推动Jikes RVM Java虚拟机的学术研究许可,并*终促使其成为开源项目。

......(更多)

目录

Introduction

Explicit deallocation

Automatic dynamic memory management

Comparing garbage collection algorithms

A performance disadvantage?

Experimental methodology

Terminology and notation

Mark-Sweep Garbage Collection

The mark-sweep algorithm

The tricolor abstraction

Improving mark-sweep

Bitmap marking

Lazy sweeping

Cache misses in the marking loop

Issues to consider

Mark-Compact Garbage Collection

Two-finger compaction

The Lisp 2 algorithm

Threaded compaction

One-pass algorithms

Issues to consider

Copying Garbage Collection

Semispace copying collection

Traversal order and locality

Issues to consider

Reference Counting

Advantages and disadvantages of reference counting

Improving efficiency

Deferred reference counting

Coalesced reference counting

Cyclic reference counting

Limited-field reference counting

Issues to consider

Comparing Garbage Collectors

Throughput

Pause time

Space

Implementation

Adaptive systems

A unified theory of garbage collection

Allocation

Sequential allocation

Free-list allocation

Fragmentation

Segregated-fits allocation

Combining segregated-fits with first-, best-, and next-fit

Additional considerations

Allocation in concurrent systems

Issues to consider

Partitioning the Heap

Terminology

Why to partition

How to partition

When to partition

Generational Garbage Collection

Example

Measuring time

Generational hypotheses

Generations and heap layout

Multiple generations

Age recording

Adapting to program behavior

Inter-generational pointers

Space management

Older-first garbage collection

Beltway

Analytic support for generational collection

Issues to consider

Abstract generational garbage collection

Other Partitioned Schemes

Large object spaces

Topological collectors

Hybrid mark-sweep, copying collectors

Bookmarking garbage collection

Ulterior reference counting

Issues to consider

Run-Time Interface

Interface to allocation

Finding pointers

Object tables

References from external code

Stack barriers

GC safe points and mutator suspension

Garbage collecting code

Read- and write-barriers

Managing address space

Applications of virtual memory page protection

Choosing heap size

Issues to consider

Language-Specific Concerns

Finalization

Weak references

Issues to consider

Concurrency Preliminaries

Hardware

Hardware memory consistency models

Hardware primitives

Progress guarantees

Notation used for concurrent algorithms

Mutual exclusion

Work sharing and termination detection

Concurrent data structures

Transactional memory

Issues to consider

Parallel Garbage Collection

Is there sufficient work to parallelize?

Load balancing

Synchronization

Taxonomy

Parallel marking

Parallel copying

Parallel sweeping

Parallel compaction

Issues to consider

Concurrent Garbage Collection

Correctness of concurrent collection

Barrier techniques for concurrent collection

Issues to consider

Concurrent Mark-Sweep

Initialization

Termination

Allocation

Concurrent marking and sweeping

On-the-fly marking

Abstract concurrent collection

Issues to consider

Concurrent Copying and Compaction

Mostly concurrent copying: Baker’s algorithm

Brooks’ indirection barrier

Self-erasing read barriers

Replication copying

Multi-version copying

Sapphire

Concurrent compaction

Issues to consider

Concurrent Reference Counting

Simple reference counting revisited

Buffered reference counting

Concurrent, cyclic reference counting

Taking a snapshot of the heap

Sliding views reference counting

Issues to consider

Real-Time Garbage Collection

Real-time systems

Scheduling real-time collection

Work-based real-time collection

Slack-based real-time collection

Time-based real-time collection: Metronome

Combining scheduling approaches: Tax-and-Spend

Controlling fragmentation

Issues to consider

Glossary

Bibliography

Index

......(更多)

读书文摘

Rset is a set of fields that include all references from the old gen to the nursery

Mark-Copy's first phase marks all live objects, and constructs per-block unidirectional Rsets and count the vol of live data of each block.

......(更多)

猜你喜欢

点击查看