Report on OOPSLA 2001, Oct 14-18, 2001
Tony Printezis
Sun, Oct 14, 2001
After the evening reception, I gave a demo of GCSpy to Olivier Zendra
from INRIA (he's part of the SmallEiffel group --- I had met him at
ISMM 1998 and the Usenix JVM 2001) and Karel Driesen from McGill
University (he's interested in different visualisation aspects of
applications). They were both very impressed and said that some of
GCSpy's facilities (especially the history graphs) are unique and
probably no other system with similar facilities exists. Olivier said
that he's interested in incorporating GCSpy into SmallEiffel (this
will be an interesting experiment as SmallEiffel has a page-based heap
which is sufficiently different to what I've handled so far). Karel
encouraged me to present GCSpy to the
workshop series on Software Visualisationsometime in the future.
Tue, Oct 16, 2001
The papers that I thought were interesting from this day's sessions
were the following:
- The Java Syntactic Extender by Jonathan Bachrach (MIT AI Lab) and
Keith Playford (Functional Objects Inc.). How to do macros in Java "properly";
this is groovy (and mind-blowing) stuff!
- A Study Of Exception Handling And Its Dynamic Optimization In Java
by Taeshi Ogawawara, Hideaki Komatsu, and Toshio Nakatani (all from IBM Tokyo
Research Laboratory). On the implementation of exceptions in Java with minor
overheads.
- Efficient Implementation Of Java Interfaces: Invokeinterface Considered
Harmless by Bowen Alpern, Anthony Cocchi, Stephen Fink, David Grove,
and Derek Lieber (all from IBM T.J. Watson Research Center). Describes implementation
strategies that nearly eliminate the assumed performance penalty of Java interface
invocations.
- Multitasking Without Compromise by Grzegorz Czajkowski and Laurent
Daynes (both from SunLabs West). On the isolation of applications inside the
same JVM. Cool stuff.
After the last paper session, I gave a GCSpy demo to Bowen Alpern and Peter
Sweeney from IBM T.J. Watson Research Center. They were both very impressed
and said that they would be interested in seeing it incorporated inside Jikes
RVM (the VM formerly referred to as Jalapeno). I told them to nag Richard Jones
as much as they could for progress on that front.
Wed, Oct 17, 2001
The papers that I thought were interesting from this day's sessions were the
following:
- Partial Method Compilation Using Dynamic Profile Information by John
Whaley (Standford University). It uses on-line profiling of basic-block execution
frequencies to re-optimise only the hot paths of methods dynamically.
- A Dynamic Optimization Framework For A Java Just-In-Time Compiler
by Toshio Suganuma, Toshiaki Yasue, Motohiro Kawahito, Hideaki Komatsu, and
Toshio Nakatani (all from IBM Tokyo Research Laboratory). Describes the execution
model of IBM's Tokyo VM. This includes an interpreter and three (!) levels
of JIT compilation (no optimisations, full optimisations, additional dynamic
optimisations).
Thu, Oct 18, 2001
During the morning and afternoon I gave GCSpy demos to several people. First,
to Eliot Moss and Steve Blackburn (both from UMass), who are very interested
in seeing it being incorporated into Jikes RVM. Then, to Olof Lindholm from
Appeal Virtual Machines from Sweden and one of his colleagues (can't remember
his name) who both thought it was very cool. Finally, over lunch, I showed GCSpy
to Doug Lea. I was wondering whether Doug could use it to visualise the operation
of his allocator. He said he's very interested in using it, especially GCSpy's
history graphs as, when he needs it, he can get history information with the
usual combination of printfs and awk / sed / grep scripts. He might get one
of his collaborators, who work on his allocator, to do the port rather than
doing it himself as he will probably not have time to do so over the next few
months.
The papers that I thought were interesting from this day's sessions were the
three papers on garbage collection.
- Pretenuring for Java by Stephen Blackburn, Sharad Singhai, Matthew
Hertz, Kathryn McKinley, and Eliot Moss (all from the University of Massachusetts).
A scheme to detect when to allocate objects directly to old space instead
of the young space. They identify allocation locations (i.e. invocations to
new) that seem to create objects that live longer. They claim it works both
for generational and the older-first GCs. What I found interesting in their
experimental setup was that they showed GC and total elapsed times for a variety
of heap sizes rather than just one. This is actually important as the heap
size affects the performance of the system.
- Controlling Garbage Collection And Heap Growth To Reduce The Execution
Time Of Java Applications by Tim Brecht (HP Labs), Eshrat Arjomandi, Chang
Li, and Hang Pham (the last three from York University). Explored how to decide
on whether to collect or extend the heap in order to improve performance.
They claim that if there is enough memory available, just grow the heap aggressively
and don't bother collecting. However, if the memory threshold was being reached,
think of performing a GC. The decision is based on how desparately out of
space the system is and how much garbage was reclaimed during the last GC.
- An On-The-Fly Reference Counting Garbage Collector For Java by Yossi
Levanoni (Microsoft) and Erez Petrank (Technion). This paper describes a,
what they claim, efficient way of using reference counting (RC) for GC purposes.
There is no need for synchronisation for their write-barrier as the RC updates
are logged on thread-local buffers and then applied when required (this can
be achieved concurrently with the program). Thanks to an interesting observation,
they can get away with applying only a small number of RC updates. They use
2-bit RCs a la Wise. A backup low-priority tracing collector deals with cycles.
They show that their implementation works well, however it's only been implemented
in Classic JDK so it will be interesting to see how it will perform in a high
performance VM. I think this is worth a read.
Problems with this page?
Contact the mm-net webmaster
Last modified Tue Jan 25 16:00:34 GMT 2005