2007 West
GOLD SPONSORS:
Active Endpoints
Your SOA Needs BPEL for Orchestration
BEA
Virtualized SOA: Adaptive Infrastructure for Demanding Applications
Nexaweb
Overcoming Bandwidth Challenges with Nexaweb
TIBCO
What is Service Virtualization?
SILVER SPONSORS:
WSO2
Using Web Services Technologies and FOSS Solutions
Click For 2007 East
Event Webcasts

2008 East
PLATINUM SPONSORS:
Appcelerator
Think Fast: Accelerate AJAX Development with Appcelerator
GOLD SPONSORS:
DreamFace Interactive
The Ultimate Framework for Creating Personalized Web 2.0 Mashups
ICEsoft
AJAX and Social Computing for the Enterprise
Kaazing
Enterprise Comet: Real–Time, Real–Time, or Real–Time Web 2.0?
Nexaweb
Now Playing: Desktop Apps in the Browser!
Sun
jMaki as an AJAX Mashup Framework
POWER PANELS:
The Business Value
of RIAs
What Lies Beyond AJAX?
KEYNOTES:
Douglas Crockford
Can We Fix the Web?
Anthony Franco
2008: The Year of the RIA
Click For 2007 Event Webcasts
The Linux Desktop Marches On
There was a time when you couldn't shut me up about the Linux desktop. I was a fanatic. In 2000, I m
BLOG-N-PLAY.COM
Are Charter Broadband customers prepared to be spied upon?
You pay a subscripti on fee to snoops!
TOP LINKS YOU MUST CLICK ON
Improving Swing Performance: JIT vs AOT Compilation
The JFC/Swing API, natively precompiled on Linux for the first time, delivers measurable improvement in Java GUI performance. The Excelsior Engineering Team has ported Excelsior JET, a Java Virtual Machine (JVM) with an ahead-of-time compiler, to the Linux/x86 platform.
Reader Feedback : Page 1 of 1

Once I actually found the article it was an interesting read. However, this website looks *terrible*. When a column is only 11 characters wide due to advertising squishing it down, it is time to find some other magazine to read.

To angel'o'sphere:

1)

>>A VM based on a JIT compiler loads always only byte code
>>and compiles the byte-code to native code on the fly
>>depending on several algorithms/heuristics.
>>A AOT compiler does JUST THE SAME on the first invocation
>>of the byte code program, but it saves the generated
>>native code to be available for later invocations of the
>>same program. So for the later invocations, the
>>compilation was ahead of time, not for the first one

The thing you are talking about is called Caching JIT compilation (at least HotSpot and BEA engineers called it so when I talked with them at JavaOne 2004)

Besides, Caching JIT compilation does not occur on the first invocation - it would take long long time and miss profile information useful for optimizations.

2)

>>The Excelsior JET is no AOT compiler but just a static
>>compiler. However they seem to jump on the bandwagon
>>of a new buzzword, because the term AOT is only used
>>in academic circles currently

visit [visit link] (GNU compiler for Java). It's described as an AOT compiler...

3)

>>The next flaw is this: they measure a GUI application
>>over only 600 "loops". As the exact form of the loop
>>is not published, I have the impression they made the
>>loop in a way that a "standard" HotSpot JIT does
>>predictable not even attempt to compile much of the
>>covered code

In this test, HotSpot shows 28,9 frames/sec for short-running configuration and 44,6 frames/sec for long-running one. It does not look like "not even attempt to compile much of the covered code". Increasing the number of iteration to open more frames does not improve the HotSpot results. BTW, did you ever open 600+ frames in a Java application?

4)

>>In the "benchmark" of the article,
>>you neither have a loop (that one is in the external
>>driver program hidden) nor stack samples which occur
>>often enough to cause a JIT compilation.

Check the source code of the benchmark. It includes the loop

