GetJava Download Button XML Feed
All | About | Flying | General | Java | Solaris 10
20070821 Tuesday August 21, 2007

Tiered compilation update

Its been a while since I've gotten around to blogging and much longer since I've talked  about the state of tiered compilation. Just a quick note about what's been happening. Almost nothing. 

The only significant that has happened is that I've putback a fix to the jvm that will prevent the uncommon trap loops that for whatever reason seem to plage the jvm when tiered compilation is enabled. This fix should appear in B19 which should be built this week and will appears sometime later. This removes a large performance pothole that tiered  has suffered with. Generally if you've been having this problem then you will typically see your app run at interpreter speed or worse. In the past you could sometimes work around this by tuning the compile thresholds but not always. Hopefully this issue is pretty much dead.

Unfortunately tiered still has performance and tuning issues. I recently looked at some logs from someone that is using tiered and not seeing the results we'd like. At some compilation thresholds they are seeing the uncommon trap loop problem but at other levels that problem is gone but they see worse performance than just using client.

Their app seems to be my worst nightmare. The app seems to be composed of lots of methods that are mostly lukewarm and not many that are significantly hot. By messing with thresholds they may be able to get better behavior but I'm not optimistic.

This has convinced me that the techniques I'm using for controlling the tiered jvm are fatally flawed. They will never be able to do the correct thing for a variety of apps with out very careful and tricky tuning by the user. That just isn't going to make it. So I've been thinking about a new strategy and I've been working on protyping it. If this prototype shows promise then I'll be blogging about it in the near future.

Aug 21 2007, 11:32:32 AM EDT Permalink