Will Java go native?
Dmitry Leskov
dleskov at excelsior-usa.com
Thu Sep 19 22:31:00 PDT 2013
On Thursday, 19 September 2013 at 17:55:22 UTC, Iain Buclaw wrote:
> But yes, that is the general essence, though I was more leaning
> on
> Java's class hierarchy and being virtual by default. This is
> something
> that you can't get away from in native code, where as in most
> Java JIT
> implementations, they are designed explicitly for lots of
> virtual
> calls, such as the ability to inline virtual functions at
> runtime
> which makes virtual calls as cheap as non-virtual.
>
> In native code however, there is no way for the compiler to
> optimise
> this at compile-time, and the slowdown grinds as the code base
> grows
> (gcc's libjava is 230K LOC for example), and the result is that
> you
> end up paying through the nose without asking - we've already
> discussed this plentiful in D's design choice to go virtual by
> default.
Our AOT compiler does inline virtual calls of non-final methods
that are not overloaded in any subclass known at compile time. Of
course, there is a runtime check and a backup virtual call, but
the check is cheap and code size increase in negligible.
What we don't do (yet) is profile-guided optimizations, but that
is on our to-do list.
--
Dmitry
www.ExcelsiorJET.com
More information about the Digitalmars-d
mailing list