It is true that Java is, by default, a p-code style language. However, what
Bertalan Fodor was referring to is what's called the "Just in Time" compiler.
The JIT must not be confused with Java's command line compiler. The command
line compiler (or those built into IDEs) convert Java text source code into
Java byte code (or p-code, if you like). The JIT is actually part of the
runtime environment which, as the p-code is accessed, converts the p-code to
native machine code.
As you might imagine, this is quite a complicated task. So much so that Sun
provides two different JITs, one tuned for client access (UIs and such) which
converts p-code to native code almost immediately and one tuned for longer
running servers, which takes a more analytical approach, making far better
choices on machine code conversion based on usage patterns. Keep in mind to
that in-lining is only one of a large variety of optimizations the JIT employs.
Based on current benchmarks, Java software runs as fast or significantly faster
than even hand-written C code. Even in Java 6 (just released) there are some
very noticeable speed improvements. All the documentation about Java being
slow is either very old (still touted about by anti-Java-ers) or the result of
very poor application design and implementation (even the JIT can't overcome a
bad programmer; the most typical issue being that the person using Java objects
still writes their code very procedure-oriented, without properly switching to
the object oriented paradigm).
-----Original Message-----
From: [EMAIL PROTECTED] on behalf of Anthony W. Youngman
Sent: Wed 12/13/2006 5:23 AM
To: [email protected]
Subject: Re: lilypond and editors
In message <[EMAIL PROTECTED]>, Bertalan Fodor
<[EMAIL PROTECTED]> writes
>Certainly not. Actually the java code is compiled to machine code at
>runtime. This is slower than precompiling, but the compiled code can
>run faster than its precompiled counterpart, because the runtime
>machine will have information about how often a certain part of the
>code is called, and those calls can be made inline. Running inline code
>is much faster than procedure calls.
>
>Bert
Java code is actually a form of p-code (p standing for pseudo).
Pseudo-code engines CAN be blindingly fast.
There's a lot of history behind pseudo-code - like UCSD pascal for
example, or the example dear to me, the Pick system. At least one system
I ran implemented a lot of the Pick instruction code set in microcode,
and indeed, I understand that is the way the transputer works.
Any system with access to the first stage of a processor's pipeline and
the ability to redefine it (ie any decent modern processor - don't know
if that definition includes x86 :-) should be able to run p-code at the
same sort of speed as "native" code.
Cheers,
Wol
>
>Erik Sandberg írta:
>> On Saturday 09 December 2006 10:27, Bertalan Fodor wrote:
>>
>>> Well, what is extremely important: development time is so little in
>>>Java
>>> and with JEdit (compared to any alternatives), that I won't change this
>>> platform. The price is that it will remain slow if you don't have much
>>> memory in the machine.
>>>
>>
>> I'm not a java expert, but wouldn't it get a lot faster if you
>>compiled everything to native machine code (using gcj, for instance)?
>>
>>
>
>
>
>
>_______________________________________________
>lilypond-user mailing list
>[email protected]
>http://lists.gnu.org/mailman/listinfo/lilypond-user
--
Anthony W. Youngman - [EMAIL PROTECTED]
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user
2006-12-13, 05:26:57
The information contained in this e-mail message and any attachments may be
privileged and confidential. If the reader of this message is not the intended
recipient or an agent responsible for delivering it to the intended recipient,
you are hereby notified that any review, dissemination, distribution or copying
of this communication is strictly prohibited. If you have received this
communication in error, please notify the sender immediately by replying to
this e-mail and delete the message and any attachments from your computer.
2006-12-13, 08:25:13
The information contained in this e-mail message and any attachments may be
privileged and confidential. If the reader of this message is not the intended
recipient or an agent responsible for delivering it to the intended recipient,
you are hereby notified that any review, dissemination, distribution or copying
of this communication is strictly prohibited. If you have received this
communication in error, please notify the sender immediately by replying to
this e-mail and delete the message and any attachments from your computer.
_______________________________________________
lilypond-user mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/lilypond-user