OOPSLA Java VM panel notes
grunwald at pa.dec.com
Sun Oct 25 23:21:53 PST 1998
> > David Ungar made a comment that processors are getting faster for
> > math, but not really for OO programming. He says contemporary
> That's because he probably can't write in assembler and because
> his also on *Crack*.
I think if you took the time to find out who Unger is, you'd realize
that, yes, he can program in assembler. Unger was one of the earlier
developers of high performance smalltalk systems and later of the SELF
system. Both of ST and Self make more aggressive use of code modification
than Java does, and most JIT technology is a re-spin of things that many
people (including Unger) have done over the last 10-20 years.
That said, his points are accurate.
Architects implement features represented by their workloads. Without a
representative workload, many features aren't included. Things important
for JIT's are jump prediction, fast I-cache invalidation, fast I-cache
following invalidation, fast synchronization, being able to dynamically
lay out code to reduce I-cache effects, etc.
E.g., most architectures don't provide good "jump prediction" for
indirect branches. Recent papers (at the last ISCA and the up-coming
MICRO) show how to improve on that. Most architectures haven't worried about
OO features because the was no data typifying those applications and the
market impact was deemed to be small. I worked on a paper characterizing
C++ applications a few (5?) years ago [ironiclly, it was with my student,
Brad Calder, who is on the faculty at UCSD where you are].
Several companies were interested in that data because they
saw problems that would eventually impact them.
More information about the kaffe