 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
|
|
TOP LINKS YOU MUST CLICK ON
Java
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
#5 |
Blind Earl commented on the 8 Nov 2004
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. |
#4 |
the author commented on the 8 Nov 2004
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. |
#3 |
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 ... |
#2 |
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) |
#1 |
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. |
YOUR FEEDBACK  | Linux Internet Cafe
Software Allows Multiple
Users To Share Single
Desktop By Linux News Desk 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 By Maureen O'Gara 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 By Maureen O'Gara 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? By David Harrison 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 By Linux News Desk 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  | 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 |
|