Untitled Document
Report of ISMM'02, Berlin
- Invited talk: The Business Importance of Java Garbage Collection,
Robert F. Berry
Robert explained how efficient memory mangement was becoming more and more
important to companies like IBM. He said the IBM were still unconvinced of
that generational GC was an effective solution. His customers demanded low
worst-case pause times so the IBM production collector avoided copying. He
raised a number of challenges for the community. How to manage the next generation
of multi-GB heaps?
- Applying Priorities to Memory Allocation, Sven Robertz
Robertz showed how to apply priorities to memory allocation in order to enhance
the robustness of real-time applications. The proposed mechanisms can also
be used to increase performance of systems with automatic memory management
by limiting the amount of garbage collection work.A way of introducing priorities
for memory allocation in a Java system without making any changes to the syntax
of the language is proposed and this has been implemented in an experimental
Java virtual machine and verified in an automatic control application.
- Reducing the Pause Time of Conservative Collectors, Toshio Endo,
Kenjiro Taura and Akinori Yonezawa
This paper described an incremental conservative garbage collectorc. Similar
to Boehm et al's collector, it uses the OS's page protection mechanism for
write barriers. They bound the number of dirty pages during concurrent marking
in order to get maximum pause times of less than 5ms on 400MHz UltraSPARC
processors although throughput is 1.2--53% higher than a stop-the-world collector.
- Automated Discovery of Scoped Memory Regions for Real-Time Java,
Morgan Deters and Ron Cytron
- Understanding the Connectivity of Heap Objects, Martin Hirzel, Johannes
Henkel, Amer Diwan and Michael Hind
The idea is to explore the connectivity of objects in order to partition the
graph. They claim that connectivity correlates strongly with object lifetimes
and deathtimes and is therefore likely to be useful for partitioning objects.
- Visualising the Train Garbage Collector, Tony Printezis and Alex
Garthwaite
Tony showed how GCspy could visualise the Train collector. Visualisation revealed
previously unexpected patterns of behaviour (very long trains, very popular
objects etc)
- Estimating the Impact of Heap Liveness Information on Space Consumption
in Java, Ran Shaham, Elliot Kolodner and Mooly Sagiv
Shaham compared the difference in time between an object is collected by a
GC and the earliest time it could be collected, given perfect knowledge. They
obtained an average potential savings of 39% using an interface with complete
liveness information, or 15% using a more practical approach.
- Thread-Local Heaps for Java, Tamar Domani, Gal Goldstein, ElliotKolodner,
Ethan Lewis, Erez Petrank and Dafna Sheinwald
The idea is, like Andy King's, to be able to collect objects belonging to
separate threads independently, without stopping the whole world. Unlike Andy,
Domani et al use a purely runtime approach (no static analysis). Whenever
a thread is about to copy a reference to a local object A into a field of
a shared object B, they first mark the transitive closure of A as shared.
- Heap Architectures for Concurrent Languages using Message Passing,
Erik Johansson, Konstantinos Sagonas and Jesper Wilhelmsson
This paper discussed how interprocess communication and garbage collection
for the Erlang/OTP system.
- An Algorithm for Parallel Incremental Compaction, Ori Ben-Yitzhak
and Victor Leikehman
The authors avoid long pause-times for compacting the heap by choosing a small
region of the heap and compacting only that.
- Using Passive Object Garbage Collection Algorithms, Abhay Vardhan
and Gul Agha
An elegant talk showing how 'normal' GC techniques can be applied to actor
systems. A difficulty with actors is that an actor is alive if either another
active has its address or the actor has the address of a live actor (because
it could then send this actor its own address). Gulp!
- Adaptive Caching for Demand Prepaging, Scott Kaplan, Lyle McGeoch
and Megan Cole
The authors examined prepaged allocation and its interaction with two other
important demand prepaging parameters: the degree, which is the number of
extra pages that may be fetched at each page fault, and the predictor that
selects which pages to prepage.
- An Adaptive Region-based Allocator for Java, Feng Qian and Laurie
Hendren
The authors link a region with each stack frame. Initially they assume no
objects escape and so can be placed in their frame's region. Objects for which
references escape their frame's scope, are trapped by a write barrier. Further
allocations at a site which allocated an escaped object are allocated in a
global region. I wasn't totally convinced by this approach.
- Dynamic Memory Management for Programmable Devices, Sanjeeve Kumar
and Kai Li
- Accurate Garbage Collection in an Uncooperative Envirnoment, Fergus
Henderson
The paper described how to do fully type-accurate garbage collection in an
uncooperative environment, using a "shadow stack" to link structs
of pointer-containing variables, together with the data or code needed to
trace them. It was implemented for the Mercury Prolog system.
- Sofware Caching vs. Prefetching, Aneesh Aggarwal
- Mostly Lock-Free Malloc, Dave Dice and Alex Garthwaite
A well-delivered talk on Multi-Processor Restartable Critical Sections, or
MP-RCS. MP-RCS permits user-level threads to know precisely which processor
they are executing on and then to safely manipulate CPU-specific data, such
as malloc metadata, without locks or atomic instructions. MP-RCS avoids interference
by using upcalls to notify user-level threads when preemption or migration
has occurred.
- In or Out? Putting Write Barriers in their Place, Steve Blackburn
and Kathryn McKinley
Blackburn gets performance benefits in the JikesRVM system by inlining the
fast-path of write-barriers and using calls for the slow path.
Problems with this page?
Contact the mm-net webmaster
Last modified Fri Jan 28 18:18:01 GMT 2005