|
Published Articles >> Table of Contents >> Abstract
International Symposium on Code Generation and Optimization (CGO'06)
pp. 87-97
Experiences with Multi-threading and Dynamic Class Loading in a Java Just-In-Time Compiler
Vijay Sundaresan, IBM Canada Ltd.
Daryl Maier, IBM Canada Ltd.
Pramod Ramarao, IBM Canada Ltd.
Mark Stoodley, IBM Canada Ltd.
Full Article Text:

DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/CGO.2006.16
Send link to a friend
| Abstract |
|
In this paper, we describe the techniques that have been
implemented in the IBM TestaRossa (TR) Just-in-Time(JIT)
compiler to safely perform aggressive code patching and
collect accurate profiles in the context of a Java application
employing multiple threads and dynamic class loading
and unloading. Previous work in these areas either did not
account for the synchronization cost of safety or dynamic
class loading/unloading effects in a heavily multithreaded
program or did not consider how different patching techniques
may be required for different platforms where instruction
cache coherence guarantees vary. We evaluate the
space and time overhead to make our profiling framework
correct, showing that privatizing the profiling variables to
achieve correctness impacts execution time only minimally
but it can grow the stack frames for profiled methods by less
than 15% on average for the SPECjvm98 and SPECjbb2000
benchmarks. Since methods are profiled for only a brief
time and the stack frames themselves are not large, we do
not consider this growth to be prohibitive. The techniques
reported in this paper are implemented in the 1.5.0 release
of the IBM Developer Kit for Java targeting 12 different
processor-operating system platforms.
|
Additional Information
|
Citation:
Vijay Sundaresan, Daryl Maier, Pramod Ramarao, Mark Stoodley,
"Experiences with Multi-threading and Dynamic Class Loading in a Java Just-In-Time Compiler,"
cgo,
pp. 87-97,
International Symposium on Code Generation and Optimization (CGO'06),
2006
|
|