for(int j=0;j demo.createInternalFrame(..

so call stack chains are always rooted at the single method demo.createInternalFrame and then control goes to Swing.

5)

>>IMHO: the Excelsior people tricked the HotSpot/JIT VMs
>>in not doing their job, and thus you see the big
>>performance gain.
>> There are other tricks thinkable, e.g. not using
>>the standard SWING library but a tweaked one,
>>just remove some "synchronized" keywords if
>> you are sure the benchmark does not need them,
>> and voila ...

The standard Swing library and the public JET version were used for benchmarking. As for "synchronized" keywords - some of them are *safely* removed by the JET compiler during the course of escape analysis. There is excellent literature about this optimization technique (for example, see ACM OOPSLA'99 - about 5 papers were devoted to it).

Take care,

--Vitaly

P.S. JITs work well on servers and reusing the same machinery on the desktop is not always appropriate.

I don't like the article.
For several reasons I think they cheated and they coin old terms into new terms for no reason (except publicity). E.g. they mix up AOT with static compilation.
AOT is an extension of JIT compilation, and not a compilation done ahead of the first execution.
A VM based on a JIT compiler loads always only byte code and compiles the byte-code to native code on the fly depending on several algorithms/heuristics.
A AOT compiler does JUST THE SAME on the first invocation of the byte code program, but it saves the generated native code to be available for later invocations of the same program. So for the later invocations, the compilation was ahead of time, not for the first one.
The Excelsior JET is no AOT compiler but just a static compiler. However they seem to jump on the bandwagon of a new buzzword, because the term AOT is only used in academic circles currently (besides that Java 5.0 tries to cash compile informations and even native code over invocations).
The next flaw is this: they measure a GUI application over only 600 "loops". As the exact form of the loop is not published, I have the impression they made the loop in a way that a "standard" HotSpot JIT does predictable not even attempt to compile much of the covered code.
To understand that you have to know how a HotSpot JIT works. Two "big" strategies are used: fiddling with loops, this is a short code fragment, inside of one method, consider it as a for loop or while loop. You can do different things with it ... not interesting here.
The second big thing is call stack sampling. Suppose you have very often the method calls A, B, C on the call stack, the VM decides to check if anything can be inlined or if any of those methods is jitted.
In the "benchmark" of the article, you neither have a loop (that one is in the external driver program hidden) nor stack samples which occur often enough to cause a JIT compilation.
Excellent literature about JIT compilation and strategies can be found here: [visit link] tml and here: [visit link] /info/papers.shtml
IMHO: the Excelsior people tricked the HotSpot/JIT VMs in not doing their job, and thus you see the big performance gain. There are other tricks thinkable, e.g. not using the standard SWING library but a tweaked one, just remove some "synchronized" keywords if you are sure the benchmark does not need them, and voila ...

combining the two approaches will lead to overhead similar to a JIT approach (hence, there's nothing to be gained for a long-running program)

Why compare JIT against AOT? Why not have both?

AOT compilation makes for fast start up time and fast run time. JIT advocates claim that it can lead to better performance, as more optimizations can be performed with run-time information. So why not combine the two? Compile it before the first run, and further optimize it at run-time where appropriate. That way, you get the best of both worlds.


FEATURED WHITE PAPERS
YOUR FEEDBACK
Linux Internet Cafe Software Allows Multiple Users To Share Single Desktop
Eduardo Sedotes wrote: Cool! I've been looking for a solution like this! What about sound? Are there no problems with sharing the sound card between multiple users, or is audio turned off and is internet access strictly visual only?
SCO & Novell in Court
Wayne wrote: Hum a few problems with this. Let's see: 'SCO and Novell have been in court this week trying to figure out how much SCO is supposed to owe Novell in royalties for its attempt to tax Linux.' You forgot to mention that this is due to SCO suing Novell. The Judge det...
Those Heady Days of Sex, Drugs & Linux Are Over
jonson wrote: So it means that FOSS is now saving software users $60 billion a year in ICT costs
Microsoft & Linux: At What Point Is It Cheaper to Just Buy Novell?
Tim wrote: David writes a moderately tongue in cheek blog posting and now he's 'naive, ignorant, deceptive, incompetent, a rabid pro Microsoft partisan apologist.... and a dupe'. Which is so funny to anyone who knows him - and / or has any sense of humor whatsoever. 'Some' peo...
Oracle Releases Clusterware for Oracle Linux Support Customers
Kevin Closson's Oracle Blog: Platform, Storage & Clustering wrote: Trackback Added: Oracle Clusterware for Non-Real Application Clusters Purposes.; Quite some time back I made a blog entry about deploying Oracle Clusterware for non-RAC purposes. As I pointed out in ...
SUBSCRIBE TO THE WORLD'S MOST POWERFUL NEWSLETTERS
SYS-CON FEATURED WHITEPAPERS

BREAKING LINUX NEWS
Company Profile for Handy Networks, LLC
Operating since 1997, Handy Networks, LLC is a privately-held provider of Windows and L
Kevin Hoffman's Review of Iron Man
I took the advice of a friend of mine and steered clear of the 'normal' movie theaters and went a li
3rd International Virtualization Conference & Expo: Themes & Topics
From Application Virtualization to Xen, a round-up of the virtualization themes & topics being discu
Verizon Becomes a Counter-Android Linux Convert
Verizon Wireless is snubbing Google's Linux-based Android initiative to go with the LiMo Foundation'
Adaptec Launches New Series 2 RAID Controller For Linux Users
Adaptec unveiled a new family of entry-level Unified Serial RAID controllers. The new low-profile Se
JavaOne 2008: Sun Challenges Linux
Sun's mule train has finally pulled into Indiana after three years on the road. Indiana is the Linux
Curl Announces Support for Ubuntu for Enterprise RIA Platform
Curl announced it has released the availability of an Ubuntu Installer for the Curl Rich Internet Ap
Virtualization Conference Keynote Webcast Live on SYS-CON.TV
Brian Stevens, the Chief Technology Officer and Vice President of Engineering of Red Hat, delivered
"Virtualization Journal" Debuts This Week at JavaOne
Founded in 2006, SYS-CON Media's 'Virtualization Journal' is the world's first magazine devoted excl
CNR.com Announces Support For Linux Mint Operating System
Linspire announced the support for the Linux Mint operating system. To gain access to the free CNR S
Red Hat Named "Platinum Sponsor" of Virtualization Conference & Expo
Red Hat is a trusted open source provider. Red Hat offers enterprise customers a long-term plan fo
Wal-Mart To Sell $399 Ubuntu Linux-based Laptop with Google Operating System
The Ubuntu Linux-based gOS operating system from Good OS LLC (www.thinkgos.com) includes so many Goo
Simplifying Data Center Management
In 2006 IDC released a study showing that the costs associated with data center management escalate
SCO & Novell in Court
SCO and Novell have been in court this week trying to figure out how much SCO is supposed to owe Nov
Virtualization - VIA Tries Open Source
VIA is setting up a Linux Portal, still in beta, to get open source driver developed. It will initia
Virtualization - Likewise Adds Oracle Linux & Mainframes
Likewise, pretty much the de facto standard in cross-platform authentication these days, has added O
Virtualization - IBM Creates Cloud Box
IBM claims to have created new species of custom-built, industry-standard, Linux-based rack server f
P2P Explained: What Exactly is a Peer Network?
Peer networks are really just logical graphs of computers, or, in many cases, logical graphs of conn
Linux Programmer Reiser Found Guilty of First-Degree Murder
Linux programmer Hans Reiser has been found guilty of the first-degree murder of his estranged Russi
Those Heady Days of Sex, Drugs & Linux Are Over
Well, it looks like Richard Stallman, the father of FOSS, is going to have to cut his hair and get a
Open Source Java Technology Debuts In GNU/Linux Distributions
Sun Microsystems, Canonical and Red Hat announced the inclusion of OpenJDK-based implementations in
ADS BY GOOGLE