Re: Where's native Eclipse?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Kevin Kofler <kevin.kofler@xxxxxxxxx> wrote:
> 
> Andrew Overholt wrote:
> 
> > * Kevin Kofler <kevin.kofler@xxxxxxxxx> [2009-01-29 15:10]:
> >> Unfortunately, OpenJDK's JIT is actually faster than GCJ's native
> >> code.
> >> :-(
> > 
> > Why is this unfortunate?
> 
> Because it means GCJ sucks at generating native code.

Well, I suppose this depends on whether your glass is half empty or
half full.  In the main I'm pleased with gcj's performance: the fact
that it's in the same ball park as the HotSpot server JIT in many
cases makes me very pleased indeed.  HotSpot is a tremendous piece of
software, custom written for Java and very highly tuned.  gcj's
performance is no shame at all.

I'm not saying that gcj couldn't be improved, of course.  We should be
doing more to eliminate array bounds checks, for example, and we could
in principle do escape analysis to remove locks and convert heap
allocation to stack allocation.  Also, we don't inline as much as
perhaps we could.

> In principle, native code should be more efficient because you don't
> have to go and recompile that bytecode all the time.

This is a popular naive view, but it isn't true.  A JIT has many
advantages over a static compiler for langauges like Java.  For
example, invoke{virtual,interface} can first be compiled
optimistically, on the assumption that it will always be executed with
the same target class; only if that turns out to be untrue will the
call be deoptimized to full virtual dispatch.  Also, things like
vtable and field offsets and static field addresses can be hard-coded
by a JIT because the target classes are fully resolved by the time the
JIT is invoked.  Finally, a JIT has easy access to profile data to
choose what to optimize and inline.

> That a JIT manages to do better than GCJ's native code is a sad
> state of affairs. I wish we had a decent AOT compiler for Java so we
> can get rid of the slow bytecode once and for all. As it is now,
> Java code is a lot slower than compiled code, and GCJ only makes it
> worse instead of better.

Well, everyone is entitled to an opinion, I suppose.  I don't think
there is any justification for this one.

Andrew.

-- 
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines
[Index of Archives]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora Magazine]     [Fedora News]     [Fedora Summer Coding]     [Fedora Laptop]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [SSH]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Gnome Users]     [KDE Users]     [Fedora Art]     [Fedora Docs]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Libvirt Users]     [Fedora ARM]

  Powered by Linux