This page contains an archived post to the Design Forum (formerly called the Flexible Java Forum) made prior to February 25, 2002.
If you wish to participate in discussions, please visit the new
Artima Forums.
Message:
All the details I have
Posted by Bill Venners on 19 Jun 1998, 6:46 PM
> I'm not sure if this forum is still around... I see lots of > messages from ~ June 1, but here's a shot. > They're all still around, though I don't check them as often after the article they are based from goes off the front page of whatever webzine it is published in. Visits trickle off too, but like yourself, people do come and post even after the article has been relegated to the archives. > Was the article just simplified from a technical perspective, > or do we really not know more about how this method inlining > would function? It doesn't make much sense to me because at best > you'll still be left with a conditional branch in the code, one > direction of which is a function call, and that doesn't seem much > easier to optimize around than a method call. And it certainly > seems slower in and of itself than it would be to just call a > function indirectly (a single instruction even on the 6052, much > less modern CPU architectures!) > > Maybe I'm just confused though. Could someone lay out some > pseudocode of what exactly the inlining is doing? I'm sorta > interested in the technique. I'm interested in the technique too. Actually, I didn't want to make the article any more technical than it was, but I also don't have much more detail about how the inlining technique I described actually works. I didn't ask Sun, but I wouldn't be surprised if they wouldn't tell me much, as they likely consider this kind of stuff to be a competitive advantage. I will, however, send an e-mail to the person at Sun who gave out the information I passed along, and hopefully they will be inclined to add as much information as they are allowed to reveal about how the virtual method call inlining technique actually works and how it ends up a net performance gain. You know how an idea can look very cool, exciting, and promising when sketched out in labeled circles and arrows of various colors on a whiteboard. Everyone in attendence can tell you how great an idea you have. But they'll also say, I look forward to seeing the prototype. That's where I think we (the Java programmer community) are sitting with respect to Hotspot right now. It looks great on the drawing board, but I want to see the prototype actually zipping through my Java program at speeds close to natively- compiled C++. I can imagine that the Hotspot team will encounter unexpected difficulties as they go from drawing board to working VM. Perhaps squeezing better performance out of better optimization due to dynamic inlining will be harder than they thought looking at the drawing board. It remains to be seen to what extent any such unexpected issues will slow down the development cycle of the VM and the ultimate performance of the VM itself. If anyone else can shed more light on the details of dynamic inlining, please shine brightly. bv
Replies:
|